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

どれか1つに決まらないものを数で書く ── 確率

無料18分

第0部の第2章で「どちらへ動かせば良くなるか」を置きました。残っているのは何を良いとするかです。学習の目的(損失)は、天から降ってきた式ではありません。確率で書いた仮定を1つ置くと、損失が決まります。

深層学習で確率が出てくる場所は3つです。

  1. 出力そのもの。 分類器が返す0.87は「87%の確からしさ」という確率です。
  2. 学習の目的。 交差エントロピーも二乗誤差も、確率の仮定から導かれます(この章の第5節)。
  3. 勾配そのもの。 ミニバッチの勾配は全データの勾配の推定値で、必ず誤差が乗っています(第6節)。

この3つに必要な分だけを置きます。

1. 標本空間・事象・3つの約束

定義. 起こりうる結果をすべて集めた集合を標本空間 Ω\Omega、その部分集合を事象という。事象 AA に対する確率 P(A)P(A) は次の3つを満たす数とする。

  1. P(A)≥0P(A) \ge 0
  2. P(Ω)=1P(\Omega) = 1
  3. A∩B=∅A \cap B = \varnothing(同時には起こらない)なら P(A∪B)=P(A)+P(B)P(A \cup B) = P(A) + P(B)

これだけです。「確率とは何か」の解釈(頻度か、信念の度合いか)はこの3つに含まれていません。計算に要るのは3つの約束だけで、解釈は計算の外側にあります。

3つめから、よく使う形がすぐ出ます。AA と AcA^{c}(AA でない)は同時に起こらず合わせて Ω\Omega なので P(Ac)=1−P(A)P(A^{c}) = 1 - P(A)。

2. 条件付き確率とベイズ ── 向きを入れ替える

定義. P(B)>0P(B) > 0 のとき、BB が起きたと分かっているもとでの AA の確率を

P(A∣B)  =  P(A∩B)P(B)P(A \mid B) \;=\; \frac{P(A \cap B)}{P(B)}
(1)

で定める。

式(1)がしていることは分母の取り替えです。世界全体 Ω\Omega の中で AA を測るのをやめ、BB の中だけで測り直す。

P(A∩B)=P(A∣B)P(B)=P(B∣A)P(A)P(A \cap B) = P(A \mid B) P(B) = P(B \mid A) P(A) の両端を P(B)P(B) で割ると、

P(A∣B)  =  P(B∣A) P(A)P(B)P(A \mid B) \;=\; \frac{P(B \mid A)\, P(A)}{P(B)}
(2)

ベイズの定理です。導出は1行で、中身は「同じ P(A∩B)P(A \cap B) を2通りに書いただけ」。それでもこれが要るのは、知りたい向きと測れる向きが食い違うからです。検査でいえば、測れるのは「病気の人が陽性になる割合」P(+∣D)P(+ \mid D)、知りたいのは「陽性だった人が病気である割合」P(D∣+)P(D \mid +)。式(2)はこの2つを入れ替える式で、入れ替えるときに P(A)P(A) ——事前にどれくらい在りそうか——が必ず要ります。この項を落とすのがこの章の「よくある誤解」です。

独立. P(A∩B)=P(A)P(B)P(A \cap B) = P(A)P(B) のとき AA と BB は独立といいます。式(1)に入れると P(A∣B)=P(A)P(A \mid B) = P(A)。BB を知っても AA の見込みが動かない、が独立の意味です。

3. 確率変数・期待値・分散

結果に数を割り当てたものを確率変数といいます(サイコロの目、画像のラベル、1件ぶんの勾配)。

定義. 確率変数 XX の期待値を

E[X]  =  ∑xx p(x)(離散),E[X]  =  ∫x p(x) dx(連続)\mathbb{E}[X] \;=\; \sum_{x} x\, p(x) \quad \text{(離散)}, \qquad \mathbb{E}[X] \;=\; \int x\, p(x)\, dx \quad \text{(連続)}
(3)

で定める。また分散を Var(X)=E[(X−E[X])2]\mathrm{Var}(X) = \mathbb{E}\big[(X - \mathbb{E}[X])^2\big] で定める。

