logo

クロスエントロピー 📂確率論

クロスエントロピー

概論

クロスエントロピーは、二つの確率分布を区別するために必要な平均ビット数であり、通常、真と仮定される(リファレンス)確率分布$p$と、これを推定するための(予想される)確率分布$q$の間で定義される。

定義 1

離散

二つの離散確率分布の確率質量関数$p,q$が与えられたとする。二つの確率分布のクロスエントロピー$H (p,q)$は、以下のように定義される。 $$ H (p,q) := - \sum p(x) \log_{2} q(x) $$

連続

測度空間$( \Omega , \mathcal{F}, m)$の$m$が測度であるとする。$f,g$がそれぞれ二つの確率測度$P,Q$の測度$m$に対して絶対連続な確率密度関数であるならば、二つの確率分布のクロスエントロピー$H (P,Q)$または$H(f,g)$は、以下のように定義される。 $$ H (P,Q) = H(f,g) = - \int f(x) \log_{2} g(x) dm(x) $$

説明

連続型クロスエントロピーの定義が難解であることは、それほど神経質にならなくても良い。

マシンラーニング

2010年以降、クロスエントロピーは、特に分類器の学習過程で活発に使われている損失関数である。二つの確率分布の乖離を示すクルバック・ライブラー情報量$D_{\text{KL}} \left( p \| q \right)$と、自己エントロピー$H(p)$に関して示せば $$ H(p,q) = H(p) + D_{\text{KL}} \left( p \| q \right) $$ $p=q$の時、$D_{\text{KL}} \left( p \| q \right) = 0$を目指す目的関数(損失関数)として使われる。分類問題の文脈では、$p$は実際のデータから出た確率―例えば、写真の中の被写体が犬か猫かを示すラベリングであり、$q$は分類器が計算した結果―犬である確率70%、猫である確率20%、飛行機である確率5%…と考えれば良い。これがほぼ一致すること、つまり$p \approx q$であることは、分類器がラベリングをほぼ正確に予測し、クロスエントロピーが最小化されるという意味になる。

数学に詳しくて鋭い読者なら、ふと目的関数で$D_{\text{KL}} \left( p \| q \right)$だけが重要ではないかと疑問に思うかもしれない。 $H(p)$が単独、(リファレンス)エントロピーであれば計算上に変わることがないので、ただ$D_{\text{KL}} \left( p \| q \right)$自体を損失関数として使う方が効率的に見える。しかし、コンピュータの立場から見れば $$ \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*} $$ 計算しやすい方は、明らかにクロスエントロピーだ。どっちにしろ、最適化(学習)結果は同じだから、わざわざ$q(x) / p(x)$を計算する必要はない。$H(p)$が変わることがないから$D_{\text{KL}} \left( p \| q \right)$を使わないのではなく、その逆で、クロスエントロピーを使う理由になる。結論は「損失関数の文脈では、クロスエントロピーとクルバック・ライブラー情報量は概念的にまったく同じだ」ということだ。

もちろん、これはコンピュータの計算に関することであり、実際には、行列分解を扱う論文などでは、数式的な展開の便宜のために、クロスエントロピーではなくクルバック・ライブラー情報量を使うこともある。

表記

ちなみに、$H(X,Y)$のような表現はジョイントエントロピーと重なるが、意外とクロスエントロピー自体が単独で使われることは、上で述べたマシンラーニングの文脈の時以外にはあまりないので、勉強している時を除いては特に混乱することはないだろう。しかし、二つの表現が重なることを知っておく価値はある。