第0部の第3章で、ベルヌーイ分布を最尤推定に入れると交差エントロピーが出ることを見ました。式としてはそこで出し切っています。残っているのは名前です。なぜ「エントロピー」なのか。なぜ「交差」なのか。
名前の回収だけなら雑学ですが、この章で得られるものはもう1つあります。損失がどこまで下がるかです。第0部の第2章で「最小値が存在しないことがある」を見ました。今度は逆に、0より上に床がある場合を見ます。床の高さがちょうどエントロピーです。
1. 情報量 ── 驚きの大きさ
「明日は太陽が昇る」と言われても何も得ません。「明日は雪が降る」なら情報があります。起こりにくいことほど、知らされたときの中身が大きい。 これを数で書きます。
定義. 確率 p(x) で起こる出来事 x の情報量(自己情報)を
I(x)=−logp(x) (1)
で定める。
なぜ log なのかは、満たしてほしい性質を3つ書けば決まります。
- p=1(必ず起こる)なら情報量は 0
- p が小さいほど大きい(単調減少)
- 独立な2つの出来事をまとめて知らされたときの情報量は、別々に知らされたときの和
3つめが本体です。独立なら p(x,y)=p(x)p(y) なので、I が掛け算を足し算に変える関数でなければなりません。その性質を持つ連続関数は log の定数倍しかない。 定数倍の分が「単位」で、底2なら bit、底 e なら nat です。深層学習の実装はほぼ e(log がそのまま自然対数)なので単位は nat ですが、この章は直感の湧く bit で書きます。1 nat=1.442695 bit です。
2. エントロピー ── 平均の驚き
定義. 分布 p のエントロピーを
H(p)=Ex∼p[I(x)]=−x∑p(x)logp(x) (2)
で定める。
式(2)は式(1)の期待値です(第0部の第3章の式(3))。「この分布からひとつ引いたとき、平均してどれだけ驚くか」。
数値例. コイン1枚。
| 表の出る確率 |
H(bit) |
| 0.5 |
1.000000 |
| 0.9 |
0.468996 |
| 0.99 |
0.080793 |
| 1.0 |
0.000000 |
公平なコインがちょうど1 bit。これが bit の定義そのもので、「はい/いいえの質問1回ぶん」です。偏るほど小さくなり、結果が決まっているなら0——驚きようがない。
一様分布が最大です。K 個が等確率なら H=log2K で、K=10 なら 3.321928、K=1000 なら 9.965784 bit。
エントロピーには符号の意味もあります。$p$ に従う記号列を符号にするとき、1記号あたりの平均の長さは $H(p)$ bit より短くできない(シャノンの定理)。「平均の驚き」と「最短の平均符号長」が同じ数になる——これがこの量の面白さで、次節の「交差」はこの読み方をすると一番はっきりします。
3. 交差エントロピー ── 違う分布だと思い込んで測る
本当は p で起こるのに、q だと思い込んで符号を作ったとします。符号の長さは q に合わせて −logq(x) になりますが、実際に出てくる頻度は p です。平均の長さは
H(p,q)=−x∑p(x)logq(x) (3)
これが交差エントロピーです。「平均を取る分布」と「長さを決める分布」が食い違っている——交わっている——から「交差」。第0部の第3章の式(7)とまったく同じ形で、あちらは最尤推定から、こちらは符号長から来ています。
数値例. p=(0.7,0.2,0.1)、q=(0.5,0.3,0.2) のとき H(p)=1.156780、H(p,q)=1.279586 bit。思い込みの分だけ伸びました。
4. KLダイバージェンス ── 伸びた分
定義. 伸びた分を
DKL(p∥q)=H(p,q)−H(p)=x∑p(x)logq(x)p(x) (4)
と書き、KLダイバージェンス(相対エントロピー)という。
上の数値例では 1.279586−1.156780=0.122806 bit。式(4)の右辺を直接計算しても 0.122806 です。
DKL≥0 で、等号は p=q のときだけ。 導出は2行です。logx≤x−1(x>0・等号は x=1)を使って
−DKL(p∥q)=x∑p(x)logp(x)q(x)≤x∑p(x)(p(x)q(x)−1)=x∑q(x)−x∑p(x)=1−1=0
よって
DKL(p∥q)≥0,等号は p=q のときに限る (5)
距離ではありません。 同じ2つの分布でも向きで値が変わります。上の例で DKL(q∥p)=0.132775 bit——0.122806 とは違う数です。三角不等式も成り立ちません。「ズレの大きさ」ではなく「p のつもりで q を使ったときの損」と読むのが正確です。
FIG 1上が本当の分布 p、下がモデルの出す q。q の棒をつかんで動かすと、下の横棒(交差エントロピー)が「橙=H(p)」と「金=KL」に分かれて動く。「q を p に合わせる」を押すと金が消え、橙だけが残る——これが損失の床。「p と q を入れ替える」と KL の値が変わる=距離ではない
5. 学習とのつなぎ目 ── なぜこの名前の損失を下げているのか
教師が one-hot のとき. 正解が3クラス中の1つなら p=(1,0,0) で、H(p)=0。式(4)より
H(p,q)=H(p)+DKL(p∥q)=DKL(p∥q)
交差エントロピーそのものが KL になります。 q=(0.5,0.3,0.2) なら H(p,q)=−log20.5=1.000000 bit =0.693147 nat で、KL も同じ値。だから「交差エントロピーを下げる」は、そのまま「モデルの分布を正解の分布へ近づける」と読めます。名前の回収はここで終わりです。
教師がデータそのもののとき. 実際の学習でクラスごとの真の確率は分かりません。手元にあるのは m 件のデータだけです。そこで各データ点に 1/m ずつ置いた経験分布 p^ を p の代わりに使うと、
H(p^,q)=−m1i=1∑mlogq(yi∣xi) (6)
右辺は第0部の第3章の式(6)——平均負の対数尤度そのものです。つまり「経験分布との交差エントロピーを最小にする」と「最尤推定する」は同じ操作の別の言い方でした。前章の数値例(y=(1,0,1,1,0)、p=(0.9,0.2,0.7,0.6,0.3))は 0.31053592 nat =0.448009 bit です。
同じ1つの式に、3つの入口があります。最尤推定(第0部の第3章)、符号長(この章)、KLの最小化(この節)。どれも同じ場所に着くので、好きな入口から入れば足ります。入口を3つ知っておく利点は、行き詰まったときに別の入口から見直せることです。
よくある誤解: 「損失が0に近づかないのはモデルが弱いから」
式(5) から、q をどう選んでも H(p,q)≥H(p)。q=p でようやく等号です。
qminH(p,q)=H(p) (7)
損失の床は H(p) で、モデルの性能とは関係ありません。 教師が one-hot なら H(p)=0 なので床も0ですが、同じ入力に違う答えが付きうるとき(ラベルの揺れ、曖昧な事例、測り方のばらつき)、H(p)>0 になって床が持ち上がります。
測ります。ある入力に対して本当は P(y=1∣x)=0.9(10回に1回は0が付く)だとします。
| モデルの出力 q |
交差エントロピー(nat) |
正解率 |
| 0.9(真の値) |
0.325083 |
90% |
| 0.95 |
0.345737 |
90% |
| 0.99 |
0.469562 |
90% |
| 0.999 |
0.691676 |
90% |
一番下まで行っても 0.325083 nat =0.468996 bit で、ここが床です。 数値で q を総当たりしても最小は q=0.90000、値 0.325083 ——理論値と一致します。
表の下3行が現場で効きます。自信を上げても正解率は1ポイントも動かず、損失だけ悪くなる。 q=0.999 は正解率90%のまま損失が2倍以上です。「もっと自信を持たせれば損失が下がる」は逆で、真の確率より自信を持つことは罰せられます。これが較正(calibration)の話の入口で、損失がある値から下がらなくなったときに最初に疑うべきは、モデルの容量ではなくそもそもの床の高さです。
床があることと、床に着いたことは別です。損失が止まった理由は3つあり得ます——①床($H(p)$)に着いた ②最適化が進んでいない(第4章) ③モデルの形が足りない。見分けるには、学習データでの損失と $H(p)$ の見積りを並べる必要があります。「止まったから床だ」と決めつけないこと。
演習
答えは閉じてあります。手を動かしてから開いてください。
演習1. p=(0.7,0.2,0.1)、q=(0.5,0.3,0.2) について。(a) H(p) と H(p,q) の差は何を表しますか。(b) DKL(q∥p) は DKL(p∥q) と等しいですか。(c) KL を「2つの分布の距離」と呼べない理由を2つ挙げてください。
答えを見る
(a) q だと思い込んだことによる損(符号長の伸び)= DKL(p∥q)=0.122806 bit。 1.279586−1.156780 です。
(b) 等しくありません。 DKL(q∥p)=0.132775 bit で、0.122806 とは別の数です。平均を取る分布が p から q に変わるので、どの食い違いを重く数えるかが変わります。
(c) ①対称でない((b))②三角不等式を満たさない。 距離(距離関数)はこの2つを要求します。KLが満たすのは「0以上で、等しいときだけ0」だけ。それでも使うのは、最尤推定とつながっていて計算できるからです。
演習2. 3クラス分類で、正解はクラス1、モデルの出力が q=(0.5,0.3,0.2) です。(a) 交差エントロピーを bit と nat で。(b) この場合に H(p) と DKL(p∥q) はいくつですか。(c) q1 を 0.7,0.9,0.99 に上げたとき損失はどうなりますか。
答えを見る
(a) p=(1,0,0) なので H(p,q)=−log20.5=1.000000 bit =0.693147 nat。正解のクラスに付いた確率だけで決まり、他の2つがどう配られているかは効きません(p2=p3=0 が掛かって消えるため)。
(b) H(p)=0、DKL(p∥q)=1.000000 bit。 one-hot では交差エントロピーと KL が同じ数になります。
(c) −log20.7=0.514573、−log20.9=0.152003、−log20.99=0.014500 bit。正解のクラスの確率を1へ押し上げるほど0に近づきます。この場合は床が0(H(p)=0)なので、いくらでも下げられる——第0部の第2章で見た「最小値が存在しない」はこの形です。
演習3. 同じ入力に対し、真の確率が P(y=1∣x)=0.8 だとします。(a) 達成できる最小の交差エントロピー(nat)。(b) そのときの正解率。(c) モデルが q=1.0 を出したら何が起きますか。
答えを見る
(a) H(p)=−(0.8ln0.8+0.2ln0.2)=0.500402 nat(=0.721928 bit)。q=0.8 のときに達成します。
(b) 80%。 つねに1と答えるのが最善で、10回に2回は外します。損失も正解率も、モデルではなくデータが決めている状態です。
(c) 損失が発散します。 y=0 が来た回に −log(1−q)=−log0 になるため。実装は q を 1−ε で止めるので無限大にはなりませんが、その1件が巨大な値を出して勾配を支配します。「外れたうえに自信があった」の極限で、第III部の第1章の演習3と同じ現象です。
この章で言っていないこと
- 相互情報量・条件付きエントロピーは扱っていません。 「X を知ると Y の不確かさがどれだけ減るか」はこの章の道具で書けますが、使う場所(特徴選択・表現学習)が先の章なのでそちらに回します。
- 連続分布のエントロピー(微分エントロピー)は別物です。 式(2)をそのまま積分にすると負の値も取り、「平均符号長」の読み方が通りません。この章の話は離散に限っています。
- シャノンの符号化定理は使っただけで証明していません。H(p) より短くできないこと、そして H(p) にいくらでも近づけられることの両方が中身です。
- 較正(モデルの出す確率が本当の頻度と合っているか)の測り方・直し方は入れていません。この章は「自信過剰は損失で罰される」という形だけを示しています。
- 本文の数値はすべて実際に計算して確かめています(コインと一様分布のエントロピー、H(p,q)=H(p)+DKL の一致、両向きの KL、one-hot の場合、P(y=1)=0.9 での床と q を総当たりした最小の一致、乱数2万組で DKL<0 が1件も出ないこと)。
もっと詳しく
コメント
コメントにはログインが必要です