深いネットワークが速く学習する方法——各値をそのバッチと照らして判断する。

SRC·49 Source
ある工夫で深いネットワークは格段に速く学習できた——各値をそのバッチで判断するのだ。

ある工夫で深いネットワークは格段に速く学習できた——各値をそのバッチで判断するのだ。

深いネットワークを学習させると、内部を駆けめぐる数値は激しく揺れ動く——だから小さく慎重な一歩ずつしか進めなかった。バッチ正規化は奇妙な一手でこれを解いた。各値を単独ではなく、同じバッチの仲間と照らして判断するのだ。同じネットワークが突然、数倍速く学習し、はるかに深い塔が可能になった。
どの層も、じっとしていない標的から学ぶ羽目になる。

どの層も、じっとしていない標的から学ぶ羽目になる。

深いネットワークは積み重ねだ。どの層も、下の層が送り上げてくるものを読む。ところが学習は一歩ごとに下の層を揺らす——だから各層が見る数値の分布は絶えず漂い続ける。生乾きのコンクリートにレンガを積むように、一段積むたびに土台がまた動き、積み上げるどころか水平を取り直してばかりになる。
解決策——各値をバッチ全体と照らして採点する。

解決策——各値をバッチ全体と照らして採点する。

μB=1mi=1mxi,σB2=1mi=1m(xiμB)2,x^i=xiμBσB2+ε\mu_B = \frac{1}{m}\sum_{i=1}^{m} x_i, \qquad \sigma_B^2 = \frac{1}{m}\sum_{i=1}^{m}(x_i-\mu_B)^2, \qquad \hat{x}_i = \frac{x_i-\mu_B}{\sqrt{\sigma_B^2+\varepsilon}}
ならば数値を固定しよう。各特徴について、ミニバッチ全体の値を集め、バッチの平均を引き、ばらつきで割る。すると、どの特徴もゼロを中心に標準的な幅でそろって届く——もう乱高下はない。相対評価で採点するように、素点はそれだけでは意味が薄く、同じ試験を受けた全員と並べて初めて意味を持つ。
だがゼロと一に押し込めると、本物の信号まで捨ててしまう。

だがゼロと一に押し込めると、本物の信号まで捨ててしまう。

yi=γx^i+βy_i = \gamma\,\hat{x}_i + \beta
どの特徴も同じ形に平らにすると、ネットワークに必要な情報まで消えかねない。そこで特徴ごとに学習可能なつまみを二つ渡す。一つは幅を引き伸ばすもの、もう一つは中心をずらすもの——課題のためなら、この工程まるごとを打ち消すことさえできる。ガラス職人のように、まずすべてを均一に輝く一塊へ溶かし、その整った土台を望みどおりの形へと仕上げる。
いまや各値の運命は、同じバッチの仲間しだいだ。

いまや各値の運命は、同じバッチの仲間しだいだ。

μ^(1ρ)μ^+ρμB,σ^2(1ρ)σ^2+ρσB2,y=γxμ^σ^2+ε+β\hat{\mu} \leftarrow (1-\rho)\,\hat{\mu} + \rho\,\mu_B, \qquad \hat{\sigma}^2 \leftarrow (1-\rho)\,\hat{\sigma}^2 + \rho\,\sigma_B^2, \qquad y = \gamma\,\frac{x-\hat{\mu}}{\sqrt{\hat{\sigma}^2+\varepsilon}} + \beta
代償もある。平均はバッチから来るので、ある事例の出力は、いっしょに乗り合わせた他の事例しだいになってしまう。しかも本番では入力が一つだけかもしれない——平均を取るバッチがないのだ。解決策は、学習中にこっそり平均とばらつきの移動平均を貯めておき、独りのときはその固定した数値を使うこと。熟練のパン職人のように、ひと季節ぶんの焼きを重ねて窯の癖を覚えれば、たった一斤でも記憶だけで焼ける。
なぜ効くのかは、最初に語った筋書きではなかった。

なぜ効くのかは、最初に語った筋書きではなかった。

当初の触れ込みは、漂い続けるあの分布を止める、というものだった——さきほどの生乾きのコンクリートだ。のちの研究は反論した。より深い理由は、正規化が損失の地形をなめらかにすることにあり、おかげで勾配はおとなしいまま、大胆な大股も破綻しない。反った板にかんなをかけるように、小さく慎重な一削りを強いていた稜線を削り落とせば、どのひと削りも長く、確信を持って走る。
一つの発想、二つの双子——そしてなぜトランスフォーマーはもう一方を選んだのか。

一つの発想、二つの双子——そしてなぜトランスフォーマーはもう一方を選んだのか。

つまり手順は単純だ。整った土台へ平らにし、あとはネットワークに造り直させる。これだけで非常に深い視覚ネットワークが学習可能になった。だがバッチに頼るのが弱点だ——小さすぎたり偏ったりしたバッチは平均を毒する。バッチを捨て、代わりに各事例を、その事例自身の特徴にわたって正規化すれば、その双子であるレイヤー正規化が得られる——トランスフォーマーが回しているのはこちらだ。
🌱 周りの顔ぶれで判断される値——それは値の話か、それとも部屋の話か。

🌱 周りの顔ぶれで判断される値——それは値の話か、それとも部屋の話か。

学習のあいだ、まったく同じ値が、たまたま同じバッチに居合わせた事例しだいで違うふうに正規化される。その意味は、連れ合う顔ぶれとともにたわむ。私たちはモデルが各入力をそれ自身の中身で評価することを称える——なのにここでは、しばらくのあいだ、ある入力の運命は、ともに到着した群れしだいだった。文脈が判断を研ぎ澄ますのはいつで、文脈が判断をそっとすり替えるのはいつなのか。
タップ →↑スワイプで詳しく↓スワイプで終了