MLD: K-L Divergence

Kullback–Leibler divergence. これがさっぱりわからず喉につかえていたため、 Amazon でみつくろった易しい情報理論の本を読んでいた: Information Theory: A Tutorial Introduction. 200 ページの薄い本。150 ページあたりでようやく K-L Divergence 登場。

K-L Divergence はこんなかたち...といってもこのブログは数式をつかえないため latex-like にかくと...

D_{KL}(P(X), Q(X)) = \int_{x} p(x) log \frac{p(x)}{q(x)} dx

これ以前みたときはさっぱりわからんかったけど、entropy を復習してからみるとなんとなく親しみのある形をしている。(そしてむかしむかし卒業論文とか書いてた頃はこの表記を脳内でレンダリングできたはずだが、今みるとぜんぜん読めませぬ。これは quicklatex.com で確認しつつ書いてます。)

これをちょっと変形すると腑に落ちやすくなる。

D_{KL}(P(X), Q(X)) =
   \int_{x} p(x) log \frac{1}{q(x)} dx
 - \int_{x} p(x) log \frac{1}{p(x)} dx

ひとつ目の項が P と Q の cross entropy, 2つめの項が P の entropy になる。 つまり cross entropy が単一の entropy よりどれだけ大きいかの指標が K-L Divergence.

D_{KL}(P(X), Q(X)) = H(P, Q) - H(P)

なぜ cross entropy がこの形なのか(とくになぜ非対称なのか)は釈然としていないけれど、一方で Q = P のとき最小になる点を鑑みると有用性はわかる。そして NN とかの loss function だと P は training data で固定だから K-L Divergence を最小化するには cross entropy を最小化すればいい、というのもわかる。

というかんじで、完全に腑に落ちていないとはいえもともとは cross entropy の式の根拠がさっぱりわかっていなかったのに比べると表面的にせよ理解は進んだ。そして大した話ではないこともわかった。一方で entropy はけっこう機械学習っぽいこともわかった。150 ページを費やして得られる知識としては満足。せっかくなので残り 50 ページくらいもいちおう読む予定。