自己情報量からKLダイバージェンス超えて交差エントロピーまでをまとめる

#はじめに
最近ベイズ推定系の機械学習に手を出す前段階として情報量の概念を勉強しており、その中で理解したことを整理しました。本記事では自己情報量から交差エントロピーの話をまとめています。

##参考
情報量の概念を理解するに当たって、下記を参考にさせていただきました。

- [情報理論の基礎～情報量の定義から相対エントロピー、相互情報量まで～](https://logics-of-blue.com/information-theory-basic/)
- [自然言語処理のための機械学習入門](https://www.amazon.co.jp/dp/4339027510/ref=cm_+_r_tw_dp_U_x_mrslEb7V97MQ9 )
- [交差エントロピー]
(https://ja.wikipedia.org/wiki/%E4%BA%A4%E5%B7%AE%E3%82%A8%E3%83%B3%E3%83%88%E3%83%AD%E3%83%94%E3%83%BC)

#情報理論
##情報理論の基本的な考え方
情報理論の重要な考え方をざっくりと捉えるには下記2つの視点が重要だと思います。
割ととっつきにくい数式が多く出てくる中で自分としては非常に理解に役立ちました。

###①珍しいことは情報量が多い
「発生確率が低いことがわかった方が情報量が多い」という性質を持っています。
後述する**自己情報量**の数式もまさにそれを表しているのですが、ここでは具体例あげて説明してみます。

A:サイコロの出目で偶数が出るという情報
B:サイコロの出目で6が出るという情報

上記2つの情報があったとします。もしサイコロの出目で掛けをしていた時、欲しい情報はAとBどちらでしょうか？

もちろん特定の出目までわかっているBの情報の方だと思います。
まさに**Bの方が価値のある情報である**ということだと思うのですが、情報量の考え方もこの直感的な情報価値の高低に一致します。


###②情報は足し合わされる
情報理論の考え方をベースとしたKLダイバージェンス、エントロピー、AICなどの定義式の中には**必ず対数が含まれています。**
この対数の存在が個人的には式の意味が分かりにくくなっている原因だったりしたのですが、対数が出現している理由はこの**情報は足し合わされる**という考え方がベースとなっているように思います。

A:サイコロの出目で偶数が出るという情報
という情報に対して下記情報加わったとします。
C:サイコロの出目は4以上であるという情報

情報Cが加わることでサイコロの出目は4または6に限定されました。
まさに**情報としての価値が上がっている**ということになります。

確率の計算は掛け算によってその条件を加えていく形式になっていますが、情報理論ではその掛け算を足し算として表すことでより数学的に扱いやすくしています。その**掛け算を足し算として表す手法として対数**が用いられています。

##自己情報量

```math

i(x)=-logP(X = x)

```


あることが分かった際の「そのことの情報量」を自己情報量と呼び、上記のように定義できます。ここでの$P(x)$は「あることが起こる確率」を表しており、例えばサイコロの出目で偶数がでる確率であれば$P(x) = \frac{1}{2} $となります。

今回簡易的に対数の底を$2$とおいて**A:サイコロの出目で偶数が出る**ことの情報量を求めてみます。

```math

{\begin{eqnarray}

i(x) &=& -log_{2}P(x) \\
&=& -log_{2}\frac{1}{2} \\
&=& -log_{2}2^{-1} \\
&=& 1



\end{eqnarray}
}

```

続いて**B:サイコロの出目で6が出る**ことの情報量を求めてみます。

```math

{\begin{eqnarray}

i(x) &=& -log_{2}P(x) \\
&=& -log_{2}\frac{1}{6} \\
&\fallingdotseq& -log_{2}2^{-2.585} \\
&=& 2.585

\end{eqnarray}
}

```

自己情報量の観点でも直感的なイメージと違わず**「B:サイコロの出目で6が出る」**の情報量の方が多いことがわかります。

##エントロピー
情報理論に基づいた概念として「エントロピー」というものがあります。エントロピーは乱雑さを表す尺度といわれており、エントロピーが高い状態とは**確率変数がどれをとるか言い当てにくい状態**を表しています。

実はこのエントロピーは**ある確率分布の自己情報量の期待値**になっています。数式での定義式は下記のような感じです。$H(P)$は確率分布$P(x)$のエントロピーを表します。

```math

H(P) =  \sum_{x} -P(X = x)logP(X = x)

```

では所謂普通のサイコロの出目の確率分布$P(x)$のエントロピーを計算してみます。


```math

{\begin{eqnarray}

H(P) &=&  (\frac{1}{6}×2.585) + \cdots + (\frac{1}{6}×2.585)　\\
&=& 2.585

\end{eqnarray}}

```

では$6$の目だけ異常にでやすいサイコロの出目の確率分布$Q(x)$のエントロピーを計算してみます。$6$の目だけ$\frac{5}{6}$の確率で出て、残りの目は全て$\frac{1}{30}$の確率で出ると仮定します。

```math

{\begin{eqnarray}

H(P) &=&  (-\frac{5}{6}×log_{2}\frac{5}{6}) + (\frac{1}{30}×log_{2}\frac{1}{30}) +\cdots + (\frac{1}{30}×log_{2}\frac{1}{30})　\\
&\fallingdotseq& (\frac{5}{6}×0.26) + (\frac{1}{30}×4.91) +\cdots + (\frac{1}{30}×4.91)　\\
&=& 0.217 + 0.818 \\
&=& 1.035

\end{eqnarray}}

```

このような感じで普通のサイコロの確率分布のエントロピーよりも小さくなります。つまり**このサイコロの方が出目を当てやすい**ということがエントロピーでも示されていることがわかります。

##KLダイバージェンス
KLダイバージェンス(KL情報量とも呼ばれる)は2つの確率分布に対してそれらの異なる具合をはかる指標です。**各々の確率分布の自己情報量の差の期待値**を取っています。
$P$からみた$Q$のKLダイバージェンスを$D_{KL}(P||Q)$と置くと数式的には下記のように定義できます。

```math
{\begin{eqnarray}

D_{KL}(P||Q) &=& \sum_{x} P(X = x){(-logQ(X = x)) - (-logP(X = x))} \\
&=& \sum_{x} P(X = x)log\frac{P(X = x)}{Q(X = x)}

\end{eqnarray}}


```

KLダイバージェンスはダイバージェンスという名前がついていますが数学的な「距離」ではありません。$P$と$Q$を入れ替えると値が変わる($D_{KL}(P||Q)\neq D_{KL}(Q||P)$)ため、距離の条件として定義されている対象性を満たしません。(他の条件である三角不等式も満たさない。)

上記性質があるためどちらからみたKLダイバージェンスであるのかは注意が必要です。

##相互情報量
相互情報量は２つの確率変数の相互依存度をはかる指標です。$P(x,y)$を確率変数$X$と$Y$の同時確率分布、$P(x)$と$P(y)$を確率変数$X$と$Y$それぞれの確率分布とした時、相互情報量は下記のように定義されます。

```math
{\begin{eqnarray}

MI(X;Y) &=& \sum_{x}\sum_{y} P(x,y)log\frac{P(x,y)}{P(x)P(y)}

\end{eqnarray}}


```

KLダイバージェンスの式と比べて見ると、相互情報量は同時確率分布から見た各々の確率分布同士の積とのKLダイバージェンスであることもわかります。

```math
{\begin{eqnarray}

MI(X;Y) &=& D_{KL}(P（X,Y）||P(X)P(Y))

\end{eqnarray}}


```

##交差エントロピー
交差エントロピーも2つの確率分布がどの程度離れているかを判定するために使用します。ニューラルネットワークなどの機械学習の誤差関数としてよく用いられます。確率分布$P(x)$と$Q(x)$の交差エントロピーは数式的には下記のように定義されます。

```math
{\begin{eqnarray}

H(P, Q) &=& -\sum_{x} P(X = x)logQ(X=x)

\end{eqnarray}}

```

2つの確率分布がどの程度離れているかを表す、というと先ほどのKLダイバージェンスを思い出しますが、実は交差エントロピーは下記のようにも表されます。

```math
{\begin{eqnarray}

H(P, Q) &=& -\sum_{x} P(X = x)logQ(X=x)　\\
&=& (-\sum_{x} P(X = x))(log\frac{P(X=x)Q(X=x)}{P(X=x)}) \\
&=& (-\sum_{x} P(X = x))(logP(X=x) + log\frac{Q(X=x)}{P(X=x)})　\\
&=& -\sum_{x} P(X = x)logP(X=x) + \sum_{x} P(X = x)log\frac{P(X=x)}{Q(X=x)} \\
&=& H(P) + D_{KL}(P||Q)

\end{eqnarray}}

```
確率分布$P(x)$と$Q(x)$の交差エントロピーは$P(x)$のエントロピーと$P(x)$から見た$Q(x)$のKLダイバージェンスを足し合わせたものになっています。

こう見ると交差エントロピーはKLダイバージェンスと密接に関係していることがわかります。確率分布$P(x)$が固定の場合、交差エントロピーを最小化していくタスクはKLダイバージェンスを最小化させるタスクと同義であることがわかります。

#Next
機械学習の損失関数などでよく用いられる、情報量の概念をなんとなく理解することができました。次はAICやベイズ推定系の勉強に進んでいこうと思います。