情報量とエントロピー -- 不確実性を定量化する
情報理論はAIに「情報」と「不確実性」を定量化する数学的ツールを提供する。
起こりにくい出来事ほど、いったん発生すると多くの情報量を持つ。
概念の解説
情報理論は一つの基本的な問いに答える:あるメッセージに含まれる「情報」がどれだけあるかをどう定量化するか?
重要な洞察:情報量は事象の発生確率に反比例する——起こりにくい出来事ほど、いったん発生すると、あなたに多くの情報をもたらす。
なぜ情報量は -log P(x) と定義されるのか?
この定義には三つの最も自然な直感が含まれている:
- 反比例の関係:P(x) が小さいほど(意外であるほど)、I(x) は大きくなる。負号がこれを保証する
- 加法性:2つの独立した事象が同時に起こる情報量 = それぞれの情報量の和。log は確率の積を情報量の加法に変える:\( -\log(p_1 \cdot p_2) = -\log p_1 + (-\log p_2) \)
- 決定的事象はゼロ:必然事象 P=1 のとき、\( -\log 1 = 0 \)——既知のことは何の情報ももたらさない
情報量(自己情報)
\[ I(x) = -\log P(x) \]底が2 → 単位はビット、底がe → 単位はナット。AIでは通常、自然対数を使う(微分が便利)。
エントロピー:情報量の期待値
\[ H(X) = -\sum_x P(x) \log P(x) \]エントロピーは確率分布全体の不確実性を測る。
- 決定的事象(P=1):H = 0(不確実性はまったくない)
- 一様分布:H は最大値を取る(最も不確実)
エントロピーが高いほど = 予測が難しい。これは決定木の分割基準(情報利得)と強化学習の探索戦略に理論的基盤を提供する。
身近な例
ニュース価値
「明日も太陽は昇る」→ 情報量 ≈ 0(あなたはとっくに知っている)。
「明日マグニチュード8の地震が起こる」→ 情報量は極めて大きい(極めて稀な事象が発生した)。
ニュースが意外であるほど、情報量は大きい——これが I(x) = -log P(x) の直感である。
Python で実際に試す
実例
def entropy(probs):
probs = np.array(probs)
probs = probs[probs > 0]
return -np.sum(probs * np.log(probs))
print(決定の分布 [1,0,0]:, entropy([1,0,0])) # 0
print("2クラス一様 [0.5,0.5]:", entropy([0.5,0.5])) # 0.693
print("10クラス一様:", entropy([0.1]*10)) # 2.303
print("偏りあり [0.9,0.05,0.05]:", entropy([0.9,0.05,0.05])) # 0.394
実行出力:
确定分布 [1,0,0]: 0.0 2类均匀 [0.5,0.5]: 0.6931471805599453 10类均匀: 2.302585092994046 有偏 [0.9,0.05,0.05]: 0.3944479480436973
二分類エントロピー曲線
AIでの応用シーン
決定木の分割基準:情報利得
決定木は分割特徴を選ぶとき、分割前後のエントロピーの差——情報利得 = H(分割前) - H(分割後) を計算する。情報利得が最大になる特徴と分割点を選ぶ。C4.5 と ID3 アルゴリズムはどちらもこの原理に基づく。
交差エントロピー損失 = 予測分布と真の分布の差を最小化する
分類タスクでは、真の分布 p(one-hot ラベル)のエントロピー H(p)=0 なので、交差エントロピー H(p,q) は KL(p||q) に等しい。交差エントロピーの最小化 = 予測分布 q をできるだけ真の分布 p に近づけること。次の章で詳しく展開する。
強化学習におけるエントロピー正則化
SAC(Soft Actor-Critic)アルゴリズムは最適化目標に方策エントロピー項を加える:報酬 + \( \alpha \cdot H(\pi) \) を最大化する。これは方策がある程度のランダム性を保つことを促し(あまり確定的にしない)、探索を促進し、次善の方策への早期収束を防ぐ。\(\alpha\) はエントロピー正則化係数であり、探索と利用のバランスを制御する。
モデルキャリブレーションにおけるエントロピー
良い分類器は精度が高いだけでなく、予測分布のエントロピーが真の不確実性を反映しているべきである。モデルが分布外(OOD)サンプルに遭遇したとき、理想的には Softmax 出力のエントロピーが高く(一様分布に近く)、「私は不確かである」ことを示すべきである。エントロピーが非常に低いのに予測を誤った場合、モデルが過信(overconfident)していることを意味する。
その他の拡張