ひとことで言うと
自己情報量 を出発点に、その期待値がシャノンエントロピー、別の分布で符号化したときの期待コストが交差エントロピー、その超過分がKLダイバージェンスという順に積み上がる一本の道具立てです。分類問題の損失関数に交差エントロピーが選ばれているのは、この積み上げの結果であって独立した工夫ではありません。
天気予報のコード表を作る場面を考えます。晴れが多い地域なら「晴れ」に短い符号、「雪」に長い符号を割り当てるのが効率的です。シャノンエントロピーはその地域の本当の天気分布に対して作った最適な符号表を使ったときの平均符号長、交差エントロピーはよその地域向けに作った符号表を流用したときの平均符号長です。よその表を使う分だけ余計に長くなり、その超過分がKLダイバージェンスにあたります。
なぜ必要か
尤度最大化は「モデルがデータをどれだけよく説明するか」を測る基準ですが、これを最適化問題として扱うには符号や次元をそろえた指標に落とす必要があります。情報理論はそのための共通言語です。
自己情報量には満たすべき3条件があります。
- 起こる確率が高い事象ほど情報量は小さく、確実に起こる事象は情報量ゼロ
- 起こる確率が低い事象ほど情報量は大きい
- 独立な事象の情報量は加法的(コイン2回連続で表が出た情報量は、1回の2倍)
これを満たす関数が で、対数を使うことで加法性( のとき が積を和に変える)が自動的に成り立ちます。
| 満たすべき性質 | での現れ方 |
|---|---|
| 確実な事象の情報量は0 | |
| 低確率の事象ほど情報量が大きい | は の減少関数 |
| 独立事象の情報量は加法的 |
ここから期待値・分布間の差という発想に進めば、「モデルの出力分布を真の分布にどれだけ近づけたか」を1つの数で測れるようになります。これが分類の損失設計に情報理論が使われる理由です。
仕組み
自己情報量は事象 単体の情報量です。
底を (自然対数)にすると単位は nat、底を2にすると単位は bit です。E資格の文脈では基本的に自然対数(nat)で扱います。
シャノンエントロピーは自己情報量の、分布 に関する期待値です。
分布が決定的(ある事象の確率がほぼ1)に近いほど は小さく、一様に近いほど大きくなります。
2つの分布 (真の分布)と (モデルの分布)があるとき、交差エントロピーは に従うデータを 用の符号で送ったときの平均コストです。
と の差はKLダイバージェンスで測ります。
3つの量は次の恒等式で結びついています。
右辺の は (データ)だけで決まり、(モデル)には依存しません。したがって について を最小化することと を最小化することは同じ問題になります。分類モデルの学習で交差エントロピーを最小化しているとき、実質的にやっているのは経験分布 とモデル分布 のKLダイバージェンスの最小化であり、これは最尤推定そのものです。
| 量 | 対象 | 何を測るか |
|---|---|---|
| 1事象 | その事象1つの情報量 | |
| 1分布 | 分布 から見た平均情報量(不確実性) | |
| 分布のペア | の符号で を送るコスト | |
| 分布のペア | のうち を超えた分 |
KLダイバージェンスは距離ではありません。 非負(、等号は のときのみ)ですが、対称性がなく です。 と のどちらを最小化するかで、最適化の挙動(分布の裾をどう扱うか)が変わります。
計算の途中で が出ることがあります(ある事象の確率が0のとき)。慣例として として扱います。実装では確率0の項をそもそも和に含めない、またはごく小さい値でクリップするのが定石です。
もう一つ押さえておく価値があるのは、「交差エントロピー」=「ソフトマックスの負の対数尤度」という理解は狭すぎるという点です。負の対数尤度はどんな分布の仮定に対しても交差エントロピーになります。たとえば平均二乗誤差は、モデルの出力をガウス分布の平均とみなしたときの交差エントロピーに一致します。
試験でどう問われるか
| 問われ方 | 正解に寄る条件 | 引っかけ |
|---|---|---|
| 自己情報量の式を選ばせる | 。確率が低いほど値が大きい | 符号が逆/ の中に を入れ忘れる |
| nat と bit の違い | 底が なら nat、底が2なら bit。単位の換算であって別の量ではない | 「natのほうが情報の本質を表す」といった実体的な違いを問う誤答 |
| と の関係 | 。 の最適化では両者は同じ問題 | と を常に同一視する誤答( なら値そのものは違う) |
| KLダイバージェンスの性質 | 非負・ で0・非対称 | 「距離の公理を満たす」「」 |
| 交差エントロピー最小化と最尤推定の関係 | 経験分布とモデル分布のKL最小化=最尤推定。同値であって近似ではない | 「交差エントロピーは尤度とは別の基準」 |
| 平均二乗誤差の情報理論的な位置づけ | ガウス分布を仮定したときの負の対数尤度=交差エントロピー | 「MSEは交差エントロピーとは無関係の誤差指標」 |
実装で確かめる
離散分布 、 を用意し、 が成り立つことと、KLダイバージェンスが非対称であることを直接計算で確かめます。
import numpy as np
p = np.array([0.1, 0.2, 0.3, 0.4]) # 真の分布 P
q = np.array([0.15, 0.25, 0.25, 0.35]) # モデルの分布 Q
H_p = -(p * np.log(p)).sum() # シャノンエントロピー H(P)
H_pq = -(p * np.log(q)).sum() # 交差エントロピー H(P,Q)
kl_pq = (p * np.log(p / q)).sum() # D_KL(P||Q)
kl_qp = (q * np.log(q / p)).sum() # D_KL(Q||P)
print(f"H(P)={H_p:.6f} H(P,Q)={H_pq:.6f} H(P)+D_KL(P||Q)={H_p + kl_pq:.6f}")
print(f"D_KL(P||Q)={kl_pq:.6f} D_KL(Q||P)={kl_qp:.6f}")
実行結果は次の通りです。
H(P)=1.279854 H(P,Q)=1.302788 H(P)+D_KL(P||Q)=1.302788
D_KL(P||Q)=0.022934 D_KL(Q||P)=0.024289
H(P,Q) と H(P)+D_KL(P||Q) が一致しており、恒等式がそのまま数値で確認できます。また D_KL(P||Q) と D_KL(Q||P) が異なる値になっており、非対称性も直接見えます。
取り違えやすいもの
| 用語 | 情報量・エントロピーとの関係 |
|---|---|
| 自己情報量 | 1事象の情報量。エントロピーはこれの期待値 |
| シャノンエントロピー | 分布1つの不確実性。交差エントロピーは分布2つに対する量で、 のとき に一致する |
| 交差エントロピー | の符号で を送るコスト。負の対数尤度と同義( を経験分布、 をモデル分布とみなしたとき) |
| KLダイバージェンス | から を引いた超過分。距離ではなく非対称 |
| ダイバージェンス測度全般(JS情報量など) | KLの非対称性を補うための派生指標。定義・使い分けは別ノートの範囲 |
想起チェック
自己情報量の定義式が満たすべき3条件は
確率が高い事象ほど情報量が小さい(確実な事象は0)、確率が低い事象ほど情報量が大きい、独立な事象の情報量は加法的、の3つです。対数を使うことで独立事象の積が和になり、加法性が自動的に成り立ちます。
交差エントロピーをモデル側について最小化することが、KLダイバージェンスの最小化と同じになる理由は
が成り立ち、 は に依存しない定数だからです。 を動かして最小化する限り、両者は同じ最適化問題になります。
KLダイバージェンスは距離と呼べるか
呼べません。非負で のとき0になりますが、 であり対称性がないため、距離の公理を満たしません。
平均二乗誤差は情報理論的にどう位置づけられるか
モデルの出力をガウス分布の平均とみなしたときの負の対数尤度、すなわち交差エントロピーに一致します。交差エントロピーはソフトマックスの負の対数尤度に限った概念ではありません。