エントロピー(entropy)の定義とその解釈 〜bit、multiplicity〜

エントロピー(entropy)は確率分布の類似度を計算するKLダイバージェンスなど、統計学や機械学習の分野で様々な形で用いられる。当記事では「Pattern Recognition and Machine Learning(C.M.Bishop)」の1.6節を参考にエントロピーの定義とその解釈について取りまとめを行なった。

目的の確認とエントロピーの定義式

無相関時のエントロピーの加法性 $h(x,y)=h(x)+h(y)$

確率関数または確率密度関数を$p(x)$と考えるとき、$h(x)=f(g(x))$のような関数を考え、$h(x)$をエントロピーの定義の要素にすることを考える。ここで互いに相関しない事象$x$と事象$y$に関して下記のような加法性が成立すると仮定する。
$$
\large
\begin{align}
h(x,y) = h(x)+h(y) \quad (1)
\end{align}
$$

また、$x$と$y$がそれぞれ無相関の場合、$p(x,y)$に関して下記が成立する。
$$
\large
\begin{align}
p(x,y) = p(x)p(y) \quad (2)
\end{align}
$$

ここで$h(x)=f(p(x))$であることより、$(1)$式の変形を下記のように考えることができる。
$$
\large
\begin{align}
h(x,y) &= f(p(x,y)) \\
&= f(p(x)p(y)) = h(x)+h(y)
\end{align}
$$

上記が成立するような$f, h$に関しては、$f(x) = -\log_{2}{x}, h(x) = -\log_{2}{p(x)}$のような対数関数を考えることができる。

エントロピーの定義式 $\displaystyle H[x] = – \sum_{x} p(x) \log_{2}{p(x)}$

前項で$f(x) = -\log_{2}{x}, h(x) = -\log_{2}{p(x)}$のように考えたが、$p(x)$で表される確率分布に関して$h(x)$の期待値を$H[x]$とおくと、$H[x]$は下記のように表すことができる。
$$
\large
\begin{align}
H[x] &= E[h(x)] \\
&= E[-\log_{2}{p(x)}] = -\sum_{x} p(x)\log_{2}{p(x)} \quad (3)
\end{align}
$$
上記を確率変数$x$に関するエントロピーと定義する。

以下、$0 \leq p(x) \leq 1$の条件下で$p(x)\log_{2}{p(x)}$の取り得る範囲について考える。シンプルに表記を行うにあたって、以下では$f(p) = p\log_{2}{p} = cp\log_{e}{p}$とおき、$f(p)$の増減表を作成する。ここで微分の計算を簡単に行うにあたって、定数$\displaystyle c = \frac{1}{\log_{e}{2}} > 0$のようにおいた。
$$
\large
\begin{align}
\frac{d f(p)}{dp} &= \frac{d}{dp} \left( cp\log_{e}{p} \right) \\
&= c\log_{e}{p} + c \\
&= c(\log_{e}{p}+1)
\end{align}
$$

エントロピーの数式の理解

はじめに、$0 \leq p(x) \leq 1$の条件下で$p(x)\log_{2}{p(x)}$の取り得る範囲について考える。シンプルに表記を行うにあたって、以下では$f(p) = p\log_{2}{p} = cp\log_{e}{p}$とおき、$f(p)$の増減表を作成する。ここで微分の計算を簡単に行うにあたって、定数$\displaystyle c = \frac{1}{\log_{e}{2}} > 0$のようにおいた。
$$
\large
\begin{align}
\frac{d f(p)}{dp} &= \frac{d}{dp} \left( cp\log_{e}{p} \right) \\
&= c\log_{e}{p} + c \\
&= c(\log_{e}{p}+1)
\end{align}
$$
上記より$\displaystyle \frac{df(p)}{dp}$が単調増加関数であり、等号が$\displaystyle p = \frac{1}{e}$の時に成立することが確認できる。よって、$0 \leq p \leq 1$の範囲での$f(p)$の増減表は下記のように記載できる。
$$
\large
\begin{array}{|c|*5{c|}}\hline p & 0 & \cdots & \frac{1}{e} & \cdots & 1 \\
\hline \frac{d f(p)}{dp} & / & – & 0 & + & / \\
\hline f(p) & / & \searrow & -\frac{1}{e \log_{e}{2}} & \nearrow & 0 \\
\hline
\end{array}
$$

上記を考える上で注意が必要なのが、$f(p) = p\log_{2}{p}$では$p=0$の場合が定義できないということである。よって、$p \to +0$の極限を考え、この値に基づいて$f(0)$を定義する必要がある。

