第0部の第2章で「どちらへ動かせば良くなるか」を置きました。残っているのは何を良いとするかです。学習の目的(損失)は、天から降ってきた式ではありません。確率で書いた仮定を1つ置くと、損失が決まります。
深層学習で確率が出てくる場所は3つです。
- 出力そのもの。 分類器が返す0.87は「87%の確からしさ」という確率です。
- 学習の目的。 交差エントロピーも二乗誤差も、確率の仮定から導かれます(この章の第5節)。
- 勾配そのもの。 ミニバッチの勾配は全データの勾配の推定値で、必ず誤差が乗っています(第6節)。
この3つに必要な分だけを置きます。
1. 標本空間・事象・3つの約束
定義. 起こりうる結果をすべて集めた集合を標本空間 Ω、その部分集合を事象という。事象 A に対する確率 P(A) は次の3つを満たす数とする。
- P(A)≥0
- P(Ω)=1
- A∩B=∅(同時には起こらない)なら P(A∪B)=P(A)+P(B)
これだけです。「確率とは何か」の解釈(頻度か、信念の度合いか)はこの3つに含まれていません。計算に要るのは3つの約束だけで、解釈は計算の外側にあります。
3つめから、よく使う形がすぐ出ます。A と Ac(A でない)は同時に起こらず合わせて Ω なので P(Ac)=1−P(A)。
2. 条件付き確率とベイズ ── 向きを入れ替える
定義. P(B)>0 のとき、B が起きたと分かっているもとでの A の確率を
P(A∣B)=P(B)P(A∩B) (1)
で定める。
式(1)がしていることは分母の取り替えです。世界全体 Ω の中で A を測るのをやめ、B の中だけで測り直す。
P(A∩B)=P(A∣B)P(B)=P(B∣A)P(A) の両端を P(B) で割ると、
P(A∣B)=P(B)P(B∣A)P(A) (2)
ベイズの定理です。導出は1行で、中身は「同じ P(A∩B) を2通りに書いただけ」。それでもこれが要るのは、知りたい向きと測れる向きが食い違うからです。検査でいえば、測れるのは「病気の人が陽性になる割合」P(+∣D)、知りたいのは「陽性だった人が病気である割合」P(D∣+)。式(2)はこの2つを入れ替える式で、入れ替えるときに P(A) ——事前にどれくらい在りそうか——が必ず要ります。この項を落とすのがこの章の「よくある誤解」です。
独立. P(A∩B)=P(A)P(B) のとき A と B は独立といいます。式(1)に入れると P(A∣B)=P(A)。B を知っても A の見込みが動かない、が独立の意味です。
3. 確率変数・期待値・分散
結果に数を割り当てたものを確率変数といいます(サイコロの目、画像のラベル、1件ぶんの勾配)。
定義. 確率変数 X の期待値を
E[X]=x∑xp(x)(離散),E[X]=∫xp(x)dx(連続) (3)
で定める。また分散を Var(X)=E[(X−E[X])2] で定める。
期待値は重み付きの平均です。分散は「平均からどれだけ散らばっているか」で、展開すると
Var(X)=E[X2]−(E[X])2 (4)
と書けます。Var(X) を標準偏差 σ といい、X と同じ単位を持ちます。
数値例. 公平なサイコロなら E[X]=3.5、E[X2]=15.1667、Var(X)=15.1667−12.25=2.9167 (=35/12)、σ=1.7078。
この章で使う性質は2つだけです。
- 線形性. E[aX+bY]=aE[X]+bE[Y]。独立でなくても成り立ちます。
- 独立なら分散が足せる. X,Y が独立なら Var(X+Y)=Var(X)+Var(Y)。こちらは独立が要ります。
後者から、B 個の独立な観測の平均 Xˉ=B1∑i=1BXi について
E[Xˉ]=μ,Var(Xˉ)=B21i=1∑BVar(Xi)=Bσ2,よってsd(Xˉ)=Bσ (5)
平均の位置は B によらず正しく、散らばりだけが B 分の1になる。 式(5)はこの章で一番使う式で、第6節でミニバッチの話になります。B ではなく B であることに注意してください。
4. よく使う3つの分布
ベルヌーイ分布. 0か1かの1回。p∈[0,1] を使って P(y)=py(1−p)1−y(y∈{0,1})。y が0か1なので、片方の指数が必ず0になって消えます。平均 p、分散 p(1−p)。2値分類の出力 σ(z) は、この p です。
カテゴリカル分布. K 個のうち1つ。P(y=k)=pk、ただし pk≥0 かつ ∑kpk=1。多クラス分類の softmax は、この制約を満たす形に数を押し込む写像です。softmax(z)k=ezk/∑jezj は、指数で正にしてから和で割っているだけで、「正であること」と「和が1」をこの2段が担っています。
ガウス分布(正規分布). 連続値。
p(y)=σ2π1exp(−2σ2(y−μ)2)
平均 μ、分散 σ2。回帰でこれを仮定すると二乗誤差が出ます(次節)。
分布は「道具箱から好きに選ぶもの」ではなく、出力の形が決めるものです。0か1ならベルヌーイ、$K$ 個から1つならカテゴリカル、実数ならガウス。選んだ分布が、そのまま損失になります。
5. 最尤推定 ── 損失はどこから来たのか
手元のデータ (xi,yi)i=1m があり、モデルがパラメータ θ で条件付き分布 p(y∣x;θ) を出すとします。いま持っているデータが一番ありそうになるように θ を選ぶ、これが最尤推定です。
θ^=argθmaxi=1∏mp(yi∣xi;θ)=argθmin−m1i=1∑mlogp(yi∣xi;θ) (6)
右の等号で3つのことをしています。対数を取る(掛け算が足し算になり、m 個の掛け算で起きる桁溢れも消える。log は単調増加なので最大の場所は動かない)、符号を反転(最大化を最小化に)、m で割る(件数が変わっても目盛りが変わらないように)。
ここに第4節の分布を入れるだけで、見慣れた損失が出ます。
ベルヌーイを入れる. p(y∣x)=py(1−p)1−y(p=σ(z))なので logp(y∣x)=ylogp+(1−y)log(1−p)。式(6)に入れて
L(θ)=−m1i=1∑m[yilogpi+(1−yi)log(1−pi)] (7)
交差エントロピーです。 第III部の第1章では「正解が1の点では pi を、0の点では 1−pi を大きくしたい。両方まとめて1本で書くと」と言って同じ式に着きました。その「まとめて1本」の正体がベルヌーイ分布の確率そのものだった、というのがこの節です。
数値で確かめます. y=(1,0,1,1,0)、p=(0.9,0.2,0.7,0.6,0.3) のとき、尤度の積は 0.9×0.8×0.7×0.6×0.7=0.21168。−log(0.21168)/5=0.31053592。いっぽう式(7)を直接計算しても 0.31053592。一致します(差は0)。
ガウスを入れる. y∣x∼N(y^,σ2) とすると、1件ぶんの負の対数尤度は
−logp(y∣x)=2σ2(y−y^)2+log(σ2π) (8)
第2項は y^ を含みません。y^ について最小化するなら、残るのは二乗誤差だけです。σ を固定すれば定数倍の違いしかありません。y=(2.0,−1.0,0.5)、y^=(1.5,−0.7,0.9)、σ=1 で確かめると、負の対数尤度の平均 1.002272、二乗誤差の平均 0.166667、差は 0.918939=log2π。ぴったり定数です。
「回帰には二乗誤差、分類には交差エントロピー」は作法ではなく、仮定の言い換えです。二乗誤差を使うことは「誤差がガウスで、散らばりがどこでも同じ」と言うこと。外れ値が多いデータでそれが効かないのは、損失の選び方が悪いのではなく仮定が合っていないからです。
6. ミニバッチ ── 勾配は測った値ではなく推定値
学習1回ぶんの勾配は、本当は全データの平均です。
∇L=m1i=1∑m∇ℓi=E[∇ℓ]
m が100万なら、1回動かすたびに100万件を見ることになります。そこで B 件だけ引いて平均で代える——これがミニバッチです。式(5)がそのまま効きます。平均の位置は正しく(偏っていない)、散らばりは σ/B。
FIG 1上が母集団、下が「B件引いて平均する」を繰り返して貯めた分布。Bを動かすと、山の中心は動かず幅だけが縮む——金の2本が ±σ/√B で、実測の幅がそこに合う。4倍にして半分。母集団を歪んだ形にしても、平均の分布は釣鐘に寄る
実測します. 2次元のロジスティック回帰、データ1,000件(種 20261013)、w=(0.5,−0.3)、b=0.1 の地点で、1件ぶんの勾配 ∂ℓi/∂w1 を全件ぶん作りました。全データの勾配は −0.083919、1件ごとの標準偏差は σ=0.375821。ここから B 件を引いて平均する操作を各20,000回おこない、その散らばりを測った結果です。
| B |
実測の標準誤差 |
σ/B |
比 |
| 1 |
0.371975 |
0.375821 |
0.990 |
| 4 |
0.187782 |
0.187911 |
0.999 |
| 16 |
0.092750 |
0.093955 |
0.987 |
| 64 |
0.046893 |
0.046978 |
0.998 |
| 256 |
0.023700 |
0.023489 |
1.009 |
B=1 のとき、勾配の誤差 0.372 は勾配そのもの 0.084 の4倍以上あります。 向きが逆を向く回も珍しくありません。それでも学習が進むのは、偏っていないからです。平均すれば正しい向きに寄る——式(5)の前半がその保証で、1回1回の正しさは誰も保証していません。
ここから運用の数字が出ます。B を4倍にすると、計算は4倍、誤差は半分。 B=16→64 で誤差が 0.0928→0.0469 に半減し、計算は4倍です。バッチを大きくするほど得、とはならない理由がこれです。
よくある誤解: 「99%正確な検査で陽性なら、99%の確率で病気」
式(2)の P(A) ——事前にどれくらい在りそうか——を落とすと、こうなります。数で見ると外れ方がはっきりします。
有病率 0.1%、感度(病気の人が陽性になる割合)99%、特異度(健康な人が陰性になる割合)99% とします。1万人で数えます。
|
陽性 |
陰性 |
| 病気(10人) |
9.9 |
0.1 |
| 健康(9,990人) |
99.9 |
9,890.1 |
陽性になるのは 9.9+99.9=109.8 人で、そのうち本当に病気なのは 9.9 人。
P(D∣+)=109.89.9=9.0164%
99%ではなく9%です。 検査は何も間違っていません。健康な人が9,990人もいるので、1%の間違いでも99.9人になり、本物の9.9人を数で押し流してしまう。式(2)で言えば P(D)=0.001 という小さな係数が分子だけに掛かっています。
有病率を変えると答えが変わります。検査の性能は一切変えていません。
| 有病率 |
陽性的中率 |
| 0.1% |
9.0164% |
| 1% |
50.0000% |
| 10% |
91.6667% |
| 50% |
99.0000% |
1%でちょうどコイン投げ、50%でようやく99%です。
これは医療の話に閉じません。不均衡なデータの分類器がまったく同じ形で壊れます。 陽性が0.1%しかない問題で「いつも陰性」と答えるだけの模型は、正解率 99.9% を取ります。正解率は $P(\text{当たり})$ を全体で測る量なので、多数派の成績でほぼ決まってしまう。見るべきは陽性と判定したうちの的中率(適合率)と、本物のうち拾えた割合(再現率)です。
演習
答えは閉じてあります。手を動かしてから開いてください。
演習1. 上と同じ検査(感度99%・特異度99%)を、有病率10%の集団で使います。(a) 陽性的中率はいくつですか。(b) 検査を一切変えていないのに答えが変わるのはなぜですか。(c) この話を分類器に置き換えると、何に相当しますか。
答えを見る
(a) 91.6667%。 1万人なら病気1,000人・健康9,000人。陽性は 1000×0.99=990 人と 9000×0.01=90 人で計1,080人、うち本物は990人。990/1080=0.916667。
(b) 式(2)の P(A) が変わったから。 検査が与えるのは P(+∣D) と P(+∣Dc) だけで、これは有病率を含みません。知りたい P(D∣+) は、そこに P(D) を掛けてから比を取った量です。同じ道具でも、当てる集団が違えば答えが違う。
(c) 学習に使ったデータの陽性比率(基準率)と、実際に使う場所の陽性比率のずれ。 陽性を半々に集めて学習した模型をそのまま現場(陽性0.1%)に出すと、本文の表の上下の行を行き来することになります。模型の性能は変わっていないのに、現場での適合率だけが落ちます。
演習2. ある地点で1件ぶんの勾配の標準偏差が σ=0.4 でした。(a) B=16 のときの標準誤差。(b) それを半分にするには B をいくつにしますか。(c) 10分の1にするには。(d) そこから言えることは。
答えを見る
(a) 0.4/16=0.1。
(b) B=64(4倍)。 σ/B を半分にするには B を2倍、つまり B を4倍。
(c) B=1600(100倍)。 1/B なので、誤差を 1/10 にするには B を 100 倍。
(d) 誤差を減らす手段としてバッチを大きくするのは、だんだん割に合わなくなる。 計算は B に比例して増えるのに、誤差は B でしか減りません。B を100倍払って、誤差は10分の1。 大きなバッチが有利になるのは誤差のためというより、同じ計算を並列に詰め込めるから(装置の都合)です。学習率との釣り合いの話は第4章です。
演習3. 回帰で y∣x∼N(y^,σ2) を仮定します。(a) 1件ぶんの負の対数尤度を書き、y^ に依らない項を指摘してください。(b) σ を2倍にすると、最小化の答え y^ は変わりますか。(c) 誤差がガウスではなく外れ値が混ざるとき、何が起きますか。
答えを見る
(a) −logp(y∣x)=2σ2(y−y^)2+log(σ2π)。第2項が y^ を含みません。y^ について微分すると消えるので、最小化には効きません。
(b) 変わりません。 σ を変えても第1項が 1/(2σ2) 倍されるだけで、y^ についての最小の場所は同じです(正の定数倍は最小の位置を動かさない)。ただし勾配の大きさは変わるので、学習率を据え置くと歩幅が実質的に変わります。
(c) 外れ値1点が全体を引っ張ります。 二乗誤差は外れ方の2乗で罰するので、10 ずれた1点は 1 ずれた100点と同じ重みを持ちます。ガウスの裾は指数的に薄く、「大きく外れた点はめったに無い」と仮定していたので、実際に出てきたときに仮定の方が間違っている。損失を取り替えるのではなく、分布の仮定を取り替えるのが筋です(裾の厚い分布を仮定すると、絶対値誤差や Huber 損失が同じ導出で出ます)。
この章で言っていないこと
- エントロピー・KLダイバージェンスは次章(第0部の第4章)です。 この章は「尤度を最大にする」までで、「交差エントロピー」という名前の由来(情報理論の量としての意味)には触れていません。式としては第5節で出し切っています。
- ベイズ推定(事後分布を持ち回る立場)は扱っていません。 式(2)は1回の計算として使っただけで、パラメータに事前分布を置いて分布のまま学習する話は入っていません。
- 連続確率変数の厳密な扱い(測度・密度と確率の違い)は置いていません。密度は確率そのものではなく1より大きくなれますが、この章の計算はその区別を要しません。
- 中心極限定理は図で見せただけで、述べても証明してもいません。式(5)(分散が σ2/B)は独立性だけから出ますが、「釣鐘に寄る」はそれとは別の主張です。
- ミニバッチの実測は1つの地点・1つの成分での測定です。学習が進めば σ も変わります。変わらないのは B 分の1という形のほうです。
- 本文の数値はすべて実際に計算して確かめています(サイコロの分散、ベイズの表と4つの有病率、ミニバッチの標準誤差5通り、尤度の積と交差エントロピーの一致、ガウスの負の対数尤度と二乗誤差の差が log2π になること)。
もっと詳しく
コメント
コメントにはログインが必要です