4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

エントロピー・クロスエントロピー・正規化エントロピー

Last updated at Posted at 2022-03-24

NE(Normalized Entropy)という言葉に仕事で出会い、今まで「クロスエントロピー」などで使っていた「エントロピー」ってそもそも何?と思い調べました。
Wikipedia「情報量」には以下の記載があります。ちょっとわかりにくいですね。個人的には「情報の価値の総和」と覚えました。

情報量(じょうほうりょう)やエントロピー(英: entropy)は、情報理論の概念で、あるできごと(事象)が起きた際、それがどれほど起こりにくいかを表す尺度である。

※もともとは熱力学や統計力学の言葉っぽいですが、今回は情報理論的な側面の焦点を当てています。

選択情報量(自己エントロピー)と平均情報量(エントロピー)

エントロピーに以下の2種類あるらしいです。単純に「エントロピー」と言うと「平均情報量(エントロピー)」を指すようです(あまり深く確認していません)。平均情報量(エントロピー)」が少しわかりにくいですが、コイン裏表が同確率の場合に、どちらが起こるかという情報の価値が高い、と理解しています。

種類 内容     計算式     
選択情報量
(自己エントロピー)
事象単体の情報量
確率が低い事象ほど高い
$- \log P(E)$
平均情報量
(エントロピー)
事象の情報量の平均値
同確率ほど高い
$- \sum_{A \in \Omega} P(A) \log P(A) $

logの底は計算しやすい2を使う場合が多いようですが、相対的な数値が重要なので何でもいいらしいです。いつもすぐに出てこないlog(対数関数)は以下を参照。

log(対数関数)のグラフ

画像はWikipediaから拝借。x=1は必ず0を通り、log(底の値)=1です。
image.png
各色の曲線の底

  • 緑: 10
  • 赤: ネイピア数 e
  • 紫: 1.7

以下は例です。

選択情報量 平均情報量
太陽は東から昇る (ゼロ): 必ず起こる事象だから (ゼロ): 必ず起こる事象だから
次に出るサイコロの目は1 : 1/6の確率を言い当てているから : 1/6と5/6確率の平均だから

先程の例で計算式にします(底は2で端数は雑に表現)。

Entropy 計算式             
選択情報量
100%
太陽は東から昇る
0 $- \log P(E) $
$= -\log 1$
平均情報量
100%
太陽は東から昇る
0 $-p(0)\log p(0)-p(1)\log p(1)$
$=0 \times \infty - 1 \times 0$
選択情報量
17%
次のサイコロの目は1
2.58 $- \log P(E) $
$= -\log \frac{1}{6}$
平均情報量
17%
次のサイコロの目は1
0.65 $-p(0)\log p(0)-p(1)\log p(1)$
$=- \frac{5}{6} \log \frac{5}{6} - \frac{1}{6} \log \frac{1}{6}$
$ = -\frac{5}{6} \times -0.3 - \frac{1}{6} \times -2.6$
$= 0.21+ 0.43 $

二値分類時平均情報量(エントロピー)の一覧

Excelで二値分類のときのエントロピーを一覧化しました。五分五分のときにエントロピーが最も高くなります。
確率からどちらが起こるかわからない場合に、それがわかると価値が高い」と理解しています。コインの裏か表か、わからない場合にそれがわかることが情報価値が高い、ということです。
image.png

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

馴染み深い「交差エントロピー」です。機械学習の分類問題で「クロスエントロピー誤差」としてよく出ます。真と予測の2つの確率分布を交差させてエントロピーを計算。はじパタのロジスティック回帰Courseraの機械学習入門コースでやっていますね。log loss やロジスティック損失とも呼ばれます
離散確率変数でも連続確率変数でも計算できますが、機械学習では離散確率変数目的で使うことも多いと思うので、離散確率変数だけを説明。
2つの離散確率変数p(x)とq(x)でのクロスエントロピーは以下の式。

H(p, q) = -\sum_{x} p(x) \log(q(x))

2値分類だと以下の式にできます。

H(p, q) = -y \log \hat{y} - (1-y) \log(1-\hat{y}) \\
p \in \{y, 1-y\}, q \in \{ \hat{y}, 1-\hat{y}\}

2値分類でのクロスエントロピー誤差の場合、真の確率は1/0なので、計算がわかりやすいです。
例えば有名なKaggleのタイタニックのように生死予測(生=1)だとして、以下の計算例です。
※対数関数の底は2で計算

正解(y) 予測($\hat(y)$) 誤差 計算式               
$-y \log \hat{y} - (1-y) \log(1-\hat{y})$
0 0 0 $-0 \log 0 - (1-0) log (1-0)$
0 1 $\infty$ $-0 \log 1 - (1-0) log (1-1)$
1 0 $\infty$ $-1 \log 0 - (1-1) log (1-0)$
1 0.25 2 $-1 \log 0.25 - (1-1) log (1-0.25)$
1 0.5 1 $-1 \log 0.5 - (1-1) log (1-0.5)$
1 0.75 0.42 $-1 \log 0.75 - (1-1) log (1-0.75)$
1 1 0 $-1 \log 1 - (1-1) log (1-1)$

正規化クロスエントロピー

先程のクロスエントロピー誤差を正規化したものを正規化エントロピーと呼びます。Normalized Cross-Entropy, Normalized Log Loss, Normalized Entropy(NE) などとも呼ばれます。CTR予測をしているときにPractical Lessons from Predicting Clicks on Ads at Facebookで学びました。
除算の線形変換をする点では、通常の正規化と変わりません。分母はエントロピー(平均情報量)です。すべての予測値を平均値にした場合に値が1です。
以下が計算式です。

\frac{LogLoss}{- (p * log (p) + (1-p) * log (1-p) )} 
= \frac{- \frac{1}{N} \sum_{i=1}^{N}  y_i log (p_i) + (1 - y_i) log (1 - p_i)}{- (p * log (p) + (1-p) * log (1-p) )}

参考リンク

4
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?