期待値は重み付きの平均です。分散は「平均からどれだけ散らばっているか」で、展開すると

Var(X)  =  E[X2]−(E[X])2\mathrm{Var}(X) \;=\; \mathbb{E}[X^2] - \big(\mathbb{E}[X]\big)^2
(4)

と書けます。Var(X)\sqrt{\mathrm{Var}(X)} を標準偏差 σ\sigma といい、XX と同じ単位を持ちます。

数値例. 公平なサイコロなら E[X]=3.5\mathbb{E}[X] = 3.5、E[X2]=15.1667\mathbb{E}[X^2] = 15.1667、Var(X)=15.1667−12.25=2.9167 (=35/12)\mathrm{Var}(X) = 15.1667 - 12.25 = 2.9167\ (= 35/12)、σ=1.7078\sigma = 1.7078。

この章で使う性質は2つだけです。

  • 線形性. E[aX+bY]=a E[X]+b E[Y]\mathbb{E}[aX + bY] = a\,\mathbb{E}[X] + b\,\mathbb{E}[Y]。独立でなくても成り立ちます。
  • 独立なら分散が足せる. X,YX, Y が独立なら Var(X+Y)=Var(X)+Var(Y)\mathrm{Var}(X + Y) = \mathrm{Var}(X) + \mathrm{Var}(Y)。こちらは独立が要ります。

後者から、BB 個の独立な観測の平均 Xˉ=1B∑i=1BXi\bar{X} = \frac{1}{B}\sum_{i=1}^{B} X_i について

E[Xˉ]=μ,Var(Xˉ)=1B2∑i=1BVar(Xi)=σ2B,よってsd(Xˉ)=σB\mathbb{E}[\bar{X}] = \mu, \qquad \mathrm{Var}(\bar{X}) = \frac{1}{B^2}\sum_{i=1}^{B}\mathrm{Var}(X_i) = \frac{\sigma^2}{B}, \qquad \text{よって} \quad \mathrm{sd}(\bar{X}) = \frac{\sigma}{\sqrt{B}}
(5)

平均の位置は BB によらず正しく、散らばりだけが B\sqrt{B} 分の1になる。 式(5)はこの章で一番使う式で、第6節でミニバッチの話になります。BB ではなく B\sqrt{B} であることに注意してください。

4. よく使う3つの分布

ベルヌーイ分布. 0か1かの1回。p∈[0,1]p \in [0,1] を使って P(y)=py(1−p)1−yP(y) = p^{y}(1-p)^{1-y}(y∈{0,1}y \in \{0,1\})。yy が0か1なので、片方の指数が必ず0になって消えます。平均 pp、分散 p(1−p)p(1-p)。2値分類の出力 σ(z)\sigma(z) は、この pp です。

カテゴリカル分布. KK 個のうち1つ。P(y=k)=pkP(y = k) = p_k、ただし pk≥0p_k \ge 0 かつ ∑kpk=1\sum_k p_k = 1。多クラス分類の softmax は、この制約を満たす形に数を押し込む写像です。softmax(z)k=ezk/∑jezj\mathrm{softmax}(z)_k = e^{z_k}/\sum_j e^{z_j} は、指数で正にしてから和で割っているだけで、「正であること」と「和が1」をこの2段が担っています。

ガウス分布(正規分布). 連続値。

p(y)  =  1σ2πexp⁡ ⁣(−(y−μ)22σ2)p(y) \;=\; \frac{1}{\sigma\sqrt{2\pi}} \exp\!\left(-\frac{(y-\mu)^2}{2\sigma^2}\right)

平均 μ\mu、分散 σ2\sigma^2。回帰でこれを仮定すると二乗誤差が出ます(次節)。

分布は「道具箱から好きに選ぶもの」ではなく、出力の形が決めるものです。0か1ならベルヌーイ、$K$ 個から1つならカテゴリカル、実数ならガウス。選んだ分布が、そのまま損失になります。

5. 最尤推定 ── 損失はどこから来たのか

