機械学習の理論の軽いまとめ＃１　「情報量と相対エントロピー」


こんにちは！
本記事を書く際に参考にさせていただいた文献は、**5.参考**に記載してあります。

記事に誤りなどがあればご指摘いただきたいです。

---
###0. 目次

**1.情報量**
　1.1　情報量の定義
　1.2　情報エントロピー
　1.3　情報エントロピーの意味
**2.相対エントロピー**
**3.相対エントロピーの意味**
**4.雑感**
**5.参考**


#1. 情報量
##1.1 情報量の定義
機械学習はデータの情報を扱うのでまず、情報量を定義します。

例として、次の２つ事象を考えてみましょう。
>ここでは、**5.参考**に記載の例を用います。

事象1：人間がゴリラに足し算を教えた。
事象2：ゴリラが人間に足し算を教えた。

この、２つの状況のどちらが多くの情報量を持っていると言えるでしょうか。

事象1は、ゴリラが理解していても、していなくても関係なく「ありえそう」なので本当だとしてもそれほど**驚かない**と思います。
一方、事象２は本当ならとても**驚く**と思います。そして、「足し算を人間に教えられるゴリラもいる。」と自分の認識を改めることになります。
このことから、「事象１よりも事象２の方が情報量は多い」と言えるのではないでしょうか。

つまり、
　　　　　　　　　　　　　　　　　　　**情報量＝驚きの大きさ**
と書けそうです。

また、**「発生する確率が低い事象ほど情報量が多い」**とも言えそうです。
これが、直感的な情報量の定義です。

##1.2 情報エントロピー
次に、こんな事象を考えてみます。

事象3：ゴリラが人間に足し算と漢字を教えた。

これは、事象２に「漢字を教えた」という情報が付け加わっています。つまり、事象２に「漢字を教えた」と言う情報が足されたと考えることができます。


**ここで、以下の２つのことを満たす「情報量」を定義します。**
**1. 発生する確率が低い事象ほど情報量が多い。**
**2. 情報は加算で増えていく。**

この条件を満たす「情報量」のことを**自己情報量**と呼び、$i(x)$とすると以下のように定義できます。
$$
\begin{equation}
i(x) \equiv -lnP(x)
\end{equation}
$$
$P(x)$は、「事象$ｘ$が起こる確率」を表します。
この式は、負符号が付くことによって「事象の確率が大きくなる（頻繁に起こる）と情報量が小さくなる。」ということが表現できています。また、情報量を加算したときに確率の同士が積算になり、事象が重なった時の表現も上手く出来ています。

ここでさらに、様々な事象 $A_1$ , $A_2$ , ... , $A_W$ がそれぞれ確率 $p_1$ , $p_2$ , ... , $p_W$で起こる場合を考えます。このとき、各事象の情報量は$i(A_i)$となります。なので期待値$S$は、
$$
\begin{equation}
S = - \sum_{i=1}^W p_i lnp_i \tag{1}
\end{equation}
$$
となります。（１）式を**平均情報量**、または**情報エントロピー**を呼びます。


##1.3　情報エントロピーの意味
情報エントロピーが何を表現しているかを考えます。

例えば、W個の箱があるとして、確率$p_i$は$i$番目の箱に宝が入っている確率とします。

例えば、$p_1 = 1$ 、$p_{i \neq1} = 0$と知っている場合、$S = 0$となります。

一方、確率が完全にランダムな場合、$p_i = \frac{1}{W}$ , $S = lnW$となります。このとき確率を知っていたとしても、どの箱にあたりがあるかを当てるのは困難です。情報エントロピーは大きな値を取ります。

