いま松尾研の深層生成モデル講座(https://weblab.t.u-tokyo.ac.jp/lecture/course-list/deep-generative-model/ )を受けているのですが、KLダイバージェンス最小化 = 対数尤度最大化が同義であることを、やっと直感的に理解できたので、それを共有させていただきます!
直感的なイメージ
対数尤度最大化とKLダイバージェンス最小化は 「目標とする確率分布をどれだけ正確に再現できるか?」 という問題です。
サイコロで考える
- 誰かが作ったサイコロを観察して、「このサイコロは公正(1/6ずつ)か、それとも偏っているのか?」 を知りたいとします。
- 10回投げた結果: 「6」が3回出た。
- ここで、サイコロの6の出る確率θを推定したい。
どの確率がもっとも「それっぽい」か?
-
ケース1:θ = 0.3(正しい確率)
- もしこのサイコロが「6が30%の確率で出る」サイコロだったら、この結果(10回中3回)は普通にあり得る。
-
ケース2:θ = 0.5(誤った確率)
- もしこのサイコロが「6が50%の確率で出る」サイコロだったら、10回投げて3回しか出ないのはかなり不自然。
この直感を数式にしたのが「対数尤度」 であり、
「どれだけ不自然な確率か?」を測るのがKLダイバージェンス です。
KLダイバージェンスを直感的に
KLダイバージェンスは 「モデルがデータをどれだけ間違えて予測しているか」 を測るものです。
- 経験分布(≒真の分布)と生成モデルのKLダイバージェンスが大きい
→ モデルの確率がデータとズレていて、データをうまく説明できていない。 - 経験分布(≒真の分布)と生成モデルのKLダイバージェンスが小さい(ゼロに近い)
→ モデルの確率がデータの確率に近く、データをよく説明できている。
対数尤度を直感的に
対数尤度とは、「観測されたデータが、モデルの確率でどれだけ説明できるか?」を測るもの。
-
尤度 = 「モデルがこのデータを生成する確率」
-
対数尤度 = 「対数を取ったもの」 → 計算しやすくなる。
-
対数尤度が高い
→ モデルがデータをよく説明している。 -
対数尤度が低い
→ モデルがデータを説明できていない。
つまり、「データをよく説明する = KLダイバージェンスが小さい = 対数尤度が大きい」 という関係になる。
まとめ
- 対数尤度最大化は、「データを最もよく説明する確率を探す」
- KLダイバージェンス最小化は、「モデルの予測をデータの分布に近づける」
- どちらも「モデルを正しくする」ために、実は同じことをしている!