手元のデータ (xi,yi)i=1m(x_i, y_i)_{i=1}^{m} があり、モデルがパラメータ θ\theta で条件付き分布 p(y∣x;θ)p(y \mid x; \theta) を出すとします。いま持っているデータが一番ありそうになるように θ\theta を選ぶ、これが最尤推定です。

θ^  =  arg⁡max⁡θ∏i=1mp(yi∣xi;θ)  =  arg⁡min⁡θ  −1m∑i=1mlog⁡p(yi∣xi;θ)\hat{\theta} \;=\; \arg\max_{\theta} \prod_{i=1}^{m} p(y_i \mid x_i; \theta) \;=\; \arg\min_{\theta} \; -\frac{1}{m}\sum_{i=1}^{m} \log p(y_i \mid x_i; \theta)
(6)

右の等号で3つのことをしています。対数を取る(掛け算が足し算になり、mm 個の掛け算で起きる桁溢れも消える。log⁡\log は単調増加なので最大の場所は動かない)、符号を反転(最大化を最小化に)、mm で割る(件数が変わっても目盛りが変わらないように)。

ここに第4節の分布を入れるだけで、見慣れた損失が出ます。

ベルヌーイを入れる. p(y∣x)=py(1−p)1−yp(y \mid x) = p^{y}(1-p)^{1-y}(p=σ(z)p = \sigma(z))なので log⁡p(y∣x)=ylog⁡p+(1−y)log⁡(1−p)\log p(y\mid x) = y\log p + (1-y)\log(1-p)。式(6)に入れて

L(θ)  =  −1m∑i=1m[ yilog⁡pi+(1−yi)log⁡(1−pi) ]L(\theta) \;=\; -\frac{1}{m}\sum_{i=1}^{m}\Big[\, y_i \log p_i + (1-y_i)\log(1-p_i) \,\Big]
(7)

交差エントロピーです。 第III部の第1章では「正解が1の点では pip_i を、0の点では 1−pi1-p_i を大きくしたい。両方まとめて1本で書くと」と言って同じ式に着きました。その「まとめて1本」の正体がベルヌーイ分布の確率そのものだった、というのがこの節です。

数値で確かめます. 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.9×0.8×0.7×0.6×0.7=0.211680.9 \times 0.8 \times 0.7 \times 0.6 \times 0.7 = 0.21168。−log⁡(0.21168)/5=0.31053592-\log(0.21168)/5 = 0.31053592。いっぽう式(7)を直接計算しても 0.310535920.31053592。一致します(差は0)。

ガウスを入れる. y∣x∼N(y^,σ2)y \mid x \sim \mathcal{N}(\hat{y}, \sigma^2) とすると、1件ぶんの負の対数尤度は

−log⁡p(y∣x)  =  (y−y^)22σ2  +  log⁡(σ2π)-\log p(y \mid x) \;=\; \frac{(y - \hat{y})^2}{2\sigma^2} \;+\; \log\big(\sigma\sqrt{2\pi}\big)
(8)

第2項は y^\hat{y} を含みません。y^\hat{y} について最小化するなら、残るのは二乗誤差だけです。σ\sigma を固定すれば定数倍の違いしかありません。y=(2.0,−1.0,0.5)y = (2.0,-1.0,0.5)、y^=(1.5,−0.7,0.9)\hat{y} = (1.5,-0.7,0.9)、σ=1\sigma = 1 で確かめると、負の対数尤度の平均 1.0022721.002272、二乗誤差の平均 0.1666670.166667、差は 0.918939=log⁡2π0.918939 = \log\sqrt{2\pi}。ぴったり定数です。

「回帰には二乗誤差、分類には交差エントロピー」は作法ではなく、仮定の言い換えです。二乗誤差を使うことは「誤差がガウスで、散らばりがどこでも同じ」と言うこと。外れ値が多いデータでそれが効かないのは、損失の選び方が悪いのではなく仮定が合っていないからです。

6. ミニバッチ ── 勾配は測った値ではなく推定値

