Mímisbrunnr知恵の泉

← 情報理論 一覧

🎓 レベル:標準 | 重要度:A(必須)

📎 前提:エントロピーの性質と最大エントロピー | 関連:クロスエントロピーと最尤(機械学習・統計)

要点(BLUF)

1. 定義:間違った分布で符号化したときの余分

真の分布が pp なのに、qq が真だと思い込んで符号を設計すると、平均符号長は H(p)H(p) より伸びます。その超過分が KLダイバージェンス:

D(pq)=xp(x)logp(x)q(x)=xp(x)logq(x)交差エントロピー H(p,q)(xp(x)logp(x))H(p)D(p\,\|\,q) = \sum_x p(x)\log \frac{p(x)}{q(x)} = \underbrace{-\sum_x p(x)\log q(x)}_{\text{交差エントロピー } H(p,q)} - \underbrace{\Big(-\sum_x p(x)\log p(x)\Big)}_{H(p)}

底2なら bit。「qq を信じたために余分に払うビット数」。p=qp=q なら超過ゼロ、ずれるほど大きくなります。連続分布では和が積分になります(微分エントロピー)。

2. 非負性(Gibbsの不等式)と非対称性

非負性 D(pq)0D(p\|q)\ge 0 は、log\log の凹性(Jensen の不等式)から:

D(pq)=xp(x)logq(x)p(x)logxp(x)q(x)p(x)=logxq(x)=log1=0-D(p\|q)=\sum_x p(x)\log\frac{q(x)}{p(x)} \le \log\sum_x p(x)\frac{q(x)}{p(x)} = \log\sum_x q(x) = \log 1 = 0

等号は q(x)/p(x)q(x)/p(x) が定数、すなわち p=qp=q のときだけ。これが エントロピーの性質と最大エントロピー の Gibbs の不等式の正体です。

非対称性D(pq)D(p\|q) は「pp から見た qq のずれ」で、D(qp)D(q\|p) とは一般に異なります。前者は「pp が大きいのに qq が小さい」点を重く罰し(mean-seeking)、後者は逆(mode-seeking)。変分推論で D(qp)D(q\|p) を使うのはこの非対称性ゆえです(ML へ)。

3. コード:非対称・非負・交差エントロピー(底2, bit)

import numpy as np
def KL(p,q):
    p=np.asarray(p,float); q=np.asarray(q,float)
    m=p>0
    return np.sum(p[m]*np.log2(p[m]/q[m]))  # bit
p=np.array([0.7,0.2,0.1]); q=np.array([0.2,0.3,0.5])
print(f"KL(p||q) = {KL(p,q):.4f} bit")
print(f"KL(q||p) = {KL(q,p):.4f} bit   (非対称: {not np.isclose(KL(p,q),KL(q,p))})")
print(f"KL(p||p) = {KL(p,p):.4f} bit   (同一なら0)")
# 交差エントロピー = H(p) + KL(p||q)
Hp=-np.sum(p*np.log2(p)); cross=-np.sum(p*np.log2(q))
print(f"H(p)={Hp:.4f}, 交差エントロピー={cross:.4f}, H(p)+KL={Hp+KL(p,q):.4f}")
# モンテカルロ推定: E_p[log2 p/q]
rng=np.random.default_rng(1); N=2_000_000
s=rng.choice(3,size=N,p=p)
est=np.mean(np.log2(p[s]/q[s]))
print(f"KL のMC推定(N=2e6) = {est:.4f} bit  (真値 {KL(p,q):.4f})")

出力:

KL(p||q) = 0.9160 bit
KL(q||p) = 0.9750 bit   (非対称: True)
KL(p||p) = 0.0000 bit   (同一なら0)
H(p)=1.1568, 交差エントロピー=2.0727, H(p)+KL=2.0727
KL のMC推定(N=2e6) = 0.9155 bit  (真値 0.9160)

出力の意味D(pq)=0.9160D(p\|q)=0.9160D(qp)=0.9750D(q\|p)=0.9750違う——KL は向きで値が変わる、だから「距離」ではありません。p=qp=q ならゼロ。交差エントロピー 2.07272.0727 がちょうど H(p)+D(pq)=1.1568+0.9160H(p)+D(p\|q)=1.1568+0.9160 に一致——交差エントロピーを下げることは KL を下げることで、これが分類器の学習(クロスエントロピーと最尤)の中身です。最後に、pp から実際にサンプリングして log2(p/q)\log_2(p/q) を平均すると 0.91550.9155 で真値に収束、KL が「対数尤度比の期待値」であることも確認できます。

4. 最尤推定は KL 最小化

データの経験分布を p^\hat p、パラメータ模型を qθq_\theta とすると、対数尤度の最大化は

argmaxθilogqθ(xi)=argminθ(xp^(x)logqθ(x))=argminθD(p^qθ)\arg\max_\theta \sum_i \log q_\theta(x_i) = \arg\min_\theta \Big(-\sum_x \hat p(x)\log q_\theta(x)\Big) = \arg\min_\theta D(\hat p\,\|\,q_\theta)

すなわち 最尤推定=経験分布と模型の KL を最小化H(p^)H(\hat p)θ\theta に依らない定数なので交差エントロピー最小化と同値)。情報理論が統計の最尤と機械学習の交差エントロピー損失を同じ枠で説明するのはこのためです。推定論としての展開(一致性・CRLB)は統計、損失関数としての展開は ML へ wikilink(重複を避ける)。

5. 数式の直観的意味

KL は「モデルを間違えたときの情報的なコスト」。qq が真の pp をどれだけ取りこぼすかを、pp が重みをかけて測ります。p(x)>0p(x)>0 なのに q(x)=0q(x)=0 だと log(p/q)=\log(p/q)=\infty で発散する——「起こりうることをゼロと予言するモデルは無限に罰せられる」。これは「確率0を割り当てるな」というベイズ的な戒め(クロスエントロピーと最尤)でもあります。相互情報量(相互情報量)・通信路容量(通信路容量)・レート歪み(レート歪み理論入門)はすべて KL の最小化/最大化問題として書けます。

⚠️ よくある誤解

対応シミュレーション

関連ノート