教科書 › 第0部 数学の土台
CHAPTER 0-4

驚きの大きさを測る ── 情報理論

無料14分

第0部の第3章で、ベルヌーイ分布を最尤推定に入れると交差エントロピーが出ることを見ました。式としてはそこで出し切っています。残っているのは名前です。なぜ「エントロピー」なのか。なぜ「交差」なのか。

名前の回収だけなら雑学ですが、この章で得られるものはもう1つあります。損失がどこまで下がるかです。第0部の第2章で「最小値が存在しないことがある」を見ました。今度は逆に、0より上に床がある場合を見ます。床の高さがちょうどエントロピーです。

1. 情報量 ── 驚きの大きさ

「明日は太陽が昇る」と言われても何も得ません。「明日は雪が降る」なら情報があります。起こりにくいことほど、知らされたときの中身が大きい。 これを数で書きます。

定義. 確率 p(x)p(x) で起こる出来事 xx の情報量(自己情報)を

I(x)  =  −log⁡p(x)I(x) \;=\; -\log p(x)
(1)

で定める。

なぜ log⁡\log なのかは、満たしてほしい性質を3つ書けば決まります。

  1. p=1p = 1(必ず起こる)なら情報量は 00
  2. pp が小さいほど大きい(単調減少)
  3. 独立な2つの出来事をまとめて知らされたときの情報量は、別々に知らされたときの和

3つめが本体です。独立なら p(x,y)=p(x)p(y)p(x, y) = p(x)p(y) なので、II が掛け算を足し算に変える関数でなければなりません。その性質を持つ連続関数は log⁡\log の定数倍しかない。 定数倍の分が「単位」で、底2なら bit、底 ee なら nat です。深層学習の実装はほぼ ee(log がそのまま自然対数)なので単位は nat ですが、この章は直感の湧く bit で書きます。1 nat=1.442695 bit1\ \text{nat} = 1.442695\ \text{bit} です。

2. エントロピー ── 平均の驚き

定義. 分布 pp のエントロピーを

H(p)  =  Ex∼p[ I(x) ]  =  −∑xp(x)log⁡p(x)H(p) \;=\; \mathbb{E}_{x \sim p}\big[\,I(x)\,\big] \;=\; -\sum_{x} p(x) \log p(x)
(2)

で定める。

式(2)は式(1)の期待値です(第0部の第3章の式(3))。「この分布からひとつ引いたとき、平均してどれだけ驚くか」。

数値例. コイン1枚。

表の出る確率 HH(bit)
0.5 1.000000
0.9 0.468996
0.99 0.080793
1.0 0.000000

公平なコインがちょうど1 bit。これが bit の定義そのもので、「はい/いいえの質問1回ぶん」です。偏るほど小さくなり、結果が決まっているなら0——驚きようがない。

一様分布が最大です。KK 個が等確率なら H=log⁡2KH = \log_2 K で、K=10K = 10 なら 3.3219283.321928、K=1000K = 1000 なら 9.9657849.965784 bit。

エントロピーには符号の意味もあります。$p$ に従う記号列を符号にするとき、1記号あたりの平均の長さは $H(p)$ bit より短くできない(シャノンの定理)。「平均の驚き」と「最短の平均符号長」が同じ数になる——これがこの量の面白さで、次節の「交差」はこの読み方をすると一番はっきりします。

3. 交差エントロピー ── 違う分布だと思い込んで測る

本当は pp で起こるのに、qq だと思い込んで符号を作ったとします。符号の長さは qq に合わせて −log⁡q(x)-\log q(x) になりますが、実際に出てくる頻度は pp です。平均の長さは

H(p,q)  =  −∑xp(x)log⁡q(x)H(p, q) \;=\; -\sum_{x} p(x) \log q(x)
(3)

これが交差エントロピーです。「平均を取る分布」と「長さを決める分布」が食い違っている——交わっている——から「交差」。第0部の第3章の式(7)とまったく同じ形で、あちらは最尤推定から、こちらは符号長から来ています。

