logo

相対エントロピー、クルバック・ライブラー・ダイバージェンス 📂確率論

相対エントロピー、クルバック・ライブラー・ダイバージェンス

ビルドアップ

二つの確率分布$P$と$Q$がある時、これらがどれほど異なるかを気にするシチュエーションは簡単に想像できる。

例えば、カメラに撮られた数字が正確に何の数字かを当てる状況を考えてみよう。数字6と9は、上下を明確に示さなければ人間もかなり混乱するが、9を下に線を引く人もいれば引かない人もいるため、多数の人の筆跡データを集めると両方の中の一つを断定するのは困難になるだろう。

この状況で6と9を区別する人工知能を作ると考えてみよう。この分類器classifierが最も上手に学習するということ、つまり人間を最もよく模倣するということは、人が与えたデータから曖昧さを含む確率分布を最も類似して再現することになるだろう。自然な動機付けは「確率分布間の差異」に繋がり、これを最小化する技術を探求することで望む人工知能に一歩近づくだろう。

一方、上記の動機付けにおいて、二つの確率分布が等価である必要はなく、実は等価であると問題があるかもしれない。私たちが(基準)確率分布$P$に関心を持つとする場合、$Q$が$P$とどれほど違うかは関係ないが、比較する価値もないほど異なるのは困る。例えば、$P$が二項分布であり、$Q$が指数分布であった場合、この両方の差異は縮めようがないある種の限界があり、縮めただけでは根本的に違いすぎるためだ。そのため、少なくともこの文脈では、$P$が何らかの固定された基準だった方が良い。

ここで、具体的に二つを比較する関数を想像してみよう。距離関数のように何かの差異を考える時、関数解析学においてのように最も直感的な方法は、単純に二つの確率分布の確率密度関数$p,q$の差を考えることだ。 $$ D(p,q) \overset{?}{=} \sup | p(x) - q(x) | $$ 問題は、上の段落で指摘されたように、この定義が参照確率分布$P$に対して関心がなさ過ぎることだ。このような定義だけでは、確率分布が違うために異なるのか、ただのパラメーターがおかしいのかが非常に曖昧だ。ここでシャノンエントロピー$H$を考えてみよう。

シャノンエントロピー: $$ H(P) := - \sum p(x) \log_{2} p(x) $$

これは、期待値の概念で見れば、確率分布$p(x)$に関する連続関数$- \log_{2} p(x)$の平均、すなわち$E \left( - \log_{2} p(X) \right)$である。これまでの議論から、エントロピーを上手く応用すれば、参照確率分布$P$に関心を持ちながらも、二つの間の差異を適切に表現する関数を定義できるかもしれないと思える。ここでクロスエントロピーを思い出そう。

クロスエントロピー: $$ H (P,Q) := - \sum p(x) \log_{2} q(x) $$

複雑に考えずに、上で述べた要素だけ全て入れてみれば、次のような関数$D_{\text{KL}} \left( P , Q \right)$を考えることができる。

$$ \begin{align*} & \left| E_{P} \left[ \log_{2} q(X) - \log_{2} p(X) \right] \right| \\ =& \left| - \sum p(x) \log_{2} q(x) + \sum p(x) \log_{2} p(x) \right| \\ =& \left| H \left( P, Q \right) - H \left( P \right) \right| \\ \overset{?}{=}& D_{\text{KL}} \left( P , Q \right) \end{align*} $$

定義

二つの確率分布$P, Q$の確率質量関数$p,q$または確率密度関数$f,g$が与えられているとする。そのように定義された$D_{\text{KL}} \left( P \| Q \right)$は、$Q$から$P$へのクルバック・ライブラー ダイバージェンスkullback-Leibler Divergenceまたは相対エントロピーrelative Entropyと言われる。

$$ \begin{align*} D_{\text{KL}} \left( P \| Q \right) :=& H(P,Q) - H(P) \\ \overset{\text{or}}{=}& - \sum p(x) \log_{2} {{ q(x) } \over { p(x) }} \\ \overset{\text{or}}{=}& - \int_{\mathbb{R}} f(x) \log_{2} {{ g(x) } \over { f(x) }} dx \end{align*} $$

