情報理論

1. 情報理論

学習キーワード: 自己情報量、相互情報量、エントロピー、条件付きエントロピー、結合エントロピー、クロスエントロピー、KLダイバージェンス、JSダイバージェンス

概要

情報理論は、情報の量を測定し、伝達効率や圧縮技術に関する理論です。 機械学習や人工知能の分野では、情報理論の概念を理解することで、データの背後にある構造を解明し、予測や圧縮効率を高めることができます。エントロピーや相互情報量、KLダイバージェンスなどの概念は、モデルの不確実性や誤差を評価する際に極めて重要です。これらを学習することで、効率的なデータ処理やモデル設計が可能になり、より正確な予測や分類が実現します。

基本概念として、起きやすい出来事は情報量が小さく、逆に起こりにくい出来事は情報量が大きいということを理解しましょう。 以下ではこのような基本的な理論を理解し、情報理論の中で特に重要なキーワードを具体例を交えて解説していきます。

自己情報量(Self-Information)

自己情報量は、ある事象が発生したときに得られる情報の量を表します。 自己情報量は次の式で計算されます:

\( I(x) = -\log_b P(x) \)

ここで、 \( P(x) \) は事象が発生する確率、対数の底\( b \)は通常2が使われます。(ちなみに \( b = 2 \) の場合の単位はビット(シャノン)、 \( b = e\) の場合の単位はナットと呼ばれます。)この式が示すのは、起こりにくい事象ほど情報量が大きくなるということです。

例えば、サイコロを振ったときに「6」が出る確率は1/6です。この場合、自己情報量は次のようになります:

\( I(6) = -\log_2 \frac{1}{6} \approx 2.585 \)

一方、「6」以外の数が出る確率は5/6です。この場合、自己情報量は次のようになります:

\( I(\text{not 6}) = -\log_2 \frac{5}{6} \approx 0.263 \)

これらの計算結果から、起こりにくい事象(「6」が出る場合)ほど情報量が大きくなることがわかります。

エントロピー(Entropy)

エントロピーは、確率分布全体の不確実性を表現し、、自己情報量 \(𝐼(𝑥)\) の期待値(平均情報量)で示されます。 すべての結果が同じ確率で発生する場合、エントロピーは最大になります。エントロピーは以下の式で表されます:

\( H(X) = -\sum_i P(x_i) \log_b P(x_i) \)

ここで、 \( H(X) \) は確率変数 \( X \) のエントロピーを表し、 \( P(x_i) \) は事象 \( x_i \) が発生する確率、対数の底 \( b \) は通常2が使われ、その場合はシャノンエントロピーと呼ばれます。

例えば、サイコロを振る場合、全ての目が同じ確率で出るため、エントロピーは最大になります。サイコロの場合、各目の確率は1/6です。サイコロのエントロピーを計算してみると、各目の確率が1/6であるため、エントロピーは次のようになります:

\( H(X) = -\sum_{i=1}^6 \frac{1}{6} \log_2 \frac{1}{6} = \log_2 6 \approx 2.585 \)

サイコロの各目の確率が一定でない場合、エントロピーは小さくなります。例えば、各目の確率が1, 2, 3, 4, 5, 6に対して、それぞれの確率が0.1, 0.2, 0.15, 0.15, 0.2, 0.1である場合、エントロピーは次のようになります:

\( H(X) = -\sum_{i=1}^6 P(x_i) \log_2 P(x_i) \)
\( = -(0.1 \log_2 0.1 + 0.2 \log_2 0.2 + 0.15 \log_2 0.15 + 0.15 \log_2 0.15 + 0.2 \log_2 0.2 + 0.1 \log_2 0.1) \)
\( \approx 2.462 \)

この結果から、サイコロの各目の確率が一定でない場合、エントロピーが小さくなり、不確実性が小さいことを示しています。

相互情報量(Mutual Information)

相互情報量は、二つの確率変数間の依存関係を測定します。 相互情報量は次の式で表されます:

\( I(X; Y) = H(X) + H(Y) - H(X, Y) \)

ここで、 \( H(X) \) は変数 \( X \) のエントロピー、 \( H(Y) \) は変数 \( Y \) のエントロピー、 \( H(X, Y) \) は変数 \( X \) と \( Y \) の結合エントロピーを表します。
たとえば、「天気」と「傘を持っているかどうか」を考えてみましょう。雨が降る確率と傘を持っている確率が関連している場合、これらの変数の間には相互情報量が存在します。

条件付きエントロピー(Conditional Entropy)

条件付きエントロピーは、ある変数が既にわかっている状態で、別の変数の不確実性を示します。 条件付きエントロピーは次の式で表されます:

\( H(Y|X) = -\sum_i P(x_i) \sum_j P(y_j|x_i) \log_b P(y_j|x_i) \)

ここで、 \( H(Y|X) \) は変数 \( X \) がわかっている状態での変数 \( Y \) の条件付きエントロピーを表し、 \( P(x_i) \) は事象 \( x_i \) が発生する確率、 \( P(y_j|x_i) \) は事象 \( x_i \) が発生した条件下で事象 \( y_j \) が発生する確率、対数の底 \( b \) は通常2が使われます。