ここで$p = 2^t$のようにおくことで、$p \to +0, t \to -\infty$の極限を計算する。
$$
\large
\begin{align}
\lim_{p \to +0} p\log_{2}{p} &= \lim_{\substack{p \to +0 \\ t \to -\infty}} 2^t \log_{2}{2^t} \\
&= \lim_{t \to -\infty} t \times 2^t \\
&= 0
\end{align}
$$

上記より$\displaystyle \lim_{p \to +0} p\log_{2}{p} = 0$が成立することから、$f(0)=0$は個別で定義を行う。

また、以下ではベルヌーイ分布のように$2$値の状態が生じ得る際のエントロピー$H[x]=g(p)$の関数の概形について確認を行う。
$$
\large
\begin{align}
H[x] = -(p\log_{2}{p} + (1-p)\log_{2}{(1-p)}) = g(p)
\end{align}
$$
$2$値の状態が生じ得る際のエントロピー$\displaystyle H[x]=g(p)$は$(3)$式より、上記のように表すことができる。

$g(p)$の増減表の作成を行うにあたって、$g(p)$を$p$で微分する。
$$
\large
\begin{align}
g'(p) &= \frac{dg(p)}{dp} = -c\frac{d}{dp}(p\log_{e}{p} + (1-p)\log_{e}{(1-p)}) \\
&= -c \left( \log_{e}{p} + \frac{p}{p} – \log_{e}{(1-p)} – \frac{1-p}{1-p} \right) \\
&= c \log{\frac{1-p}{p}}
\end{align}
$$

上記は$p$の単調減少関数であり、$g'(p)=0$は$1-p=p$より、$\displaystyle p = \frac{1}{2}$のとき成立する。

よって、エントロピー$\displaystyle H[x]=g(p)$の増減表は下記のように描くことができる。
$$
\large
\begin{array}{|c|*5{c|}}\hline p & 0 & \cdots & \frac{1}{2} & \cdots & 1 \\
\hline \frac{d g(p)}{dp} & / & + & 0 & – & / \\
\hline g(p) & 0 & \nearrow & 1 & \searrow & 0 \\
\hline
\end{array}
$$

エントロピーの式の解釈

bits

$8$つの状態を$\{a,b,c,d,e,f,g,h\}$のように表すと考える。このときに、全ての状態を等しい確率で取り得ると考えると、エントロピーは下記のように計算を行うことができる。
$$
\large
\begin{align}
H[x] &= – \sum_{x} p(x) \log_{2}{p(x)} \\
&= – 8 \times \frac{1}{8} \log_{2}{\frac{1}{8}} \\
&= 3
\end{align}
$$

次に$\{a,b,c,d,e,f,g,h\}$の状態をそれぞれ下記の確率で取る場合について考える。
$$
\large
\begin{align}
\left( \frac{1}{2},\frac{1}{4},\frac{1}{8},\frac{1}{16},\frac{1}{64},\frac{1}{64},\frac{1}{64},\frac{1}{64} \right)
\end{align}
$$
このとき、エントロピーは下記のように計算を行うことができる。
$$
\large
\begin{align}
H[x] &= – \sum_{x} p(x) \log_{2}{p(x)} \\
&= – 1 \times \frac{1}{2} \log_{2}{\frac{1}{2}} – 1 \times \frac{1}{4} \log_{2}{\frac{1}{4}} – 1 \times \frac{1}{8} \log_{2}{\frac{1}{8}} \\
&- 1 \times \frac{1}{16} \log_{2}{\frac{1}{16}} – 4 \times \frac{1}{64} \log_{2}{\frac{1}{64}} \\
&= \frac{1}{2} + \frac{1}{2} + \frac{3}{8} + \frac{1}{4} + \frac{3}{8} \\
&= 2
\end{align}
$$

ここまでの議論は${a,b,c,d,e,f,g,h}$を$2$進数で符号化する際の平均ビット長と対比させて考えることもできる。まず$(4)$式は$000,001,010,011,100,101,110,111$のようにそれぞれ符号を割り振った際に平均ビット長が$3$であることに対応すると考えられる。

次に$(5)$式に関しては、$0,10,110,1110,111100,111101,111110,111111$と割り振った際の平均ビット長に一致することは下記のように確かめることができる。
$$
\large
\begin{align}
& 1 \times \frac{1}{2} + 2 \times \frac{1}{4} + 3 \times \frac{1}{8} + 4 \times \frac{1}{16} + 6 \times \frac{1}{64} \times 4 \\
&= \frac{1}{2} + \frac{1}{2} + \frac{3}{8} + \frac{1}{4} + \frac{3}{8} \\
&= 2
\end{align}
$$

multiplicity

・スターリングの近似
https://www.hello-statisticians.com/explain-terms-cat/stirling_approximation1.html