情報量
情報の量を計ることを考える。[教科書3.1.2]
- 何ビットで表現できるものかを見積る。
- 見かけにだまされずに真の情報が何かを見破る。
まず、情報のある/なしを、いくつかの場合のどれかが分かる/分からないに対応づけてみる。
- 「日本史、東洋史、西洋史、アメリカ史」のどれが出題されるか分からない。→分からない=情報がない
- 「アメリカ史」が出題される。→分かっている=情報がある
別の例でも考えてみる。
- 「晴、曇、雨、雪」のどれかと予想される。→分からない=情報がない
- 「雨」が降っている。→分かっている=情報がある
意味的には違うが、分かる/分からないのレベルで同じとみて抽象化してしまう。
- 4通りの場合のどれか分からない。→分からない=情報がない
- 1通りの場合に決まっている。→分かっている=情報がある
場合の数が減ることが情報であると考える。
その情報の量は、歴史か天気かによらず、「4」と「1」で決まるはずである。
そこで、「4」と「1」にどのように依存しているか考えてみる。
- 4通りの場合のなかで1通りの場合と分かる。
- 16通りの場合のなかの4通りの場合にまでしぼれる。
16通りを、4通りの固まり4つに分けて考えると上の2つは同じことになる。
従って、情報の量の大きさは
場合の数の減り方の比率
で決まるようである。
上の例では情報の量は「1/4」で決まる量である。
今度は、情報を小出しにして、2つの情報の関係を調べてみよう。
- 4通りの場合のなかで2通りの場合と分かる。
「2/4」で決まる情報の量である。
- その2通りのなかで1通りと分かる。
「1/2」で決まる情報の量である。
- 4通りの場合のなかで1通りの場合と分かる。
「1/4」で決まる情報の量である。
1.と2.で、結局4通りの場合の1通りと分かるので、その情報の量の和は3.の情報の量と等しいはずである。
その関係は、「2/4」 * 「1/2」 = 「1/4」と見ればよさそうであるが、
乗算で計算するのは面倒なので、加算で計算できるように両辺のlogを取ることにする。
log(2/4) + log(1/2) = log(1/4)
情報があるときに情報の量が正になって欲しいので「-」をつける。
- log(2/4) - log(1/2) = - log(1/4)
場合の数を2から1つに減らす情報の量を1(ビット)としたいのでlogの底を2とする。
この時の情報の量を情報量という。
さきほどの例の情報量を示すと以下のようになる。
- 4通りの場合のなかで2通りの場合と分かる。→
ビットの情報量
- その2通りのなかで1通りと分かる。→
ビットの情報量
- 4通りの場合のなかで1通りの場合と分かる。→
ビットの情報量
1ビット+1ビット=2ビットでちょうど計算が合う。
この(なかば無理矢理持たせた)情報量の性質を情報量の加法性という。
n通りの場合のなかでどれかと分かる情報量は
であり、
m通り(m<n)の場合のなかでどれかと分かる情報量は
である。
情報の量の加法性から、
「n通りの場合のなかでm通りの場合のなかのどれかと分かる情報量」Pに
「m通りの場合のなかでどれかと分かる情報量」を足すと、
「n通りの場合のなかでどれかと分かる情報量」となるはずなので、
P + (
) =
である。Pについて解くと、
P =
となる。
- n通りの場合のなかでm通りのどれかと分かる情報量:
n通りの場合のなかでm通りのどれかと分かるというのは、m/nの確率で起こりえることが実際に起こったことを知るのと同じであるが、その情報量は
である。
これを連続値に一般化してpの確率で起こりえることが実際に起こったことを知った時の情報の量を
と定める。
- pの確率で起こりえることが実際に起こったことを知ったことによる情報量:
木の苗木を植えたところ、
梅,桜,杉,桐のどれかであることは分かっているのであるが、
どの木であるかが分からなくなってしまった。
苗木の生産の比率から、どれであるかの確率は、梅が1/4、桜が1/3、杉が1/6、桐が1/4であることが分かっているとする。
,
,
.
お茶とコーヒーの自動販売機がある。
この自動販売機には「お茶」「コーヒー」「ランダム」の3つのボタンがあり、押すと以下の動作をする。
- お茶ボタン:お茶が出る。
- コーヒーボタン:コーヒーが出る。
- ランダムボタン:お茶かコーヒーが出る。どちらが出るかはランダムに決まる。
ところが、ボタンとラベルが全てずれていることが分かった。
「全てずれている」というのは、ラベルに書かれた動作は絶対にしないということである。
例えば、ラベルが「お茶」のボタンは上記の「お茶ボタン」ではなく、「コーヒーボタン」か「ランダムボタン」である。
- ボタンとラベルが全てずれていることを知った上で、ボタンとラベルの対応が完全に分かることの情報量は何ビットか?
- 情報量から考えて、何回の試せばボタンのラベルとボタンの動作の対応が求められるかを考察せよ。
- お茶ボタンを押したらコーヒーが出てきた。この時得られた情報量は何ビットか?
- ランダムボタンを押した時に得られる情報量は何ビットか?
平均情報量
1/4の確率で出題される日本史が実際に出題されるということの情報の量は
ビットであるが、
本当に日本史が出題される確率は1/4しかない。一方、世界史(=東洋史、西洋史、アメリカ史)が
出題されるということの情報の量は
ビットしかないが、
世界史が出題される確率は3/4ある。
従って、どちらが出題されるか分からないときに、どちらが出題されるかを知ることで得られるであろう情報量は、それぞれの情報量の期待値とするのが妥当であろう。
上の例では、
ビットとなる。
平均情報量: ある分布に対する情報量の期待値
あなたは、ある細胞が、A,B,C,D,E,F,Gのどのタイプであるかを特定するために実験をしようとしている。
実験は、細胞がA,B,Cのいずれかのタイプなら活性化するが、それ以外のタイプなら不活性化する、というようなもので、
任意のタイプの組み合わせを活性化し、それ以外のタイプの組み合わせを不活性化する実験が可能であるとする。
ただし、実験には莫大なお金と手間がかかるので、できるだけ少ない実験回数で細胞がどのタイプかを特定したい。
過去の経験から、細胞があるタイプである確率は以下のとおりであると分かっているものとする。
|
タイプ | 確率 |
|
A | 1/4 |
|
B | 1/4 |
|
C | 1/8 |
|
D | 1/8 |
|
E | 1/8 |
|
F | 1/16 |
|
G | 1/16
|
この確率のもとで、どのタイプの組み合わせに対して実験を行っていくのが(平均的に)一番良いであろうか?
特定するまでの平均の実験回数は何回になるか?
例えば、(ダメな例であるが、){A,B,C}と{D,E,F,G}を判別する実験を行い。
{A,B,C}なら次に{A,B}と{C}を判別、{A,B}なら更に{A}と{B}を判別、
戻って、{D,E,F,G}なら次に{D,E}と{F,G}を判別、
{D,E}なら更に{D}と{E}、
{F,G}なら更に{F}と{G}を判別することが考えられる。
このように実験をすると、タイプ毎の確率と判定できるまでの回数は以下のようになるので、
実験回数の平均は 1/4*3 + 1/4*3 + 1/8*2 + 1/8*3 + 1/8*3 + 1/16*3 + 1/16*3 = 2.875回となってしまう。
|
タイプ | 確率 | そのタイプと判定できるまでの回数 |
|
A | 1/4 | 3 |
|
B | 1/4 | 3 |
|
C | 1/8 | 2 |
|
D | 1/8 | 3 |
|
E | 1/8 | 3 |
|
F | 1/16 | 3 |
|
G | 1/16 | 3
|
最小回数はどれか?
文書ファイル中の1文字の平均情報量を求め、その値と文書ファイルを圧縮したファイルのサイズを比較する。
(これはExcelを使った平均情報量の計算の演習を簡単にしたものである。)
- 英文で書かれた日本国憲法の前文の一部を開いて
コピー(
c)
しておき、
文字の出現回数の計測のなかの「計測対象の英文」のところに
ペースト(
v)
する。
- 「N only」ボタンを押すと文字ごとの出現回数が表示される。(「count」ボタンでどの文字が何回出現するか確認できる。)
これをコピー(
c)しておく。
- Excelを起動して、A1のセルでペースト(
v)して出現頻度をA1〜A26に入力する。
- A1をクリックしてから、Shiftを押しながらA26を押して、A1〜A26が選択された状態にして、グラフボタンを押し、棒グラフを選択して、完了すると、頻度の棒グラフが表示される。
かなりでこぼこがあることを確認する。
- A27のセルに「=sum(A1:A26)」を入力するとA1からA26の合計が表示される。
- B1のセルに「=A1/A$27」を入力するとAの割合(これがp1)が表示される。
- B1のセルをクリックして右下隅の■をB26までドラッグするとB1の内容(式)が下にコピーされる。コピーする時に式のなかの$をつけてないところは適当に変更される。
例えば「=A1/A$27」はB2では「=A2/A$27」となる。
- A27をB27にセルにコピーするとB27にはB1からB26の合計が表示される。これが1であることを確認する。
C1に「-p1 log p1」を計算する。
- まず、C1に「=-B1*log(B1,2)」と入力して、C2〜C26にコピーし、Biのセルが0の時エラー(#NUM!)となってしまうことを確認する。
Biのセルが0の時は0とし、そうでない時のみ「-Bi*log(Bi,2)」を計算することにする。
- C1に「=IF(B1=0,0,-B1*log(B1,2))」と入力して、C2〜C26にコピーする。
- B27をC27にコピーして「Σi-pi log pi」を求める。これが平均情報量である。
次にファイルの大きさを調べる。
- 英文で書かれた日本国憲法の前文の一部をダウンロードしておく。
- ターミナルで「wc constitution.txt」の後に
を押して、文字数を調べる。表示される数は左から行数、単語数、文字数である。
- ターミナルで「gzip constitution.txt」の後に
を押して、ファイルを圧縮する。
- ターミナルで「wc constitution.txt.gz」の後に
を押して、文字数を調べる。表示される数は左から行数、単語数、文字数である。
この「文字数
」がビット数。これを前に調べた文字数で割ると1文字当たりのビット数が分かる。これを平均情報量と比較せよ。
- 同様にして、dummy1.txt, dummy2.txtに対して平均情報量とファイルの大きさを比較してみよ。
- dummy3.txtをgzipを使って圧縮してみよ。
どのデータからどのデータが計算されているかを把握して、セルに計算式を入力するようにすれば、元となるデータを変更した時に、結果が自動的に計算される。
(一種のプログラミング!)
手で修正していると、元となるデータを変更した時に手作業が発生するので、面倒であるし、間違いも多くなる。
yamaguch@mail.ecc.u-tokyo.ac.jp Copyright 2011 Kazunori Yamaguchi 山口和紀@東京大学総合文化研究科