最近仕事でカルバック・ライブラー情報量(Kullback-Leibler divergence)を利用して確率分布の比較を行いました。
この手法を知らなかったので、自分のためにまとめておきます。
目次 非表示
カルバック・ライブラー情報量とは
KLダイバージェンスや情報利得とも呼ばれており、2つの確率分布の差異を計る尺度です。
真の確率分布(P)(観測や計算によって求められた確率分布)と、任意の確率分布(Q)(学習モデルによる出力など)の距離を計算することが可能です。
距離は、ある意味2つの確率分布(P)と(Q)の類似度として捉えることができます。
KL情報量は、離散分布に加えて、連続分布に対しても定義されています。
定義
離散分布
(P)と(Q)が離散分布のとき、KL情報量は下記で定義されます。
$$ latex D_{KL}(P||Q) = \sum_{i} P(i) \log \frac{P(i)}{Q(i)} $$
連続分布
(P)と(Q)が連続分布のとき、KL情報量は下記で定義されます。
$$ latex D_{KL}(P||Q) = \int_{-\infty}^{\infty} P(x) \log \frac{P(x)}{Q(x)}dx $$
特徴
基本的な特徴は3つあります。
1つ目は、(P)と(Q)が同じ分布のときは(D_{KL}(P||Q)=0)になること。
これは、式を見たらわかりますね。
2つ目は、(D_{KL}>0)を満たすこと。これも式をみたらわかります。
3つ目は、対称性がないことです。
つまり、(D_{KL}(P||Q) \neq (D_{KL}(Q||P))です。
3つ目の特徴も式を見たらわかるのですが、見落としがちかなと思います。
プログラムで利用するときには注意が必要な点だと思います。
まとめ
すごい簡単にKL情報量についてまとめました。
まとめたというよりは、定義を書いたという感じですが、こういう指標があることを忘れないようにしたいと思います。