説明

$$ D_{\text{KL}} \left( P \| Q \right) = - \sum p_{k} \log_{2} {{ q_{k} } \over { p_{k} }} $$

定義のみからクルバック・ライブラー ダイバージェンスの意味を理解するのは、数学専攻者にとっても簡単ではない。数式を受け入れるカギは、ログ$\log_{2}$にある。 $$ \begin{align*} D_{\text{KL}} \left( P \| Q \right) =& - \sum p_{k} \log_{2} {{ q_{k} } \over { p_{k} }} \\ =& - \sum p_{k} \log_{2} q_{k} - \left( - \sum p_{k} \log_{2} p_{k} \right) \\ =& H ( P, Q ) - H ( P ) \end{align*} $$ ビルドアップで述べたように、単純な「差」が分数形式に変わるのは、ログのためだ。ログの中の${{ q } \over { p }}$を外に引き裂けば、引き算が出て、これがどのような意味を持つかを理解するかもしれない。もちろん、正確に知るためには、これだけでは不十分で、シャノンエントロピーとクロスエントロピーについてもちゃんと勉強しておく必要がある。

乖離を表すシンプルな測定法

ギブスの不等式によると、クロスエントロピーは常に単独エントロピー以上であり、従って常に$D_{\text{KL}} \ge 0$である。一方、二つの分布が正確に同じ時、つまり$p=q$の時は$p/q = 1$であり、 $$ D_{\text{KL}} \left( P | Q \right) = - \sum p(x) \log_{2} {{ q(x) } \over { p(x) }} = - \sum p(x) \cdot 0 = 0 $$ そして、常識的に$D_{\text{KL}} = 0$を得る。直感的な意味で考えれば、クルバック・ライブラー ダイバージェンス自体が$Q$が$P$とどれほど異なるかを表すものであるため、当然のことだ。

距離関数ではない

$$ D_{\text{KL}} \left( P \| Q \right) \ne D_{\text{KL}} \left( Q \| P \right) $$

一般に、上のように対称性は成立しない。これは期待値を計算する際に参照確率分布を$P$とするためだ。これが$Q$に変わると、クルバック・ライブラー ダイバージェンスもまたどれだけでも変わることができる。なぜなら、$P$の視点では$Q$が異質に感じられるかもしれないが、$Q$の立場では$P$と似ていると思うかもしれないと理解すればいい。このような相対性のために、クルバック・ライブラー ダイバージェンスは距離関数にならず、相対エントロピーとも呼ばれる。

機械学習

機械学習では、クルバック・ライブラー ダイバージェンスよりもクロスエントロピーの方がより広く知られている。実際、情報理論ではなく機械学習では、両者の間には概念的に大きな違いがなく、厳密に言えば、クルバック・ライブラー ダイバージェンスの方がより適切な関数かもしれないが、実際の計算ではクロスエントロピーの方が有利であるためだ。

クルバック・ライブラー ダイバージェンスではなくクロスエントロピーを使う理由: … 単独エントロピー$H(p)$に関して表現すれば $$ H(p,q) = H(p) + D_{\text{KL}} \left( p \| q \right) $$ は、$p=q$の時に$D_{\text{KL}} \left( p \| q \right) = 0$となる目的関数(損失関数)として使われる。… $H(p)$が単独、(基準)エントロピーであれば計算で変わることはないが…。しかし、コンピュータから見れば $$ \begin{align*} H (p,q) =& - \sum p(x) \log_{2} q(x) \\ D_{\text{KL}} \left( p \| q \right) =& - \sum p(x) \log_{2} {{ q(x) } \over { p(x) }} \end{align*} $$ 計算しやすい方は明らかにクロスエントロピーだ。…

したがって、概念研究はクルバック・ライブラー ダイバージェンスで、実際の