エントロピーの定義から始めて、KLダイバージェンスの意味を理解するのが目標です。
エントロピーがデータの分布の違いを見分けるのに役立つことを説明し、KLダイバージェンスが確率分布同士の距離を測る道具になっていることを解説します。
最後に応用について少しだけ説明します。応用についての詳しい解説は別の記事を読んでください。
参考書として、以下の2冊を挙げておきます。
エントロピーと分布の形
まずはエントロピーの定義を確認します。
1
は、以下のようにします。
また、2つの確率分布
この定義だけでは、エントロピーが何を表す量なのか分かりません。エントロピーは以下の性質を持つことが知られています。
[エントロピーの持つ性質]
- もしも、
となる があると、 が最大になるのは、 のとき。
2番の性質から、データのヒストグラムが尖った形な程エントロピーは小さな値を取る事が分かります。逆に、均質的でなだらかなヒストグラムに対しては大きな値を取ります。
性質の証明
性質を確かめてみます。前半2つは簡単です。
最後の性質を確かめます。
ラグランジュの未定乗数法で、
ラグランジアンは以下です。
上の式を0とすると、
となります。
これで3つ目の性質が分かりました。
エントロピーでデータの変化を捉える
実際のデータを使って、エントロピーを計算してみます。 西暦毎に 都道府県別の人口を記録したデータを使います。昔と比べて、都市に人が集中していってるので、エントロピーが小さくなっていくはずです。データはe-Stat に置いてある人口推計を使いました。年代別でグラフを描くと以下のようになっています。


都市部だけ、人口比率が大きくなっていることが分かります。適当な年代でエントロピーを計算させてみます。

エントロピーが順調に減少しています。人口の分布がある場所に集中し、尖った分布に遷移している事を表しています。これは、都市部に人が集中しているという事実と合致しています。
上で挙げた例のように、エントロピーを計算することで確率分布やデータがどのように変化しているのかを捉える事が出来ます。
基本的な確率分布に対して、エントロピーを計算した記事があるので、興味がある方はどうぞ。

KLダイバージェンス
エントロピーが、一つの確率分布の変化を捉えられることが分かりました。
二つの確率分布
この量は、
これを踏まえて、以下の量をKLダイバージェンス(Kullback-Leibler divergence)と呼びます。
KLダイバージェンスは距離と似た性質を持っています。
[KLダイバージェンスの性質]
-
となるのは、 となる場合のみ-
距離っぽい性質を持っているのですが、
性質の証明
上に挙げた性質を示すにはイエンセンの不等式( Jensen’s inequality ) を使います。詳しい説明はしませんが、以下の関係式を使います。
この関係を認めて、上に挙げた3つの性質を証明しましょう。
これで1つ目は証明出来ました。2つ目は
1行目から2行目への計算は少し端折ってますが、積分の
正規分布同士のKLダイバージェンス
次に、KLダイバージェンスが、確率分布同士の距離を測っていることを確かめてみます。
具体的には、標準正規分布
gist にも載ってますが、与えたデータは、平均値を変えた正規分布です。それらと、標準正規分布のKLダイバージェンスを計算します。

scipy のentropy ライブラリを使うと、KLダイバージェンスを計算出来ます。にentropy(q,p ) のように、サンプルしたデータを与えるだけです。3

平均値の値
確率分布のパラメーターを動かしながらKLダイバージェンスを監視する事で、確率分布が目的の確率分布に近付いているかどうか調べる事が出来るのです。
KLダイバージェンスの応用
KLダイバージェンスは、得られたデータを確率分布で近似するときによく使われます。
最も有名な例が、EMアルゴリズムです。
大まかな議論は以下のようなものです。
元のデータが確率分布
対数尤度
KLダイバージェンスを0にして、対数尤度を最大化しよう、という流れで最適なパラメーター
https://masamunetogetoge.com/em-algorithm
https://masamunetogetoge.com/em-algorithm-python
https://masamunetogetoge.com/general-em-algorithm
まとめ
- エントロピーは
の期待値 - エントロピーを比べる事で、分布の変化を捉える事が出来る。
- KLダイバージェンスで確率分布同士の距離を測れる
- 確率分布の近似を考えたいときにKLダイバージェンスが使われる