情報理論 - 相互情報量
概要
相互情報量 (Mutual Information) は、2つの確率変数間の相互依存性を定量化する指標のことである。
相互情報量I(X;Y)は、2つの確率変数XとY間の依存関係の強さを測る尺度であり、次式で表される。
構文解析に失敗 (Conversion error. Server ("https://wikimedia.org/api/rest_") reported: "Cannot get mml. Server problem."): {\displaystyle I(X;Y)=\sum \left(p(x,y)\log _{2}{\dfrac {p(x,y)}{p(x)p(y)}}\right)}
上式は、確率変数XとYの同時確率分布p(x,y)と、それぞれの周辺確率分布p(x), p(y)の比の対数を用いて計算される。
相互情報量の性質として、非負性 (I(X;Y)は常に0以上の値を取る) が挙げられる。
構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle I(X;Y) = 0}
となるのは、XとYが統計的に独立である場合のみである。
これは、値が大きいほど、2つの変数間の依存関係が強いことを示す。
また、相互情報量は対称性を持つため、構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle I(X;Y) = I(Y;X)}
が成り立つ。
これは、XからYへの情報量とYからXへの情報量が等しいことを意味する。
相互情報量は、エントロピーH(X)およびH(Y)、結合エントロピーH(X,Y)を用いて、次式のように表現することも可能である。
構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle I(X;Y) = H(X) + H(Y) - H(X,Y)}
実際の応用例として、相互情報量は機械学習における特徴選択、信号処理、通信システムの設計、生物情報学におけるデータ解析等、幅広い分野で活用されている。
例えば、特徴選択では、入力特徴量と目的変数との相互情報量を計算することにより、予測に有用な特徴を選択することができる。
なお、相互情報量を正規化して0から1の範囲に収めることもできる。
これは、正規化相互情報量 (Normalized Mutual Information) と呼ばれ、異なるスケールのデータ間で比較を行う場合に使用される。
相互情報量の例
サイコロ
例えば、2つのサイコロを投げる場合、サイコロの出目が完全に独立であれば相互情報量は0となる。
一方、2つのサイコロが何らかの方法で連動している場合 (例: 1つ目のサイコロが偶数の時、2つ目も必ず偶数になる)、相互情報量は正の値となり、その依存関係の強さを反映する。
天気予報
天気予報の的中率と傘の所持に関する例を考える。
- 確率変数Xを"雨が降るか否か"
- X = 1 : 雨
- X = 0 : 晴れ
- 確率変数Yを"傘を持っているか否か"
- Y = 1 : 持っている
- Y = 0 : 持っていない
また、以下に示すような同時確率分布があるとする。
- 構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle p(X = 1, \, Y = 1) = 0.36} : 雨が降り、傘を持っている
- 構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle p(X = 1, \, Y = 0) = 0.04} : 雨が降り、傘を持っていない
- 構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle p(X = 0, \, Y = 1) = 0.14} : 晴れで、傘を持っている
- 構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle p(X = 0, \, Y = 0) = 0.46} : 晴れで、傘を持っていない
この場合の周辺確率
- 構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle p(X = 1) = 0.36 + 0.04 = 0.4} : 雨が降る確率
- 構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle p(X = 0) = 0.14 + 0.46 = 0.6} : 晴れの確率
- 構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle p(Y = 1) = 0.36 + 0.14 = 0.5} : 傘を持っている確率
- 構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle p(Y = 0) = 0.04 + 0.46 = 0.5} : 傘を持っていない確率
相互情報量I(X;Y)は、次式のように計算される。
構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \begin{align} I(X;Y) &= \sum \left( p(x,y) \, log_{2} \dfrac{p(x,y)}{p(x)p(y)} \right) \\ &= 0.36 \times log_{2} \dfrac{0.36}{0.4 \times 0.5} \\ &+ 0.04 \times log_{2} \dfrac{0.04}{0.4 \times 0.5} \\ &+ 0.14 \times log_{2} \dfrac{0.14}{0.6 \times 0.5} \\ &+ 0.46 \times log_{2} \dfrac{0.46}{0.6 \times 0.5} \\ &\approx 0.287 \mbox{[bits]} \end{align} }
この値が正であることは、天気予報と傘の所持には相関があることを示している。
もし、天気予報を全く気にせずにランダムに傘を持ち歩いていた場合、相互情報量は0に近付く。
逆に、完璧に天気予報に従って傘を持ち歩く場合 (雨の時は必ず傘を持ち、晴れの時は決して持たない)、相互情報量はより大きな値となる。
文字の出現頻度
日本語において、「ん」の次に来る文字には強い制限がある。
(例: 「ん」の次に「な行」の文字は来ない)
このような場合、「現在の文字」と「次の文字」という2つの確率変数の間には強い相関があり、相互情報量は高くなる。
一方、ランダムな文字列では、このような相関は存在せず相互情報量は低くなる。
このように、相互情報量は2つの確率変数間の依存関係を定量的に評価することができ、データ分析や自然言語処理等、様々な分野で活用されている。
条件付きエントロピー
相互情報量は未知であることが多いため、相互情報量に関する式は使用できない。
事象Aおよび事象Bを構成する要素の取り得る確率に対するエントロピーの総和が条件付きエントロピーとなる。
ここで、構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \log_{2}}
の外側の 構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle P(a, b)}
は結合確率、構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \log_{2}}
の内側の 構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle P(a, b)}
は条件付き確率を当てはめる。
構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle H(A|B) = - \sum_{A} \sum_{B} P(a, b) \log_{2} P(a|b)}
これにより、条件付きエントロピー 構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle H(A|B)}
および 相互情報量 構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle I(A;B)}
を求めることができる。
例題:
サイコロを1回振る時の事象をAとする。
サイコロの目が4以上である事象をBとする。
この時、条件付きエントロピー 構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle H(A|B)}
を求めよ。
解答:
事象Bが4以上かつ事象Aに4が出る確率は、構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle P(a = 4, \, b \ge 4) = \dfrac{1}{6}}
※サイコロの1つの目が出る確率は、構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \dfrac{1}{6}}
であるため。
事象Bが4以上であることが判明している上で、事象Aに4の出目が出る確率は、構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle P(a = 4 | b \ge 4) = \dfrac{1}{3}}
事象Bが4以上かつ事象Aに5, 6が出る確率
および
事象Bが3以下 かつ 事象Aに1, 2, 3が出る確率も上記と同様に考えればよい。
構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle H(A|B) = - \sum_{A} \sum_{B} P(a, b) \log_{2} P(a|b)}
から
構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \begin{aligned} H(A|B) &= - \sum_{A} \sum_{B} \dfrac{1}{6} \log_{2} \dfrac{1}{3} \\ &= 6 \times \dfrac{1}{6} \log_{2} \dfrac{1}{3} \\ &= \log_{2} 3 \quad \mbox{[bit]} \end{aligned} }
相互情報量の関係式
下図に、事象Aおよび事象Bの持つエントロピーの相互関係を示す。
事象Aの持つエントロピーと事象Bの持つエントロピーの共通事象部分を相互情報量という。
事象Bが発生していることが分かった上での事象Aのエントロピーを 構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle H(A|B)}
とする時、次式で表すことができる。


構文解析に失敗 (SVG (ブラウザーのプラグインで MathML を有効にできます): サーバー「https://wikimedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \begin{array}{lcl} I(A;B) &\ge& 0 \\ I(A;B) &=& H(A) - H(A|B) \\ &=& H(B) - H(B|A) \\ &=& H(A) + H(B) - H(A,B) \end{array} }