例えば、天気が雨(\( X \))か晴れ(\( X \))の二通りがあり、傘を持っている(\( Y \))か持っていない(\( Y \))の二通りがある場合、条件付きエントロピーを計算してみましょう。天気が雨の場合、傘を持っている確率が0.8、持っていない確率が0.2とし、天気が晴れの場合、傘を持っている確率が0.2、持っていない確率が0.8とします。天気が雨と晴れの確率は、それぞれ0.5とします。

\( H(Y|X) = -\sum_i P(x_i) \sum_j P(y_j|x_i) \log_b P(y_j|x_i) \)
\( = -0.5 \times (0.8 \log_2 0.8 + 0.2 \log_2 0.2) - 0.5 \times (0.2 \log_2 0.2 + 0.8 \log_2 0.8) \)
\( \approx 0.970 \)

この計算結果から、天気がわかっている状態での傘を持っているかどうかの不確実性が0.970の情報量を持つことがわかります。

結合エントロピー(Joint Entropy)

結合エントロピーは、二つの変数の同時発生に関する不確実性を測定します。 結合エントロピーは次の式で表されます:

\( H(X, Y) = -\sum_i \sum_j P(x_i, y_j) \log_b P(x_i, y_j) \)

ここで、 \( H(X, Y) \) は変数 \( X \) と \( Y \) の結合エントロピーを表し、 \( P(x_i, y_j) \) は変数 \( X \) が事象 \( x_i \) を、変数 \( Y \) が事象 \( y_j \) を取る確率を示します。

例えば、サイコロの目が1から6までの6通り、コインの結果が表と裏の2通りがある場合、全ての組み合わせの確率を計算してみましょう。各目の確率は1/6、コインの結果の確率は1/2です。サイコロの目とコインの結果の組み合わせの確率は、各目の確率とコインの結果の確率を掛け合わせることで計算できます。

\( H(X, Y) = -\sum_{i=1}^6 \sum_{j=1}^2 \frac{1}{6} \times \frac{1}{2} \log_2 \left(\frac{1}{6} \times \frac{1}{2}\right) = \log_2 12 \approx 3.585 \)

この計算結果から、サイコロの目とコインの結果の組み合わせの不確実性が3.585の情報量を持つことがわかります。

クロスエントロピー(Cross Entropy)

クロスエントロピーは、実際の分布と予測分布の違いを測定します。 例えば、モデルが予測した分布と実際のデータ分布の違いを評価するために使用されます。次の式で表されます:

\( H(P, Q) = -\sum_i P(x_i) \log_b Q(x_i) \)

ここで、 \( H(P, Q) \) は実際の分布 \( P \) と予測分布 \( Q \) のクロスエントロピーを表します。 \( P(x_i) \) は実際の分布における事象 \( x_i \) の確率、 \( Q(x_i) \) は予測分布における事象 \( x_i \) の確率を示します。クロスエントロピーは、モデルの予測精度を測定する指標として広く用いられています。

KLダイバージェンス

KLダイバージェンス(Kullback-Leibler Divergence)は、二つの確率分布間の距離を測る指標であり、主に実際の分布と予測分布の間の違いを表現します。 KLダイバージェンスは次の式で定義されます:

\( D_{KL}(P || Q) = \sum_i P(x_i) \log_b \frac{P(x_i)}{Q(x_i)} \)

ここで、 \( D_{KL}(P || Q) \) は分布 \( P \) から分布 \( Q \) へのKLダイバージェンスを示します。分布 \( P \) は実際のデータ分布、 \( Q \) はモデルが予測した分布です。KLダイバージェンスが小さいほど、二つの分布は似ていると言えます。 ( \(𝑃\) と \(𝑄\) が同じ分布の場合、最小値は0ゼロとなる。)

KLダイバージェンスは対称性がないため、\( D_{KL}(P || Q)\) と \( D_{KL}(Q || P)\) で値が異なることに注意しましょう。

KLダイバージェンスは、深層学習の分野では、特に生成モデル(Generative Model)などで広く使用されます。これらのモデルでは、KLダイバージェンスを損失関数の一部として使用し、モデルが生成する分布と実際のデータ分布間の距離を最小化することを目指します。

JSダイバージェンス

JSダイバージェンス(Jensen-Shannon Divergence)は、KLダイバージェンスを基にした対称的な指標であり、二つの確率分布の間の類似度を測るために使われます。 JSダイバージェンスは次の式で計算されます:

\( D_{JS}(P || Q) = \frac{1}{2} D_{KL}(P || M) + \frac{1}{2} D_{KL}(Q || M) \)

ここで、\( M \)は分布\( P \)と分布\( Q \)の平均分布を示します。具体的には、次のように定義されます:

\( M = \frac{1}{2}(P + Q) \)

JSダイバージェンスは常に0以上の値を取り、0であるときは二つの分布が同じであることを示します。

キーワードまとめ

自己情報量、相互情報量、エントロピー、条件付きエントロピー、結合エントロピー、クロスエントロピー、KLダイバージェンス、JSダイバージェンス