数値例. p=(0.7, 0.2, 0.1)p = (0.7,\,0.2,\,0.1)、q=(0.5, 0.3, 0.2)q = (0.5,\,0.3,\,0.2) のとき H(p)=1.156780H(p) = 1.156780、H(p,q)=1.279586H(p,q) = 1.279586 bit。思い込みの分だけ伸びました。

4. KLダイバージェンス ── 伸びた分

定義. 伸びた分を

DKL(p ∥ q)  =  H(p,q)−H(p)  =  ∑xp(x)log⁡p(x)q(x)D_{\mathrm{KL}}(p \,\|\, q) \;=\; H(p,q) - H(p) \;=\; \sum_{x} p(x) \log \frac{p(x)}{q(x)}
(4)

と書き、KLダイバージェンス(相対エントロピー)という。

上の数値例では 1.279586−1.156780=0.1228061.279586 - 1.156780 = 0.122806 bit。式(4)の右辺を直接計算しても 0.1228060.122806 です。

DKL≥0D_{\mathrm{KL}} \ge 0 で、等号は p=qp = q のときだけ。 導出は2行です。log⁡x≤x−1\log x \le x - 1(x>0x > 0・等号は x=1x=1)を使って

−DKL(p∥q)=∑xp(x)log⁡q(x)p(x)  ≤  ∑xp(x)(q(x)p(x)−1)=∑xq(x)−∑xp(x)=1−1=0-D_{\mathrm{KL}}(p\|q) = \sum_x p(x)\log\frac{q(x)}{p(x)} \;\le\; \sum_x p(x)\left(\frac{q(x)}{p(x)} - 1\right) = \sum_x q(x) - \sum_x p(x) = 1 - 1 = 0

よって

DKL(p ∥ q)  ≥  0,等号は p=q のときに限るD_{\mathrm{KL}}(p \,\|\, q) \;\ge\; 0, \qquad\text{等号は } p = q \text{ のときに限る}
(5)

距離ではありません。 同じ2つの分布でも向きで値が変わります。上の例で DKL(q∥p)=0.132775D_{\mathrm{KL}}(q\|p) = 0.132775 bit——0.1228060.122806 とは違う数です。三角不等式も成り立ちません。「ズレの大きさ」ではなく「pp のつもりで qq を使ったときの損」と読むのが正確です。

FIG 1上が本当の分布 p、下がモデルの出す q。q の棒をつかんで動かすと、下の横棒(交差エントロピー)が「橙=H(p)」と「金=KL」に分かれて動く。「q を p に合わせる」を押すと金が消え、橙だけが残る——これが損失の床。「p と q を入れ替える」と KL の値が変わる=距離ではない

5. 学習とのつなぎ目 ── なぜこの名前の損失を下げているのか

教師が one-hot のとき. 正解が3クラス中の1つなら p=(1,0,0)p = (1, 0, 0) で、H(p)=0H(p) = 0。式(4)より

H(p,q)=H(p)+DKL(p∥q)=DKL(p∥q)H(p,q) = H(p) + D_{\mathrm{KL}}(p\|q) = D_{\mathrm{KL}}(p\|q)

交差エントロピーそのものが KL になります。 q=(0.5,0.3,0.2)q = (0.5, 0.3, 0.2) なら H(p,q)=−log⁡20.5=1.000000H(p,q) = -\log_2 0.5 = 1.000000 bit =0.693147= 0.693147 nat で、KL も同じ値。だから「交差エントロピーを下げる」は、そのまま「モデルの分布を正解の分布へ近づける」と読めます。名前の回収はここで終わりです。

教師がデータそのもののとき. 実際の学習でクラスごとの真の確率は分かりません。手元にあるのは mm 件のデータだけです。そこで各データ点に 1/m1/m ずつ置いた経験分布 p^\hat{p} を pp の代わりに使うと、

H(p^,q)  =  −1m∑i=1mlog⁡q(yi∣xi)H(\hat{p}, q) \;=\; -\frac{1}{m}\sum_{i=1}^{m} \log q(y_i \mid x_i)
(6)