学習1回ぶんの勾配は、本当は全データの平均です。

∇L=1m∑i=1m∇ℓi  =  E[∇ℓ]\nabla L = \frac{1}{m}\sum_{i=1}^{m} \nabla \ell_i \;=\; \mathbb{E}\big[\nabla \ell\big]

mm が100万なら、1回動かすたびに100万件を見ることになります。そこで BB 件だけ引いて平均で代える——これがミニバッチです。式(5)がそのまま効きます。平均の位置は正しく(偏っていない)、散らばりは σ/B\sigma/\sqrt{B}。

FIG 1上が母集団、下が「B件引いて平均する」を繰り返して貯めた分布。Bを動かすと、山の中心は動かず幅だけが縮む——金の2本が ±σ/√B で、実測の幅がそこに合う。4倍にして半分。母集団を歪んだ形にしても、平均の分布は釣鐘に寄る

実測します. 2次元のロジスティック回帰、データ1,000件(種 20261013)、w=(0.5,−0.3)w = (0.5, -0.3)、b=0.1b = 0.1 の地点で、1件ぶんの勾配 ∂ℓi/∂w1\partial \ell_i/\partial w_1 を全件ぶん作りました。全データの勾配は −0.083919-0.083919、1件ごとの標準偏差は σ=0.375821\sigma = 0.375821。ここから BB 件を引いて平均する操作を各20,000回おこない、その散らばりを測った結果です。

