🎓 レベル:標準 | 重要度:A(必須)
📎 前提:KLダイバージェンス、エントロピーの性質と最大エントロピー | 関連:機械学習(損失関数)・統計(最尤)
要点(BLUF)
- 機械学習の クロスエントロピー損失 は、情報理論の交差エントロピー そのもの。
- これを最小化することは、 が定数なので KL の最小化、すなわち 最尤推定 と完全に同値(KLダイバージェンス)。
- 2値分類の交差エントロピー損失は 負の対数尤度(NLL) に一致し、予測確率を経験頻度(最尤解)に合わせたとき最小になります。損失最適化アルゴリズムの実装は機械学習分野へ。
1. 交差エントロピー損失=KL=最尤
真の分布(データの経験分布)を 、モデルの予測分布を とすると、クロスエントロピー損失は
はモデルパラメータ に依らない定数なので、損失最小化は の最小化と同じ。そして KLダイバージェンス で見たとおり、これは対数尤度の最大化=最尤推定です:
つまり「分類器をクロスエントロピーで学習する」=「モデルを最尤推定する」=「予測分布を真の分布に KL の意味で近づける」。3つは同じことの言い換えです。
2. コード:交差エントロピーの最小性と NLL(底2/底e)
交差エントロピーが で最小()になること、2値分類の損失が経験頻度で最小化されること(最尤)を確かめます。
import numpy as np
# 交差エントロピー H(p,q)=-Σ p log2 q は q=p で最小(=H(p))。底2
p=np.array([0.7,0.2,0.1])
print("交差エントロピー -Σ p log2 q を q を変えて評価(真の分布 p=[0.7,0.2,0.1])")
rng=np.random.default_rng(0)
print(f" q=p : {-np.sum(p*np.log2(p)):.4f} bit (= H(p), 最小)")
for _ in range(3):
q=rng.random(3); q/=q.sum()
print(f" q={np.round(q,3)} : {-np.sum(p*np.log2(q)):.4f} bit")
print("-"*52)
# 2値分類の交差エントロピー損失 = 負の対数尤度(NLL)。最尤=損失最小(底e)
rng=np.random.default_rng(1)
n=100000
y=(rng.random(n)<0.3).astype(int) # 真の確率0.3のラベル
print("2値: 損失 -mean[y log q+(1-y)log(1-q)] (nat) を予測確率 q で")
for q in [0.1,0.3,0.5,0.7]:
loss=-np.mean(y*np.log(q)+(1-y)*np.log(1-q))
print(f" 予測 q={q}: 損失={loss:.4f} nat")
qhat=y.mean()
print(f" q=経験頻度{qhat:.3f}: 損失={-np.mean(y*np.log(qhat)+(1-y)*np.log(1-qhat)):.4f} nat (最小=最尤)")
出力:
交差エントロピー -Σ p log2 q を q を変えて評価(真の分布 p=[0.7,0.2,0.1])
q=p : 1.1568 bit (= H(p), 最小)
q=[0.672 0.285 0.043] : 1.2170 bit
q=[0.009 0.467 0.524] : 5.0173 bit
q=[0.323 0.388 0.289] : 1.5943 bit
----------------------------------------------------
2値: 損失 -mean[y log q+(1-y)log(1-q)] (nat) を予測確率 q で
予測 q=0.1: 損失=0.7651 nat
予測 q=0.3: 損失=0.6111 nat
予測 q=0.5: 損失=0.6931 nat
予測 q=0.7: 損失=0.9495 nat
q=経験頻度0.300: 損失=0.6111 nat (最小=最尤)
出力の意味:上段——交差エントロピーは のとき bit で最小、 を真の からずらすほど大きくなります(超過分がちょうど KL)。特に確率0近くの記号に小さすぎる を当てると bit と爆発——「起こることをゼロと予言すると無限に罰せられる」KL の性質(KLダイバージェンス)です。下段——2値分類のクロスエントロピー損失は、予測確率 を真の確率 (=経験頻度)に合わせたとき最小 nat。損失最小=最尤=予測を真の頻度に一致が数値で確認できました。ニューラルネットの分類学習が softmax+クロスエントロピーを使うのは、この「最尤=KL 最小」の原理に乗っているからです。
3. 数式の直観的意味
クロスエントロピーは「真の分布 のデータを、モデル が作った符号で表したときの平均符号長」(無歪み符号化とKraft不等式)。モデルが正確()なら符号長は最小 、外れるほど KL の分だけ無駄が出る。学習とは「モデルの符号を真の分布に合わせて、記述を短くする」作業に他なりません。この「学習=圧縮」という視点は、次の AIC・MDL(情報量規準_AICとMDL)でモデル選択にまで拡張されます。損失関数としての勾配計算・正則化・最適化アルゴリズムは機械学習分野の領分なので、ここでは深入りせずリンクに留めます。
⚠️ よくある誤解
- 「クロスエントロピーとKLは別物」ではない:。最小化対象としては が定数なので実質同じ。
- 「クロスエントロピー損失は分類専用」ではない:確率分布を予測するあらゆる場面(言語モデルの次トークン予測など)で同じ最尤原理が働きます。
- 「最尤は情報理論と無関係な統計の話」ではない:最尤=KL 最小=交差エントロピー最小。情報理論・統計・機械学習が同じ式を共有しています。
- 「損失が0にできる」ではない:データに固有の不確かさ (ベイズ誤差)が下限。損失は までしか下がりません。
対応シミュレーション
- 本文のコードで交差エントロピーの最小性と NLL の最尤一致を実証済み。
関連ノート
- KLダイバージェンス(前提・交差エントロピー=H+KL)
- エントロピーの性質と最大エントロピー(前提・Gibbsの不等式)
- 無歪み符号化とKraft不等式(符号長としての交差エントロピー)
- 情報量規準_AICとMDL(次のトピック・記述長によるモデル選択)
- 第7章 機械学習・統計との接続 目次
- 情報理論 全体目次