- KL(Kullback–Leibler)ダイバージェンス
D_{\mathrm{KL}}(P\|Q)
=\sum_x P(x)\log\frac{P(x)}{Q(x)}
小さな謎
僕の前に、また二つの箱がある。
前回と同じ、赤と青のボールが入った箱だ。
一つ目には赤が9個、青が1個。
二つ目には赤が5個、青が5個。
先輩が言った。
「今日は、この二つの箱を比べてみよう」
「赤と青の割合が違いますね」
「そうだ。でも、どれほど違うと思う?」
僕は少し考えた。
「赤の割合が90%と50%。だから40ポイントの差ですか?」
「それも一つの測り方だ。でも、別の測り方もある」
先輩は二つ目の箱を指さした。
「本当は赤が9割の世界なのに、君は赤と青が半々だと信じているとする」
「はい」
「その思い込みのせいで、君はどれくらい余計に驚くことになるだろう?」
僕は答えられなかった。
先輩は続けた。
「そして、逆だったらどうだろう。本当は半々なのに、赤が9割だと信じていたら?」
「同じだけ違うんじゃないですか?」
先輩は首を振った。
「実は、そうとは限らないんだ」
数式で謎解き
先輩は、二つの箱を指さした。
「まず、赤が9個、青が1個の箱が本当の世界だとしよう」
「はい」
「でも君は、赤も青も半分ずつ入っていると思っている」
僕はうなずいた。
「では、その思い込みがどれほど現実と食い違っているか、計算してみよう」
先輩は二つの世界を、(P) と (Q) と名付けた。
- (P):実際の世界(赤90%、青10%)
- (Q):僕が信じている世界(赤50%、青50%)
| ボールの色 | 現実 (P) | 予想 (Q) |
|---|---|---|
| 赤 | 0.9 | 0.5 |
| 青 | 0.1 | 0.5 |
「この二つの世界の食い違いを測る数式がある。KLダイバージェンスというんだ」
D_{\mathrm{KL}}(P\|Q)
=\sum_x P(x)\log\frac{P(x)}{Q(x)}
「少し難しそうですね」
「大丈夫。今は、実際には (P) の世界にいるのに、(Q) の予想を使うことで生じる、余計な情報量の平均だと思えばいい」
まず、赤と青それぞれについて計算する。
D_{\mathrm{KL}}(P\|Q)
=0.9\log\frac{0.9}{0.5}
+0.1\log\frac{0.1}{0.5}
自然対数を使うと、
D_{\mathrm{KL}}(P\|Q)\approx0.368
ここでは自然対数を使っているため、単位はnat(ナット)となる。底が2の対数なら、単位はbit(ビット)になる。
「これが、現実の世界 (P) に対して、君の予想 (Q) がどれほど食い違っているかを表す値だ」
「0.368……。この数字をどう考えればいいんでしょう?」
「この数字だけでは大きいか小さいか判断しにくいな。では、逆にしてみよう」
先輩は二つの箱を入れ替えた。
「今度は、赤と青が半分ずつの世界が現実だ。でも君は、赤が9割だと思い込んでいる」
つまり、現実と予想の役割を逆にする。
D_{\mathrm{KL}}(Q\|P)
=0.5\log\frac{0.5}{0.9}
+0.5\log\frac{0.5}{0.1}
計算すると、
D_{\mathrm{KL}}(Q\|P)\approx0.511
「あれ?」
僕は二つの結果を見比べた。
D_{\mathrm{KL}}(P\|Q)\approx0.368
D_{\mathrm{KL}}(Q\|P)\approx0.511
「同じ二つの箱なのに、数字が違う!」
先輩はうなずいた。
「そう。なぜだと思う?」
僕は少し考えた。
赤が9割の世界で、半々だと予想していた場合。
赤が出ても青が出ても、予想が極端に外れるわけではない。
しかし、半々の世界で赤が9割だと思っていた場合はどうだろう。
実際には2回に1回ほど青が出るのに、僕は青なんて10回に1回しか出ないと思い込んでいる。
「そうか。後者では、青が出るたびに、かなり予想を裏切られるんですね」
「その通り。KLダイバージェンスは、ただ確率の差を比べているわけではない。どちらの世界で出来事が起こり、どちらの世界を信じて予測しているかを区別しているんだ」
僕はもう一度、二つの箱を見た。
箱の中身は何も変わっていない。
変わったのは、どちらを現実と考えるか、という立場だけだ。
それなのに、世界の食い違いの大きさは変わってしまう。
「だから、KLダイバージェンスは普通の意味での距離とは違うんですね」
「そういうことだ」
同じ二つの世界でも、どちらから見るかによって違いは変わる。
世界の違いには、方向がある。
数式解説
1. KLダイバージェンスとは
KLダイバージェンス(Kullback–Leibler divergence)は、二つの確率分布の違いを、情報量の観点から測るための数式だ。
D_{\mathrm{KL}}(P\|Q)
=\sum_x P(x)\log\frac{P(x)}{Q(x)}
ここで、
- $P(x)$:現実の世界で、出来事 $x$ が起こる確率
- $Q(x)$:自分が信じている世界で、出来事 $x$ が起こる確率
では、なぜ確率の「差」ではなく「比の対数」を使うのだろう?
その鍵は、前回学んだエントロピーにある。
2. 情報量とは「驚き」の大きさ
情報理論では、ある出来事 $x$ が起きたときの情報量を、次のように定義する。
I(x)=-\log p(x)
起こる確率が高い出来事は、あまり驚かない。
一方、めったに起こらない出来事が起きれば、大きく驚く。
例えば、赤いボールが出る確率を90%だと思っていた場合と、10%だと思っていた場合では、同じ赤いボールを引いても驚きの大きさは違う。
この「驚き」を数値にしたのが情報量だ。
ただし、ここでいう驚きは心理的な感情ではなく、確率から計算される情報理論上の量である。
3. 間違った世界を信じると、余計に驚く
実際の世界が $P$ だとしよう。
もし正しい確率分布 $P$ を知っていれば、出来事 $x$ の情報量は、
-\log P(x)
となる。
しかし、間違った分布 $Q$ を信じていれば、
-\log Q(x)
という情報量を割り当てることになる。
その差は、
-\log Q(x)-(-\log P(x))
=\log\frac{P(x)}{Q(x)}
となる。
この差を、実際の世界 $P$ で出来事が起こる確率に応じて平均する。
\sum_x P(x)\log\frac{P(x)}{Q(x)}
これが、KLダイバージェンスだ。
つまり、正しい確率分布を使う場合と比べ、間違った分布を使うことで平均的にどれだけ余計な情報量(対数損失)が生じるかを表している。
4. エントロピーとの関係
前回登場したエントロピーは、
H(P)=-\sum_x P(x)\log P(x)
だった。
これは、実際の世界 $P$ の不確実性を表している。
一方、実際には $P$ の世界で出来事が起きるのに、分布 $Q$ を使って予測したときの平均情報量を、交差エントロピーという。
H(P,Q)=-\sum_x P(x)\log Q(x)
この二つを引き算すると、
H(P,Q)-H(P)
=\sum_x P(x)\log\frac{P(x)}{Q(x)}
したがって、
\boxed{
D_{\mathrm{KL}}(P\|Q)=H(P,Q)-H(P)
}
となる。
つまり、
交差エントロピー = エントロピー + KLダイバージェンス
という関係が成り立つ。
前回のエントロピーが「世界そのものの不確実性」だったのに対し、KLダイバージェンスは「世界を間違って理解することで生じる余分な情報量」なのだ。
5. KLダイバージェンスの三つの性質
① 必ず0以上になる
D_{\mathrm{KL}}(P\|Q)\geq 0
個々の出来事については、情報量の差がマイナスになることもある。
しかし、すべての出来事について実際の確率で平均すると、KLダイバージェンスは必ず0以上になる。
正しい確率分布を使う場合より、間違った分布を使う方が平均的な対数損失を小さくすることはできないのだ。
② 二つの分布が一致すると0になる
D_{\mathrm{KL}}(P\|Q)=0
\iff P=Q
二つの世界が同じ確率分布なら、余分な情報量は生じない。
③ 比較する方向によって値が変わる
D_{\mathrm{KL}}(P\|Q)
\neq D_{\mathrm{KL}}(Q\|P)
\quad\text{(一般には)}
前章の二つの箱が、まさにこの例だ。
KLダイバージェンスでは、どちらの分布を現実として平均するかが重要になる。
このため、KLダイバージェンスは普通の数学的な意味での「距離」ではない。
※距離ならばPとQを入れ替えても値は変わらない
もう一つ興味深いことがある。
現実には起こりうる出来事を、予想の中では「絶対に起こらない」としていたらどうなるだろう?
$P(x)>0$ なのに $Q(x)=0$ となる出来事があれば、KLダイバージェンスは無限大になる。
絶対に起こらないと信じていたことが現実に起きる。そのような予測には、情報理論上、非常に大きな代償がある。
6. 確率分布なら、さまざまな対象に使える
ここまでは赤と青のボールという、離散的な確率分布を扱ってきた。
しかし、KLダイバージェンスはそれだけではない。
正規分布のような連続確率分布にも使える。
その場合、和が積分に変わる。
D_{\mathrm{KL}}(P\|Q)
=\int p(x)\log\frac{p(x)}{q(x)}\,dx
さらに、スカラーだけでなく、ベクトルを扱う多変量分布や、ガウス過程のような関数上の確率分布にも拡張できる。
ただし、任意の二つの関数をそのまま比較できるわけではない。比較しているのは、あくまで確率分布だ。
KLダイバージェンスは、確率分布を情報量の観点から比較するための仕組み。だから、確率分布が定義できれば、スカラーでもベクトルでも関数でも扱える。
この汎用性が、KLダイバージェンスを情報理論だけでなく、統計学や機械学習でも重要な数式にしている。
触れるデモ
それでは、二つの世界を実際に動かしてみよう。
現実の世界 $P$ と、自分が信じている世界 $Q$。
それぞれの赤と青のボールの割合を、スライダーで自由に変えることができる。
最初は、現実が赤90%、青10%、予想が赤50%、青50%になっている。
まず、次のことを試してほしい。
- 予想 $Q$ を現実 $P$ に近づける。 KLダイバージェンスが小さくなり、二つの分布が一致すると0になる。
- 「PとQを交換」を押す。 比較する二つの確率分布は変わらないのに、比較する方向によってKLの値が変わることを確かめよう。
- 現実 $P$ の割合を変える。 グラフの谷底が移動することに注目してほしい。
グラフには、二つの曲線を表示している。
- 青い実線:$D_{\mathrm{KL}}(P|Q)$
- 橙色の破線:$D_{\mathrm{KL}}(Q|P)$
どちらの曲線も、二つの分布が一致するところで0になる。
そして画面の下には、前回学んだエントロピーとの関係も表示される。
H(P,Q)=H(P)+D_{\mathrm{KL}}(P\|Q)
自分の予想が現実から離れるほど、余分な情報量が増えていく。
世界の違いは、目に見えるボールの割合だけではなく、予測に必要な情報量の違いとしても表れるのだ。
See the Pen 006 by aokikenichi (@aokikenichi) on CodePen.
別分野への接続
KLダイバージェンスは、二つの確率分布を情報量の観点から比較する数式だ。
一見すると情報理論だけの話に思えるが、実は統計学、生成AI、脳科学など、さまざまな分野に登場する。
ここでは三つの例を見てみよう。
1. 統計学:最尤推定との意外な関係
第2話で登場した最尤推定を覚えているだろうか。
コインを何度も投げて、その結果から表の出る確率を推定した。
最尤推定は、観測されたデータが最も起こりやすくなるように、モデルのパラメータを決める方法だった。
実はこの考え方は、KLダイバージェンスと深くつながっている。
現実の確率分布を $P$、モデルの分布を $Q_\theta$ としよう。
D_{\mathrm{KL}}(P\|Q_\theta)
=H(P,Q_\theta)-H(P)
ここで、現実の分布 $P$ は変わらないので、$H(P)$ も一定だ。
したがって、
\arg\min_\theta D_{\mathrm{KL}}(P\|Q_\theta)
=
\arg\min_\theta H(P,Q_\theta)
つまり、KLダイバージェンスを最小化することと、交差エントロピーを最小化することは同じになる。
現実の確率分布 $P$ の下で、モデルの期待対数尤度を最大化することは、$D_{\mathrm{KL}}(P|Q_\theta)$ を最小化することに等しい。
実際の最尤推定では、この期待値の代わりに観測データの平均対数尤度を最大化する。十分なデータがあれば、適切な条件の下で、現実の分布とのKLを小さくする方向につながる。
第2話では、観測データを最もうまく説明する確率を探した。
第6話の視点から見ると、それはデータを生み出す世界と、自分のモデルとの情報的な食い違いを小さくしようとすることでもあったのだ。
2. 生成AI:VAEは二つの確率分布を比べている
画像を生成するAIの一つに、VAE(Variational Autoencoder、変分オートエンコーダ)がある。
VAEは画像をいったん潜在変数 (z) に対応づけ、そこから画像を生成するモデルだ。
その学習には、ELBO(Evidence Lower Bound)という目的関数が登場する。
\mathrm{ELBO}
=
\mathbb{E}_{q_\phi(z|x)}
[\log p_\theta(x|z)]
-
D_{\mathrm{KL}}(q_\phi(z|x)\|p(z))
少し複雑に見えるが、大きく二つの部分に分かれている。
- 第1項:潜在変数から元のデータをどれだけうまく説明できるか
- 第2項:データから推定した潜在変数の分布が、事前に想定した分布からどれほど離れているか
第2項がKLダイバージェンスだ。
VAEでは、データをうまく説明するだけでなく、潜在変数の分布が事前分布から極端に離れすぎないことも重視する。
ここでのKLは、現実の分布と予想の分布を直接比較しているわけではない。
しかし、二つの確率分布の情報的な食い違いを、学習の目的関数に組み込むという点で、今回学んだ考え方がそのまま活用されている。
3. 脳科学:脳は世界を予測している?
脳科学にも興味深いつながりがある。
私たちは目や耳から入ってくる情報を、ただ受け取っているだけなのだろうか。
脳は世界についての予測を作り、実際に受け取った感覚情報と照らし合わせているのではないか。
こうした考え方は「予測符号化(Predictive Coding)」と呼ばれる研究につながっている。
さらに、カール・フリストンらが提唱した「自由エネルギー原理(Free Energy Principle)」では、脳の知覚や行動を、確率的な推論と変分自由エネルギーの最小化という観点から説明しようとする。
この変分自由エネルギーにも、KLダイバージェンスが現れる。
例えば、感覚情報から推定した隠れた状態について、近似的な確率分布とモデルが定める事後分布との食い違いをKLで表せる。
ここで重要なのは、脳が単純に「驚きをなくそうとしている」というだけの話ではないことだ。
予測が外れたとき、何が起こったのかを推論し、必要に応じて自分の内部モデルを更新する。自由エネルギー原理は、そうした過程を統一的に説明しようとする理論的枠組みの一つである。
もちろん、人間の脳が実際にKLダイバージェンスをそのまま計算していると確立されたわけではない。
それでも、統計学で登場した「確率分布の食い違い」という考え方が、知覚や認識の理論にも現れるのは興味深い。
最尤推定は、データに合った世界のモデルを探す。
VAEは、確率分布の食い違いを利用して生成モデルを学習する。
自由エネルギー原理は、脳による知覚や推論を、確率的なモデルを用いて説明しようとする。
それぞれ目的も仕組みも異なるが、共通しているのは、それぞれ異なる目的で、確率分布の食い違いを扱っていることだ。
情報理論の一つの数式が、世界を予測するAIと、世界を認識する脳を考えるための共通言語になっている。
KINGMA, Diederik P.; WELLING, Max. Auto-encoding variational bayes. arXiv preprint arXiv:1312.6114, 2013.
FRISTON, Karl. The free-energy principle: a unified brain theory?. Nature reviews neuroscience, 2010, 11.2: 127-138.
この数式が提示する「世界観」
先輩が二つの箱を片付け始めた。
「同じ二つの箱なのに、どちらを現実とするかで、違いの大きさが変わるんですね」
「そう。KLダイバージェンスは、二つの世界がどれほど離れているかというより、ある世界を信じていたとき、別の世界で起こる出来事をどれほど予想し損ねるかを測っているんだ」
僕は少し考えた。
「ということは、僕たちが世界を理解するときも、似たようなことが起きているんでしょうか」
「どういうことだい?」
「僕たちは世界をそのまま見ているつもりでも、実際には、自分が信じている世界を通して物事を予想しているのかもしれない」
先輩はうなずいた。
「そして現実がその予想を裏切るたびに、自分の世界の見方を修正する機会が生まれる」
僕は赤と青のボールを思い出した。
赤が出ると思って赤が出ても、何も感じない。
でも、ほとんど出ないと思っていた青が出たら、きっと驚くだろう。
驚きは、ただ珍しい出来事が起きたから生まれるのではない。
自分が何を信じていたかによっても変わるのだ。
前回のエントロピーは、世界そのものが持つ不確実性を教えてくれた。
今回のKLダイバージェンスは、そこにもう一つの視点を加えてくれた。
世界が不確実であることと、自分が世界を正しく理解していないことは、別の問題なのだ。
先輩が言った。
「世界を理解するというのは、驚かなくなることではないのかもしれないね」
「どういう意味ですか?」
「驚いたときに、自分の予想のどこが違っていたのかを考えられるようになることさ」
僕は窓の外を見た。
世界は、僕がどう思おうと、そこにある。
けれど僕の頭の中にある世界は、まだ現実とぴったり重なってはいない。
その隔たりを知ることが、世界を知るための一歩なのだろう。
世界を知るとは、自分が信じている世界と、実際の世界との違いに気づくことなのかもしれない。
構成案、文案、デモ生成、内容チェックなどにChatGPT(GPT-6.0 Sol)を用いております
ただ文章自体は本記事著者、青木が手直ししております

