19.6 平均情報量

前にreview_s19.4 符号化の例として, 次のような出席簿用の2進数符号を示しました.

出欠欠席遅刻早退出席
ビット列00011011

この符号を使って x 回の出欠を記録すると, 2x ビットのデータが作られます. 仮に 5回の授業に出席したとすると「1」が10個並んだビット列になりますし, 13回出席したとすると「1」が26個並びます. それでは,このビット列の長さ, つまり10ビットと26ビットをもって, 各出席簿の情報量と言って良いでしょうか? もしも貴方が熱心な学生で常に授業に出席しているならば, どちらについても「(もちろん)全部出席」と一言で済むはずであり, もっと手短に表現する方法がありそうです. 一方,欠席,遅刻,早退,出席の割合が同じ位の人の場合には, いつ出席し,いつ欠席したのかを知ることが重要で, 1回につき 2 ビットの符号化が意味を持ちそうです.

情報量

ある事実が起きることによって得られる情報量は,その事実の性質に依存します. とても珍しいことが起きたとすれば情報量は多く, いつもどおりであれば情報量は少なくなります. ある事実の起きる確率が予め分かっている場合に, その事実の持つ情報量が計算できます. 確率 p で起こる事実が起きたことによって得られる情報量は, −log2p bit となります. これは以下のように考えられます.

既にreview_s19.1 ビットで見たように, m ビットで N 通りの情報を表現するためには m ≧ log2N である必要があります. この符号化に最低限必要なビット数が情報量の指標として使えそうです. そこで, N 通りの事実が等確率で起こる場合は, どの事実が起きても同じ情報量が得られるので, その情報量を, log2N bit と定義しましょう.

たとえば, 欠席,遅刻,早退,出席の 4 通りが全くの等確率で起こる人の場合は, それぞれの事実が起きたときの情報量は, log24 bit = 2 bit となります. これは上の符号のビット数に等しくなります.

ではそれぞれの事実が異なる確率で起こる場合はどうでしょうか. N 通りの事実が等確率で起こるということは, それぞれの事実が確率 1/N で起こると言い換えることができます. そこで p = 1/N とすると, log2N = log2(1/p) = −log2p より, 確率 p で起こる事実の情報量は −log2p bit だと言うことができます. これは等確率でない場合にも使えます. そこでこちらを定義としてしまうのです.

式の形を見るとわかるように, 確率 p が大きくなるほど情報量は小さくなります. 確率 1 で起こる事実の情報量は 0 です. つまり起こるに決まっているのだから結果を知ってもしょうがないということです. 確率が 0 に近付くと情報量は無限に大きくなります.

平均情報量

複数の事実の1つが起きる場合に, それらの事実が起きる確率がすべて分かっているとすると, 1つの事実の平均の情報量は次式で与えられます.

H = −∑pilog2pi bit

この H を 平均情報量 または エントロピー と呼びます.

さきほどの出席簿の場合,欠席,遅刻,早退,出席が, 全くの等確率,つまり pi = 1/4 であったとすると, −4×(1/4)log2(1/4) = −log22-2 = 2 より, 平均情報量は 2 bit となります.

等確率でない場合の平均情報量は, 等確率の場合よりも小さくなります. 以下の練習問題を解いてみてください.

練習問題

出欠欠席遅刻早退出席
確率1/21/41/81/8

このような出欠状況の人について, 1回の授業での出欠がそれぞれの場合の情報量を, 以下の欄に入力してください.

出欠欠席遅刻早退出席
情報量 (bit)(1)(2)(3)(4)

このとき,平均情報量は (5) bit となります.