Information gainについてメモ2
前回のあらすじ
離散確率変数Xの値xを観測したときに得る「情報量」を、で定義する。 ただし、は確率質量関数。 情報量は驚きの度合いを表していて、
- その得られる確率が大きいに対しては情報量は小さく、確率の小さいに対しては情報量は大きい
- が独立であるとき、その両方を観測したときの情報量はそれぞれの情報量の和である
などの性質がある。
エントロピー
離散確率変数に対して、その値の情報量の期待値をエントロピーと呼ぶ。 つまり、
をのエントロピーと呼ぶ。
ただし、のときは、この和ではとして扱う。
noiseless coding theorem
エントロピーは、確率変数の値を「伝える」のに最低限必要な平均ビット数を表す。*1 今回は、このことの証明はしないが、このことを調べる文脈でエントロピーが現れることを観察する。
素朴なコーディング
確率変数はa, b, c, d, e, f, g, hの8種類の値を取るとする。
このうちどの値が観測されたかを伝えるには、3ビットあればよい。
つまり、
a = 000, b = 001, c = 010, d = 011, e = 100, f = 101, g = 110, h = 111
などと符号化(コーディング)すれば、すべての値を表現できる。
工夫したコーディング
同じ状況で、それぞれの値をとる確率は偏っているものとする。例えば
であることが分かっているとする。
この場合、それぞれの情報量(その値だった場合の驚き度)に応じた長さの符号化をしたほうが効率が良い。例えば
a = 0, b = 10, c = 110, d = 1110, e = 11110, f = 111110, g = 1111110, h = 1111111
と符号化すれば、平均して
ビットでそれぞれの値を表現できる。 この値がエントロピーである。
ほとんどの値は素朴なコーディングよりも長いコードで表現されるが、出現頻度の高いものを短くコーディングすることでビット数を節約できていることになる。
具体例
aaaaabadaaaaaeaaccaabbcbbadbdabbabaabcacaaaabbaacacbabdbabcabccafabaaabababacbeaabbddcafbabcdbaaeaaaaaagaaaaaaahccabcaabeabababd
aが64個、bが32個、cが16個、dが8個、eが4個、fが2個、gとhが1個含まれている、全部で128字の文字列 をコード化することを考える。
素朴なコーディングでは、単純に1文字を3ビットでコーディングするので
000000000000000001000011000000000000000100000000010010000000001001010001001000011001011000001001000001000000001010000010000000000000001001000000010000010001000001011001000001010000001010010000101000001000000000001000001000001000010001100000000001001011011010000101001000001010011001000000100000000000000000000110000000000000000000000111010010000001010000000001100000001000001000001011
このようにビットとなる。 このというのは、のことである。 このコードから元の文字列を復元するには、3桁ずつに区切ればよい。
工夫したコーディングでは、よく現れるものほど短いコードになっているので
00000100111000000111100011011000101011010100111010111001010010001011001100000101000110011010010111010010110010110110011111001000010010010011010111100010101110111011001111101001011011101000111100000001111110000000011111111101100101100010111100100100101110
このようにビットとなる。 このというのは、のことであるから、たしかにエントロピーが現れている。 このコードから元の文字列を復元するには、先頭から順に、そのコードに当てはまる文字があるかどうかを見ればよい。
注意
今回、エントロピーを情報量の期待値としたが、エントロピー自体を情報量と呼ぶこともある。 区別する場合は、確率変数の値の情報量を「選択情報量」、エントロピーを「平均情報量」と呼んで区別するらしい。
熱力学のエントロピーとは無関係だと思ってよい。 少なくとも、熱力学のエントロピーに対してあいまいなイメージしか持っていない場合、無関係だと思ったほうがたぶん良い。
参考
■PRML 1章 http://www.amazon.co.jp/dp/4621061224
■wikipedia Shannon's source coding theorem https://en.wikipedia.org/wiki/Shannon%27s_source_coding_theorem