情報量とエントロピー
情報量
- 或る確率について「希少さ」を表す量
- logの性質から、確率を表現するのに必要なビット数(logの底が2のとき)に対応している(使用する情報の量)
I(X) = -P(x) \log P(x)
エントロピー
- 情報量の期待値
- 分布P(X)からの試行の不確定さを表す
- 確率変数全体を考慮
H(P) = \sum_i P(x_i) \frac{1}{\log P(x_i)} = -\sum_i P(x_i) \log P(x_i)
情報量
定義式から。
事象xが起こる確率、P(x)を用いて定義される。
I(x) = \log \frac{1}{P(x)} = -\log P(x)
確率のログの逆数。
- 「 事象の希少さ」を表現したい → 確率の逆数とする
- 複数の結果の合成を和にしたい → logを導入
- 結果:確率の逆数のlog
- 実用的意味の例:$log_2$の場合、小数点数(確率に相当)を表現するのに必要なビット数に相当
理解1.「希少さ」と「和」
「情報量」という概念を定義する。
表現したいものは、「観測結果の希少さ」。
確定的事象を観測しても「情報を得た」とは感じないという直感に沿う。
(出目が1しかないサイコロを振って1が出ても、観測結果に意味は見出せない)
確率の逆数にすると「希少さ」を量的に表現できそう。
しかし、複数の事象を観測したときには情報の量は蓄積されていくべき。
確率の逆数だと掛け算になってしまうが「和」の表現が好ましい。
logを取ると 積 → 和 になる
よって、$I(x) = \log \frac{1}{P(x)} = -\log P(x) $ とすると相応しい量を表現できる。
理解2.表現に必要なビット数
ここではlogの底を2にして、「ビット表現」を対象に考える。
「情報量」を、「確率(=小数点数)を表現するのに必要なビット数」という視点でみる。情報の量。
確率をただの小数点数とみなすと以下の通り。
- 1/2:0 or 1 の1ビットで表現できる
- 1/4:00,01,10,11 の2ビットで表現できる
- 1/8:(略)3ビットで表現できる
これをグラフにプロットすると、$-\log_2 P(x)$の曲線上に乗る。
情報量は、小数点数(=確率に対応)を2進数で表現するときに必要なビット数、と捉えることができる(logの底を2としている)。
実は、値域[0<x<1]のときの、「logの定義」の話。
情報量は値域が限定されたときの、log逆数の性質を「希少さ」と解釈しているだけ。
情報量のまとめ
- 「 事象の希少さ」を表現したい → 確率の逆数でOK
- 複数の結果の合成を和にしたい → logにすればOK
- 結果:確率の逆数のlogとする
- 実用的意味の例:$log_2$の場合、小数点数(確率に相当)を表現するのに必要なビット数に相当
I(x) = log\frac{1}{P(x)} = -logP(x)
エントロピー
定義式は情報量の期待値なので、「平均情報量」という日本語名の方が本質理解に役立つ。
定義式:
H(P) = \sum_i P(x_i) \frac{1}{\log P(x_i)} = -\sum_i P(x_i) \log P(x_i)
ポイント:
- 試行から得られる、情報量の期待値 (次試行を行った場合に得られるであろう情報量の見込み平均)
- 試行する際の「予測の難しさ」(事象の不確かさ)に相当する
- 「期待値」ということは1つの値ではなく取り得る$X=\{x_1,x_2,\dots,x_n\}$全体について考慮する
理解1.情報量の期待値
定義式より、
エントロピー = 情報量の期待値 = 「希少さ」の「平均値」
期待値(平均値)ということで、$E[I(X)]$ の計算をする。
$X=\{x_1,x_2,\dots,x_n\}$ の$x_i$ 全てを考慮する。
希少さI(x)について、分布全体P(X)を考慮する、ということになる。
これは「平均的な希少さ」、「希少さの期待値」 = 「確率分布P(X)からのサンプリングの予測のしづらさ」 になる。
或る分布に対し次の試行を行うとき、その結果の不確定さの期待値。
理解2.必要なビット数の期待値
再びビットで考える。logの底を2とする。
具体的問題から計算して、性質を理解する。
エントロピーでは、取り得るすべての確率変数と、その確率を考慮する、という事を念頭に問題設定する。
エントロピーの計算では最小必要ビット数の期待値を得る。
これを実現するには、情報の圧縮をする。
例題:以下の文字列(16文字)をエンコードするのに必要な最小ビット数は?
- AAAA ABBB CDDD DDDD
(→ 確率変数は全部で4種類あり、各確率変数の確率は今観測した値から求める)
解:
- 1.エントロピー計算:定義式通りに計算
但し、確率$P(x_i)$を「$x_i$出現数 / 文字数(16文字)」とする。
$x_i$ | A | B | C | D |
---|---|---|---|---|
$P(x_i)$ | 4/16 | 3/16 | 1/16 | 7/16 |
$-log_2(P(x_i))$ | 2 | 2.415 | 4 | 1.193 |
\begin{align}
H(P) &= \sum_i -P(x_i)log_2(P(x_i)) \\
&= -(4/16)log_2(4/16) - (3/16)log_2(3/16) - (1/16)log_2(1/16) - (7/16)log_2(7/16) \\
&= 4/16 \times 2 + 3/16 \times 2.415 + 1/16 \times 4 + 7/16 \times 1.193 \\
&\approx 1.725
\end{align}
- 2.実際に使用するビット数:
-
圧縮なし:4文字なので 2ビット
-
文字 A B C D ビット 00 01 10 11
-
-
圧縮する:ハフマン符号化
-
文字 A B C D ビット 01 001 000 1 - エンコードする
- AAAA ABBB CDDD DDDD = 01 01 01 01 01 001 001 001 000 1 1 1 1 1 1 1
- ビット数:29ビット/16文字 → 平均 $\approx$ 1.813 bit
-
-
全体の平均である、という事を考慮して圧縮する。
エントロピーが「平均」情報量であることが強調される操作となる。
エントロピーまとめ
- 情報量の期待値
- 分布全体の確率変数を考慮する
- 分布に対して試行するときに得られる結果の不確かさ
H(P) = \sum_i P(x_i) \frac{1}{\log P(x_i)} = -\sum_i P(x_i) \log P(x_i)
まとめ
情報量
- 或る確率について「希少さ」を表す量
- logの性質から、確率を表現するのに必要なビット数(logの底が2のとき)に対応している(使用する情報の量)
I(X) = -P(x) \log P(x)
エントロピー
- 情報量の期待値
- 分布P(X)からの試行の不確定さを表す
- 確率変数全体を考慮