情報理論(第8回 条件付きエントロピー、結合エントロピー)

阿坂先生
前回は確率の勉強として条件付き確率結合確率を勉強した。これで準備が揃ったので条件付きエントロピー及び結合エントロピーを求めてみよう。

桂香助教
まず、復習として情報の量はどう求めるか覚えている?忘れた人は第3回を見てね。

麦わら君
はい。何か起こる確率をPとしたときの情報の量は-log(P)となります。

阿坂先生
そうじゃったな。ではエントロピーHのほうはどうじゃ?

麦わら君
はい。エントロピーは情報の量の期待値です。情報の量を-log(P)とすると期待値は-∑P・log(P)でした。

桂香助教
ここで、条件付きエントロピー結合エントロピーいう名前が出てくる。ふたつ以上の事象X,Y(例えば東京の天気と横浜の天気)がある場合のエントロピーだよ。意味は後で考えるとして式はどうなると思う?

麦わら君
そうですね。形から入るならエントロピーH=-∑P・log(P)の式をそのまま使って条件付きエントロピーは-∑P(X|Y)・log{P(X|Y)}となるんですか?結合エントロピーは-∑P(X,Y)・log{P(X,Y)}でしょうか?

阿坂先生
そのとおり。まずは条件付きエントロピーを見て行こうか。具体的な例を見てみよう。結合確率は以下として、

画像1

上記から条件付き確率を計算すると

画像2

桂香助教
まず、普通のエントロピーを考えてみるわ。東京の天気のエントロピーH(東京天気)は

H(東京天気)=-P(東晴)×log{P(東晴)} ー P(東雨)×log{P(東雨)}
      =-0.55×log(0.55)-0.45×log(0.45)=0.99

だったわね。

阿坂先生
では条件付きエントロピーH(東京天気|横浜天気)を求めてみよう。まず、横浜の天気を晴と限定すると

H(東京天気|横晴)=-P(東晴|横晴)×log{P(東晴|横晴)}
                             - P(東雨|横晴)×log{P(東雨|横晴)}
                           =-0.77×log(0.77)-0.23×log(0.23)=0.78

じゃな。同様に横浜の天気を雨に限定すると

H(東京天気|横雨)=-P(東晴|横雨)×log{P(東晴|横雨)}
                             - P(東雨|横雨)×log{P(東雨|横雨)}
                           =-0.14×log(0.14)-0.86×log(0.86)=0.58

麦わら君
なるほど。では条件付きエントロピーH(東京天気|横浜天気)は

H(東京天気|横浜天気) =H(東京天気|横晴)+H(東京天気|横雨)

でいいですか?

桂香助教
惜しい!エントロピーは期待値ということを思い出して!

麦わら君
あー忘れてました。単純に2つのエントロピーを足すのではなく期待値を計算するんでしたね。すると以下ですか?

H(東京天気|横浜天気)=P(横晴)×H(東京天気|横晴)+P(横雨)×H(東京天気|横雨)
           =0.65×0.78+0.35×0.58=0.71

阿坂先生
そのとおりじゃ。横浜が晴れる場合の確率と横浜が雨の確率をそれぞれ対応するエントロピーに乗算することで条件付きエントロピーが計算できる。

桂香助教
以上をまとめておくと条件付きエントロピーは条件のほうを固定して、そのときのエントロピーをそれぞれ求めて、それからそれぞれのエントロピーの発生確率を掛けてから足して計算する必要がある。

麦わら君
ちょっとめんどくさいですね。もっと簡単に求めることはできないですか?

阿坂先生
結合確率が分かっている場合は以下のように一気に計算できる。どちらで計算しても同じ結果になる。

H(東京天気|横浜天気)=-P(東晴,横晴)×log{P(東晴|横晴)}
                                     - P(東雨,横晴)×log{P(東雨|横晴)}
                                     - P(東雨,横晴)×log{P(東雨|横晴)}
                                     - P(東雨,横雨)×log{P(東雨|横雨)}
          =-0.5×log(0.77)-0.05×log(0.14)
                                    -0.15×log(0.23)-0.3×log(0.86)=0.71

桂香助教
それぞれの条件における情報の量に対して、それが同時に起こる確率(結合確率)を乗算したものになる。これも期待値を計算していることになるので同じ結果になるのよ。これが正しいことはベーズのルールP(x,y)=P(y)P(x|y)を使って式変形していけば確かめられるわ。

阿坂先生
条件付きエントロピーはちょっと複雑なんじゃが、次の結合エントロピーH(東京天気,横浜天気)は簡単じゃ。定義は以下じゃ

H(東京天気,横浜天気)=-P(東晴,横晴)×log{P(東晴,横晴)}
                                     - P(東雨,横晴)×log{P(東雨,横晴)}
                                     - P(東晴,横雨)×log{P(東晴,横雨)}
                                     - P(東雨,横雨)×log{P(東雨,横雨)}

麦わら君
これは普通のエントロピーの計算と同じですね。

桂香助教
そうよ。パターンが2パターンから4パターンに増えただけで計算自体は変わらない。実際に計算してみると