右辺は第0部の第3章の式(6)——平均負の対数尤度そのものです。つまり「経験分布との交差エントロピーを最小にする」と「最尤推定する」は同じ操作の別の言い方でした。前章の数値例(y=(1,0,1,1,0)y=(1,0,1,1,0)、p=(0.9,0.2,0.7,0.6,0.3)p=(0.9,0.2,0.7,0.6,0.3))は 0.310535920.31053592 nat =0.448009= 0.448009 bit です。

同じ1つの式に、3つの入口があります。最尤推定(第0部の第3章)、符号長(この章)、KLの最小化(この節)。どれも同じ場所に着くので、好きな入口から入れば足ります。入口を3つ知っておく利点は、行き詰まったときに別の入口から見直せることです。

よくある誤解: 「損失が0に近づかないのはモデルが弱いから」

式(5) から、qq をどう選んでも H(p,q)≥H(p)H(p,q) \ge H(p)。q=pq = p でようやく等号です。

min⁡q  H(p,q)  =  H(p)\min_{q} \; H(p, q) \;=\; H(p)
(7)

損失の床は H(p)H(p) で、モデルの性能とは関係ありません。 教師が one-hot なら H(p)=0H(p) = 0 なので床も0ですが、同じ入力に違う答えが付きうるとき(ラベルの揺れ、曖昧な事例、測り方のばらつき)、H(p)>0H(p) > 0 になって床が持ち上がります。

測ります。ある入力に対して本当は P(y=1∣x)=0.9P(y=1 \mid x) = 0.9(10回に1回は0が付く)だとします。

モデルの出力 qq 交差エントロピー(nat) 正解率
0.9(真の値) 0.325083 90%
0.95 0.345737 90%
0.99 0.469562 90%
0.999 0.691676 90%

一番下まで行っても 0.3250830.325083 nat =0.468996= 0.468996 bit で、ここが床です。 数値で qq を総当たりしても最小は q=0.90000q = 0.90000、値 0.3250830.325083 ——理論値と一致します。

表の下3行が現場で効きます。自信を上げても正解率は1ポイントも動かず、損失だけ悪くなる。 q=0.999q = 0.999 は正解率90%のまま損失が2倍以上です。「もっと自信を持たせれば損失が下がる」は逆で、真の確率より自信を持つことは罰せられます。これが較正(calibration)の話の入口で、損失がある値から下がらなくなったときに最初に疑うべきは、モデルの容量ではなくそもそもの床の高さです。

床があることと、床に着いたことは別です。損失が止まった理由は3つあり得ます——①床($H(p)$)に着いた ②最適化が進んでいない(第4章) ③モデルの形が足りない。見分けるには、学習データでの損失と $H(p)$ の見積りを並べる必要があります。「止まったから床だ」と決めつけないこと。

演習

答えは閉じてあります。手を動かしてから開いてください。

演習1. p=(0.7, 0.2, 0.1)p = (0.7,\,0.2,\,0.1)、q=(0.5, 0.3, 0.2)q = (0.5,\,0.3,\,0.2) について。(a) H(p)H(p) と H(p,q)H(p,q) の差は何を表しますか。(b) DKL(q∥p)D_{\mathrm{KL}}(q\|p) は DKL(p∥q)D_{\mathrm{KL}}(p\|q) と等しいですか。(c) KL を「2つの分布の距離」と呼べない理由を2つ挙げてください。

答えを見る

(a) qq だと思い込んだことによる損(符号長の伸び)= DKL(p∥q)=0.122806D_{\mathrm{KL}}(p\|q) = 0.122806 bit。 1.279586−1.1567801.279586 - 1.156780 です。

(b) 等しくありません。 DKL(q∥p)=0.132775D_{\mathrm{KL}}(q\|p) = 0.132775 bit で、0.1228060.122806 とは別の数です。平均を取る分布が pp から qq に変わるので、どの食い違いを重く数えるかが変わります。

(c) ①対称でない((b))②三角不等式を満たさない。 距離(距離関数)はこの2つを要求します。KLが満たすのは「0以上で、等しいときだけ0」だけ。それでも使うのは、最尤推定とつながっていて計算できるからです。

