眠気.jl

投稿=不定期

JuliaでKullback-Leibler Divergence 1/2

目標

発生させた正規分布に従う乱数同士のKLdivergenceを計算してみる

X\sim N\left(0, 1\right), Y\sim N\left(0.5, 1\right), Z\sim N\left(0, 1.5\right)
使うライブラリ
StatsBase.jl
Distributions.jl

kldivergenceとは

 \begin{array}{l}{q(x), p(x) : p . d . f \text { on } R^{N}} \newline
{K(q | p) :=\int q(x) \log \frac{q(x)}{p(x)} d x}\end{array}
で定義され,p.d.f.同士の差異の大きさを反映している
(distanceとは(私は)呼ばない、対称性がないので)

乱数の生成

julia>

julia> x = rand(Normal(0, 1), 100)

julia> y = rand(Normal(0.5, 1), 100)

julia> z = rand(Normal(0, 1.5), 100)

正規分布同士のkldivergence

2つの正規分布同士の場合、少し頑張ると公式が出せる
2つの正規分布を考える
 N\left(\mu, \sigma^{2}\right), N\left(\xi, \tau^{2}\right)
kldivergenceを計算していくと....?

次回

正規分布同士のkldivergenceの公式
StatsBase.jlのkldivergenceを使ってみる

参考書籍

情報量統計学