H(東京天気,横浜天気)=-P(0.5)×log{P(0.5)} - P(0.15)×log{P(0.15)}
                                     - P(0.05)×log{P(0.05)}- P(0.3)×log{P(0.3)}
                                   = 1.64

となる。

麦わら君
なるほど。条件付きエントロピーと結合エントロピーとの関係式みたいのはないんですか?

阿坂先生
良い質問じゃ。結合エントロピーの式を変形することで条件付きエントロピーとの関係を導くことができる。結合エントロピーの式

H(東京天気,横浜天気)=-P(東晴,横晴)×log{P(東晴,横晴)}
                                     - P(東雨,横晴)×log{P(東雨,横晴)}
                                     - P(東晴,横雨)×log{P(東晴,横雨)}
                                     - P(東雨,横雨)×log{P(東雨,横雨)}

          =-P(横晴)P(東晴|横晴)×log{P(横晴)P(東晴|横晴)}
                                      - P(横晴)P(東雨|横晴)×log{P(横晴)P(東雨|横晴)}
                                      - P(横雨)P(東晴|横雨)×log{P(横雨)P(東晴|横雨)}
                                      - P(横雨)P(東雨|横雨)×log{P(東雨)P(東雨|横雨)}

          =-P(横晴)P(東晴|横晴)×log{P(横晴)}
                                      - P(横晴)P(東雨|横晴)×log{P(横晴)}
                                      - P(横雨)P(東晴|横雨)×log{P(横雨)}
                                      - P(横雨)P(東雨|横雨)×log{P(東雨)}
             -P(横晴)P(東晴|横晴)×log{P(東晴|横晴)}
                                      - P(横晴)P(東雨|横晴)×log{P(東雨|横晴)}
                                      - P(横雨)P(東晴|横雨)×log{P(東晴|横雨)}
                                      - P(横雨)P(東雨|横雨)×log{P(東雨|横雨)}

          =-P(横晴)×log{P(横晴)}
                                      - P(横雨)×log{P(横雨)}
             +H(東京天気|横浜天気)

          =H(横浜天気)+H(東京天気|横浜天気)

となる。logの掛け算は足し算に変形できることと、P(東晴|横晴)+P(東雨|横晴)=1となる関係を使っておる。

桂香助教
この関係をチェイン則というわ。今の例は

H(東京天気,横浜天気)=H(横浜天気)+H(東京天気|横浜天気)   (A)

だけど

H(東京天気,横浜天気)=H(東京天気)+H(横浜天気|東京天気)

でもOKよ。意味を考えてみて!

麦わら君
上の例では「東京の天気と横浜の天気の曖昧さは、横浜の天気の曖昧さ+横浜の天気を知ってもなお残る東京の天気の曖昧さ」ですね。

阿坂先生
そのとおり。最後に相互情報量を勉強するぞぃ。相互情報量I(X;Y)は

I(X;Y)=H(X)-H(X|Y)                         (1)

と書ける。意味としてはYを知ったときにXについての情報をどれくらい知ったかという意味になる。

桂香助教
東京の天気をX、横浜の天気をYとしたときには

I(東京天気;横浜天気)=H(東京天気)-H(東京天気|横浜天気)     (B)

となるから、東京の天気の曖昧さから横浜の天気を知っている場合の曖昧さを引いた値が相互情報量になる。

阿坂先生
極端な例を考えてみる。H(東京天気|横浜天気)=0のとき、つまり横浜の天気を知れば確実に東京の天気が分かる(曖昧さ=0)のときは

H(東京天気|横浜天気)=0

となることから得られる相互情報量は東京の天気の情報量と同じだけじゃ。
逆にH(東京天気|横浜天気)=H(東京天気)のとき、つまり横浜の天気が分かっても東京の天気の曖昧さが変わらないとき(もっと言えば横浜の天気と東京の天気が独立なとき)は

I(東京天気;横浜天気)=0

となるな。まぁ当り前じゃ。東京の天気と横浜の天気は無関係なんだから横浜の天気の情報を得たとしても東京の天気の情報には何の影響も与えない。つまり相互情報はゼロじゃ。

麦わら君
この関係どこかで勉強した気がします。

阿坂先生
そうじゃ。実は第5回(エントロピー)で既に勉強しておる。見直してみるとよいぞ。

桂香助教
さて、次に(B)式に(A)式を代入すると

I(東京天気;横浜天気)=H(東京天気)-H(横浜天気)-H(東京天気,横浜天気) 

という関係が得られる。また、

I(東京天気;横浜天気)=H(横浜天気)-H(横浜天気|東京天気) 

という関係もある。これを図にして表すと・・・

画像3

麦わら君
なるほど。上の例で、H(東京天気|横浜天気)=0を考えると青四角と赤四角がぴったり重なるのでH(東京天気|横浜天気)=0だね。
逆にH(東京天気|横浜天気)=H(東京天気)のときは重なりが全くない状態になりますね。このときはI(東京天気;横浜天気)は0になるって訳ですね。

阿坂先生
また、上の図の関係があるから

 I(X;Y)=H(X)-H(X|Y) = I(Y;X)= H(Y) -H(Y|X)

が言えるぞい。  




これから記事を増やしていく予定です。