よって、まとめると
**・「情報」が少ない　$\leftrightarrow$　予想が困難　$\leftrightarrow$　情報エントロピーが大きい**
**・「情報」が多い　　$\leftrightarrow$　予想が容易　$\leftrightarrow$　情報エントロピーが小さい**
>引用：参考 1,[ディープラーニングと物理学　原理がわかる、応用ができる　著：田中　章詞　著：富谷　昭夫　著：橋本　幸士 1.1章](https://bookclub.kodansha.co.jp/product?item=0000318303)

となります。


#2.相対エントロピー

機械学習の目的は「何らかの経験から知らない未来を予想させる。」事だと言えます。

起こりうる事象を$A_1$ , $A_2$ , ... , $A_W$　とし、それぞれ確率　$p_1$ , $p_2$ , ... , $p_W$　で起こるとする。この場合のように、実際に確率を知ることができれば情報エントロピーの精度で、ある程度未来を予想する事ができると言えます。
しかし、多くの場合は確率は分からず、何度$A_i$が起こったかという情報しか分かりません。このような状況で目的を達成するためには、情報エントロピーのような「事象の予想の困難度合い」を測る量を導入する必要があります。この量が相対エントロピーです。


これから、相対エントロピーを導出していきます。
起こりうる事象を$A_1$ , $A_2$ , ... , $A_W$とし、$A_1$が$c_1$回 , $A_2$が$c_2$回 , ... , $A_W$が$c_W$回起こった場合を考えます。・・・①
また、$C = \sum_{i=1} ^W c_i$と置きます。


これらのデータから確率$p_i$を直接求めることは出来ないので「確率の予想値」$q_i$を考えます。良い$q_i$を見つけることが機械学習であると言えます。

$q_i$の良さを測るために「$q_i$を真の確率であると仮定したとき情報①が起こる確率$J$」を考えます。
まず、各$A_i$が確率$q_i$で起こると仮定すると、
$$
\begin{equation}
P(A_iがc_i回起こる確率) = q_i ^{c_i}
\end{equation}
$$
と書けます。この事と、各$A_i$はどんな順番で起こって良いとすると

$$
\begin{equation}
J =  \frac{C!}{c_1!c_2!...c_w!}\times \prod_{i = 1}^W q_1 ^{c_i}
\end{equation}
$$
と書けます。
ここで、データの総数$C$が$C\sim \infty$となるとして、大数の法則、スターリングの公式から
$$
\begin{equation}
c_i \sim C \cdot p_i
\end{equation}
$$

$$
\begin{equation}
c_i ! \sim c_i ^{c_i}
\end{equation}
$$

となることと、対数と指数の関係 $x = e^{lnx}$ を用いて式変形すると、

$$
\begin{equation}
J = exp\left[-C\sum_{i = 1}^W p_i ln\frac{p_i}{q_i}\right]
\end{equation}
$$
と書ける。
この確率$J$を１に近づけることが目的でした。言い換えると、指数の

$$
\begin{equation}
\sum_{i = 1}^W p_i ln\frac{p_i}{q_i}
\end{equation}
$$
を０に近づける事が目的でした。
**この量を、相対エントロピー、またはカルバック・ライブラー情報量と呼びます。**$p_i = q_i$の時に限りなく０に近づきます。


#3. 相対エントロピーの意味
前章で導出した相対エントロピーの意味を見ていき、損失関数として知られるクロスエントロピーを発見したいと思います。

情報源 $X$ 、 $X'$はどちらも $N$ 種類の同じ情報{$x$}を出力し、確率は$p(x)$ 、 $q(x)$と異なっているとすると、相対エントロピー $H(p||q)$ は、
$$
\begin{equation}
H(p||q) = \sum_x p(x)ln\frac{p(x)}{q(x)}
\end{equation}
$$
と書けます。また、

$$
\begin{equation}
H(p||q) = \sum_x p(x)lnp(x) - \sum_x p(x)lnq(x) \tag{2}
\end{equation}
$$
と変形できます。
（２）式の第一項は1.2節で導出した情報エントロピーであることが分かると思います。
第二項は、情報源$X'$のデータが$X$の確率分布に乗っているとした時の$X'$の情報エントロピーと言えるでしょう。

（２）式の第２項は、クロスエントロピーと呼ばれ、学習させる際にモデルの出力の確率分布とラベルの確率分布の一致度を測る関数として広く採用されています。(機械学習の学習とは主に、クロスエントロピーなどの損失関数と呼ばれる目安の関数を基にモデルのパラメータを更新していくことです。)
式から分かる通り、クロスエントロピーは$p(x)$と$q(x)$が一致するとき最大値を取ります。


#4. 雑感
今回、紹介した情報エントロピーや相対エントロピーの導出や議論を厳密にやろうとするととても難しかったのでまずは簡単に学びました。

**5.参考**の２の文献は、機械学習の理論の厳密な議論が分かりやすく書いてあり、網羅性も高いように思いました。自分はまだ、ほんの一部しか読めていないのでこれから読みます。



#5. 参考
1,[ディープラーニングと物理学　原理がわかる、応用ができる　著：田中　章詞　著：富谷　昭夫　著：橋本　幸士](https://bookclub.kodansha.co.jp/product?item=0000318303)

2,[Foundations of Machine Learning Mehryar Mohri, Afshin Rostamizadeh, and Ameet Talwalkar
MIT Press, Second Edition, 2018.](https://cs.nyu.edu/~mohri/mlbook/)

3,[情報理論の基礎～情報量の定義から相対エントロピー、相互情報量まで～](https://logics-of-blue.com/information-theory-basic/)

4,[相対エントロピー (Kullback-Leibler divergence) と シャノンの補助定理](https://whyitsso.net/math/statistics/relative_entropy.html)