BB 実測の標準誤差 σ/B\sigma/\sqrt{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=1B = 1 のとき、勾配の誤差 0.3720.372 は勾配そのもの 0.0840.084 の4倍以上あります。 向きが逆を向く回も珍しくありません。それでも学習が進むのは、偏っていないからです。平均すれば正しい向きに寄る——式(5)の前半がその保証で、1回1回の正しさは誰も保証していません。

ここから運用の数字が出ます。BB を4倍にすると、計算は4倍、誤差は半分。 B=16→64B = 16 \to 64 で誤差が 0.0928→0.04690.0928 \to 0.0469 に半減し、計算は4倍です。バッチを大きくするほど得、とはならない理由がこれです。

よくある誤解: 「99%正確な検査で陽性なら、99%の確率で病気」

式(2)の P(A)P(A) ——事前にどれくらい在りそうか——を落とすと、こうなります。数で見ると外れ方がはっきりします。

有病率 0.1%、感度(病気の人が陽性になる割合)99%、特異度(健康な人が陰性になる割合)99% とします。1万人で数えます。

陽性 陰性
病気(10人) 9.9 0.1
健康(9,990人) 99.9 9,890.1

陽性になるのは 9.9+99.9=109.89.9 + 99.9 = 109.8 人で、そのうち本当に病気なのは 9.99.9 人。

P(D∣+)  =  9.9109.8  =  9.0164%P(D \mid +) \;=\; \frac{9.9}{109.8} \;=\; 9.0164\%

99%ではなく9%です。 検査は何も間違っていません。健康な人が9,990人もいるので、1%の間違いでも99.9人になり、本物の9.9人を数で押し流してしまう。式(2)で言えば P(D)=0.001P(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=9901000 \times 0.99 = 990 人と 9000×0.01=909000 \times 0.01 = 90 人で計1,080人、うち本物は990人。990/1080=0.916667990/1080 = 0.916667。

(b) 式(2)の P(A)P(A) が変わったから。 検査が与えるのは P(+∣D)P(+ \mid D) と P(+∣Dc)P(+ \mid D^{c}) だけで、これは有病率を含みません。知りたい P(D∣+)P(D \mid +) は、そこに P(D)P(D) を掛けてから比を取った量です。同じ道具でも、当てる集団が違えば答えが違う。

(c) 学習に使ったデータの陽性比率(基準率)と、実際に使う場所の陽性比率のずれ。 陽性を半々に集めて学習した模型をそのまま現場(陽性0.1%)に出すと、本文の表の上下の行を行き来することになります。模型の性能は変わっていないのに、現場での適合率だけが落ちます。

演習2. ある地点で1件ぶんの勾配の標準偏差が σ=0.4\sigma = 0.4 でした。(a) B=16B = 16 のときの標準誤差。(b) それを半分にするには BB をいくつにしますか。(c) 10分の1にするには。(d) そこから言えることは。

答えを見る

(a) 0.4/16=0.10.4/\sqrt{16} = 0.1。

(b) B=64B = 64(4倍)。 σ/B\sigma/\sqrt{B} を半分にするには B\sqrt{B} を2倍、つまり BB を4倍。

(c) B=1600B = 1600(100倍)。 1/B1/\sqrt{B} なので、誤差を 1/101/10 にするには BB を 100100 倍。

(d) 誤差を減らす手段としてバッチを大きくするのは、だんだん割に合わなくなる。 計算は BB に比例して増えるのに、誤差は B\sqrt{B} でしか減りません。BB を100倍払って、誤差は10分の1。 大きなバッチが有利になるのは誤差のためというより、同じ計算を並列に詰め込めるから(装置の都合)です。学習率との釣り合いの話は第4章です。

演習3. 回帰で y∣x∼N(y^,σ2)y \mid x \sim \mathcal{N}(\hat y, \sigma^2) を仮定します。(a) 1件ぶんの負の対数尤度を書き、y^\hat y に依らない項を指摘してください。(b) σ\sigma を2倍にすると、最小化の答え y^\hat y は変わりますか。(c) 誤差がガウスではなく外れ値が混ざるとき、何が起きますか。

答えを見る

(a) −log⁡p(y∣x)=(y−y^)22σ2+log⁡(σ2π)-\log p(y\mid x) = \dfrac{(y-\hat y)^2}{2\sigma^2} + \log(\sigma\sqrt{2\pi})。第2項が y^\hat y を含みません。y^\hat y について微分すると消えるので、最小化には効きません。

(b) 変わりません。 σ\sigma を変えても第1項が 1/(2σ2)1/(2\sigma^2) 倍されるだけで、y^\hat y についての最小の場所は同じです(正の定数倍は最小の位置を動かさない)。ただし勾配の大きさは変わるので、学習率を据え置くと歩幅が実質的に変わります。

(c) 外れ値1点が全体を引っ張ります。 二乗誤差は外れ方の2乗で罰するので、1010 ずれた1点は 11 ずれた100点と同じ重みを持ちます。ガウスの裾は指数的に薄く、「大きく外れた点はめったに無い」と仮定していたので、実際に出てきたときに仮定の方が間違っている。損失を取り替えるのではなく、分布の仮定を取り替えるのが筋です(裾の厚い分布を仮定すると、絶対値誤差や Huber 損失が同じ導出で出ます)。

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

  • エントロピー・KLダイバージェンスは次章(第0部の第4章)です。 この章は「尤度を最大にする」までで、「交差エントロピー」という名前の由来(情報理論の量としての意味)には触れていません。式としては第5節で出し切っています。
  • ベイズ推定(事後分布を持ち回る立場)は扱っていません。 式(2)は1回の計算として使っただけで、パラメータに事前分布を置いて分布のまま学習する話は入っていません。
  • 連続確率変数の厳密な扱い(測度・密度と確率の違い)は置いていません。密度は確率そのものではなく1より大きくなれますが、この章の計算はその区別を要しません。
  • 中心極限定理は図で見せただけで、述べても証明してもいません。式(5)(分散が σ2/B\sigma^2/B)は独立性だけから出ますが、「釣鐘に寄る」はそれとは別の主張です。
  • ミニバッチの実測は1つの地点・1つの成分での測定です。学習が進めば σ\sigma も変わります。変わらないのは B\sqrt{B} 分の1という形のほうです。
  • 本文の数値はすべて実際に計算して確かめています(サイコロの分散、ベイズの表と4つの有病率、ミニバッチの標準誤差5通り、尤度の積と交差エントロピーの一致、ガウスの負の対数尤度と二乗誤差の差が log⁡2π\log\sqrt{2\pi} になること)。

もっと詳しく

コメント

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