エントロピー、交差エントロピー、KLダイバージェンス

Python, ML, Math14 January 2021

エントロピー

エントロピーとは一般に、無秩序さを表す指標として考えられる。
これは言い換えると、予測できなさとも言える。

エントロピーは無秩序である(予測が困難)であるほど値は高くなる。

また、エントロピーは熱力学でも登場しますが今回は機械学習における(情報)エントロピーです。
(と言っても考えは近しい。らしい)

情報で出てくるエントロピーとは

ある事象\(X = X_1, X_2, X_3 \cdot, X_n\)に対して、それらが起こる確率を\(P= P(X_1), P(X_2), P(X_3), \cdot, P(X_n)\)の時、
エントロピーH(P)は以下の式で表されます。

$$ H(P) = - \sum_{i=1}^{n} P(X_i) \log P(X_i) $$

ちなみにlogの底は2です(eじゃないことに注意!)

例題

出る目の確率が均等であるサイコロを振って、その出た目の確率変数\(X\)のエントロピー\(H(X)\)を求める

$$ \begin{align} H(X) = ( -\frac{1}{6}\log \frac{1}{6} ) + ( -\frac{1}{6}\log \frac{1}{6} ) + \cdots \\ &= 6( -\frac{1}{6}\log \frac{1}{6} ) \\ &= \log 6 \end{align}$$

クロスエントロピー(交差エントロピー)

クロスエントロピーは、ある確率分布PとQがどの程度離れているかを算出することができる。
つまり、ある確率Pを元にして別の確率Qを測定できると考えられる。

機械学習においては、正解と推論結果の比較に使える

ある事象\(X = X_1, X_2, X_3 \cdot, X_n\)に対して、それらが起こる確率Pを\(P= P(X_1), P(X_2), P(X_3), \cdot, P(X_n)\)とし、
確率Qを\(Q= Q(X_1), Q(X_2), Q(X_3), \cdot, Q(X_n)\)とした時、 エントロピー\(H(P)\)は以下の式で表されます。

$$ H(P, Q) = - \sum_{i=1}^{n} P(X_i) \log Q(X_i) $$

エントロピーの計算の対数項をQにしただけ

バイナリクロスエントロピー

  • クロスエントロピーの対象が0, 1で表される2値の確率問題の時に使用
    • コイン表裏とかね
$$ H(P, Q) = -P(X) log Q(X) - (1 - P(X)) \log (1 - Q(X)) $$

KLダイバージェンス

KLダイバージェンスはある確率分布と別の確率分布の差異を測定することができる。

$$ D_{KL}(P||Q) = \sum_x P(x)\log \frac{P(x)}{Q(x)} $$

これを変形すると、

$$ D_{KL}(P||Q) = \sum_x P(x)\log P(x) - P(x)\log Q(x) $$

となり、要はエントロピー - 交差エントロピーを行うことに等しい。

tags: Python, ML, Math