情報理論 - 相互情報量

提供: MochiuWiki : SUSE, EC, PCB

📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

概要

相互情報量 (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}  }