演習2. 3クラス分類で、正解はクラス1、モデルの出力が q=(0.5, 0.3, 0.2)q = (0.5,\,0.3,\,0.2) です。(a) 交差エントロピーを bit と nat で。(b) この場合に H(p)H(p) と DKL(p∥q)D_{\mathrm{KL}}(p\|q) はいくつですか。(c) q1q_1 を 0.7, 0.9, 0.990.7,\,0.9,\,0.99 に上げたとき損失はどうなりますか。

答えを見る

(a) p=(1,0,0)p = (1,0,0) なので H(p,q)=−log⁡20.5=1.000000H(p,q) = -\log_2 0.5 = 1.000000 bit =0.693147= 0.693147 nat。正解のクラスに付いた確率だけで決まり、他の2つがどう配られているかは効きません(p2=p3=0p_2 = p_3 = 0 が掛かって消えるため)。

(b) H(p)=0H(p) = 0、DKL(p∥q)=1.000000D_{\mathrm{KL}}(p\|q) = 1.000000 bit。 one-hot では交差エントロピーと KL が同じ数になります。

(c) −log⁡20.7=0.514573-\log_2 0.7 = 0.514573、−log⁡20.9=0.152003-\log_2 0.9 = 0.152003、−log⁡20.99=0.014500-\log_2 0.99 = 0.014500 bit。正解のクラスの確率を1へ押し上げるほど0に近づきます。この場合は床が0(H(p)=0H(p)=0)なので、いくらでも下げられる——第0部の第2章で見た「最小値が存在しない」はこの形です。

演習3. 同じ入力に対し、真の確率が P(y=1∣x)=0.8P(y=1\mid x) = 0.8 だとします。(a) 達成できる最小の交差エントロピー(nat)。(b) そのときの正解率。(c) モデルが q=1.0q = 1.0 を出したら何が起きますか。

答えを見る

(a) H(p)=−(0.8ln⁡0.8+0.2ln⁡0.2)=0.500402H(p) = -(0.8\ln 0.8 + 0.2\ln 0.2) = 0.500402 nat(=0.721928= 0.721928 bit)。q=0.8q = 0.8 のときに達成します。

(b) 80%。 つねに1と答えるのが最善で、10回に2回は外します。損失も正解率も、モデルではなくデータが決めている状態です。

(c) 損失が発散します。 y=0y = 0 が来た回に −log⁡(1−q)=−log⁡0-\log(1 - q) = -\log 0 になるため。実装は qq を 1−ε1-\varepsilon で止めるので無限大にはなりませんが、その1件が巨大な値を出して勾配を支配します。「外れたうえに自信があった」の極限で、第III部の第1章の演習3と同じ現象です。

この章で言っていないこと

  • 相互情報量・条件付きエントロピーは扱っていません。 「XX を知ると YY の不確かさがどれだけ減るか」はこの章の道具で書けますが、使う場所(特徴選択・表現学習)が先の章なのでそちらに回します。
  • 連続分布のエントロピー(微分エントロピー)は別物です。 式(2)をそのまま積分にすると負の値も取り、「平均符号長」の読み方が通りません。この章の話は離散に限っています。
  • シャノンの符号化定理は使っただけで証明していません。H(p)H(p) より短くできないこと、そして H(p)H(p) にいくらでも近づけられることの両方が中身です。
  • 較正(モデルの出す確率が本当の頻度と合っているか)の測り方・直し方は入れていません。この章は「自信過剰は損失で罰される」という形だけを示しています。
  • 本文の数値はすべて実際に計算して確かめています(コインと一様分布のエントロピー、H(p,q)=H(p)+DKLH(p,q) = H(p) + D_{\mathrm{KL}} の一致、両向きの KL、one-hot の場合、P(y=1)=0.9P(y=1)=0.9 での床と qq を総当たりした最小の一致、乱数2万組で DKL<0D_{\mathrm{KL}} < 0 が1件も出ないこと)。

もっと詳しく

コメント

コメントにはログインが必要です