4.

情報理論とは?AI 必須のエントロピー・交差エントロピー・KL の基礎

編集
この記事の要点
  • 情報理論は「情報量」を定量化する数学。シャノンが 1948 年に確立
  • AI で最重要なのは エントロピー / 交差エントロピー (Cross-Entropy) / KL ダイバージェンス。これらが損失関数や評価指標の中核
  • 「分布同士の距離」を扱うので、分類モデル・生成モデル・蒸留などほぼ全ての ML 手法で登場
  • 確率分布の「驚き度」「曖昧さ」を数式化できると思えば理解が早い

 

本稿は AI / 機械学習に必要な情報理論 の入門です。分類モデルの損失関数 (Cross-Entropy)、蒸留 (KL Divergence)、VAE (情報ボトルネック) など、AI 中核の指標が情報理論由来です。

なぜ AI に情報理論が必要なのか

場面情報理論の役割
分類モデルの学習損失関数に Cross-Entropy を使う(ほぼ標準)
生成モデル (VAE / GAN)2 つの分布の差を KL ダイバージェンスで測る
言語モデル評価Perplexity = 2^(エントロピー) で測る
蒸留 (Knowledge Distillation)教師モデルの softmax 出力に生徒を KL で近づける
決定木 / Random Forest分岐の指標に 情報利得(エントロピー減少)を使う
強化学習方策のエントロピーを探索促進のため目的関数に加える
圧縮・量子化モデル軽量化のために情報を最小限に圧縮

最低限おさえる概念

概念数式意味
情報量(自己情報量)I(x) = -log P(x)稀な事象ほど大きい「驚き度」
エントロピーH(X) = -Σ P(x) log P(x)分布の「曖昧さ・平均的な驚き」
交差エントロピー (Cross-Entropy)H(P, Q) = -Σ P(x) log Q(x)「真の分布 P を Q で表したコスト」
分類の損失関数の本体
KL ダイバージェンスKL(P‖Q) = Σ P(x) log(P(x)/Q(x))分布 P と Q の非対称な距離
JS ダイバージェンスKL を対称化したものGAN 系で使われる
相互情報量 (Mutual Information)I(X;Y) = H(X) - H(X|Y)X と Y の関連の強さ
条件付きエントロピーH(X|Y)Y を知った後の X の残った曖昧さ
PerplexityPP = 2^H または e^H言語モデルの「次トークン候補数」感覚

エントロピーの直感

分布エントロピー意味
確実 (1 つの値だけ確率 1)0驚きゼロ
2 値の均等 (50/50)1 bitコイン投げ 1 回ぶんの曖昧さ
8 値の均等3 bit3 bit ぶんの情報
偏った 8 値3 bit 未満予測しやすいぶんエントロピー低

つまりエントロピーが大きい = 予測しにくい = 情報量が多い

Cross-Entropy がなぜ損失関数になるのか

真のラベル分布 P(one-hot ベクトル)と、モデル予測の分布 Q(softmax 出力)の Cross-Entropy を最小化することは:

真のクラスが「猫」のとき、P = [1, 0, 0]、Q = [0.7, 0.2, 0.1]
Cross-Entropy = -1·log(0.7) ≈ 0.36
Q がより正解クラスに高い確率を割り当てるほど損失が小さくなる

これは最尤推定と等価でもあり、確率モデルとして自然な目的関数です。

KL ダイバージェンスの応用

用途使い方
蒸留教師モデルの softmax と生徒の softmax の KL を最小化
VAE潜在分布を標準正規分布 N(0,1) に近づける制約
強化学習 (PPO / TRPO)方策更新の急激な変化を抑える正則化
変分推論近似分布と真の事後分布の差を測る
RLHFSFT モデルからの逸脱を KL で罰則化(人間フィードバック強化学習)

典型コード(PyTorch)

import torch
import torch.nn.functional as F

# 分類モデルの予測(ロジット)と正解ラベル
logits = torch.tensor([[2.0, 1.0, 0.1]])
target = torch.tensor([0])

# 交差エントロピー損失(softmax + nll を内包)
loss = F.cross_entropy(logits, target)

# KL ダイバージェンス
p = F.log_softmax(student_logits, dim=-1)
q = F.softmax(teacher_logits, dim=-1)
kl = F.kl_div(p, q, reduction='batchmean')

# Perplexity(言語モデル評価)
perplexity = torch.exp(loss)

学習のステップ

段階学ぶ内容
1. 情報量「稀な事象ほど情報量が大きい」が直感的に分かる
2. エントロピー分布の曖昧さの指標として理解
3. Cross-Entropy分類モデルの損失関数として実装できる
4. KL ダイバージェンス2 分布の距離として VAE / 蒸留で使える
5. 相互情報量特徴選択・表現学習で使えるようになる

つまずきやすいポイント

  • KL は対称ではない — KL(P‖Q) ≠ KL(Q‖P)。順序を間違えると意味が変わる
  • log の底: 機械学習では自然対数 (e) 中心。bit 単位なら底 2、nat 単位なら底 e
  • 0·log 0 = 0 と約束(実装上は数値安定化のため log(p + ε)
  • Cross-Entropy は実装上 softmax を含んだ F.cross_entropy を使うのが安定(数値オーバーフロー回避)
  • Perplexity を比較できるのは同じ語彙・トークナイザのときのみ

使える教材・ライブラリ

種類名前
教科書(日本語)はじめての情報理論」(小林欣吾) / 「情報理論の基礎」(村田昇)
教科書(英語)「Elements of Information Theory」(Cover & Thomas) — 古典の決定版
動画3Blue1Brown「Solving Wordle using information theory」(直感重視)
ライブラリPyTorch / TensorFlow に標準で Cross-Entropy / KL あり

関連

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. 線形代数
  2. 微積分
  3. 確率統計
  4. 情報理論
  5. 最適化

最近更新/作成されたページ