どれだけ動かし、いつ止めるか ── 学習率と最適化
第1章から第3章で「どちらへ動かすか」は決まりました。残っているのは2つです。1回にどれだけ動かすか(学習率)と、いつ止めるか。
別々の問いに見えます。第1章では前者を、第2章では後者を、どちらも「第4章で」と預けました。預けた先で2つが同じ問いの裏表だったと分かる——それがこの章です。
1. 学習率には上限がある
更新則は
1次元の二次関数 で何が起きるか見ます。 なので、1回の更新は
毎回 倍されるだけです。 回後は 。これが0へ向かう条件は 、つまり
多次元では、曲がり方のいちばんきつい方向(ヘッセ行列の最大固有値 )が決めます。どの方向も発散しないためには 。 上限を超えた瞬間、その方向だけが増幅されて全体が壊れます。
第0部の第2章で使った で測ります。曲率は と なので上限は 。 から出発し、原点の半径 0.01 に入るまでの歩数です。
| 歩数 | |
|---|---|
| 0.01 | 688 |
| 0.05 | 135 |
| 0.10 | 66 |
| 0.18 | 35 |
| 0.19 | 44 |
| 0.199 | 459 |
| 0.1999 | 4603 |
| 0.2 | 届かない |
| 0.21 | 発散 |
最良は上限のかなり手前(0.18)で、そこから上限に近づくほど急に悪くなります。 で459歩、 で4603歩——崖から落ちる前に、すでに使い物になりません。
2. なぜ1つの歩幅が全部の方向に合わないのか
は全方向に同じ値が掛かりますが、方向ごとに曲率が違います。曲率 の方向は毎回 倍。
- を大きくすると、曲率の大きい方向が で振動し始める
- を小さくすると、曲率の小さい方向が でほとんど進まない
両方が釣り合う所が最良です。 を解くと
上の例では 。掃引で最小になったのは の35歩でした。縮小率 から歩数を見積もると ——実測と一致します。
を条件数といいます。 が大きいほど縮小率が1に近づき、何歩かけても進みません。学習率の選び方の難しさは、モデルの大きさではなく から来ています。
3. モーメンタム ── 往復を打ち消す
ジグザグは、毎回向きが反転する成分です。足し合わせれば消えます。
は前回までの向きをどれだけ引き継ぐか。反転する成分は打ち消し合い、同じ向きが続く成分(谷底へ下る向き)は積み上がります。
同じ問題で を固定して測ります。
| 0(なし) | 0.5 | 0.9 | 0.95 | 0.99 | |
|---|---|---|---|---|---|
| 歩数 | 135 | 59 | 92 | 160 | 678 |
で135歩が59歩に。ただし0.9以上では遅くなります。引き継ぎが強すぎると、曲がるべき所で曲がれず行き過ぎるからです。学習率と同じく、大きいほど良いではありません。
4. Adam ── 方向ごとに歩幅を変える
条件数の問題は「1つの を全方向に使う」ことから来ていました。なら方向ごとに変えればよい——勾配の2乗の移動平均で各成分を割ります。
( は初期値0の偏りを直した値。詳細は記事側に譲ります。)よく効く成分は が大きくなって歩幅が縮み、めったに動かない成分は歩幅が伸びます。
ただし、速さそのものは約束しません。 同じ問題で測ると、
| 手法 | 最良の設定 | 歩数 |
|---|---|---|
| 勾配降下 | 35 | |
| +モーメンタム | 59 | |
| Adam | 90 |
この問題では素の勾配降下がいちばん速い。 曲率が分かっていて を選べるからです。Adam の値打ちは速さではなく、曲率が分からない問題で、調整なしでもそこそこの所に行くことにあります。層ごとに勾配の大きさが桁で違う深いモデルでは、その「そこそこ」が効きます。
5. いつ止めるか ── 回数も容量のうち
第2章で、過学習の手当てとして早期終了を挙げました。「回数も容量の一種だから」と書いた所です。ここを測ります。
第2章と同じデータ(、、20件、15次)に、正則化をまったく掛けずに勾配降下を回し続けます。
| 回数 | 訓練 RMSE | テスト RMSE | |
|---|---|---|---|
| 10 | 0.4522 | 0.4468 | 1.07 |
| 100 | 0.2350 | 0.4575 | 2.67 |
| 1,000 | 0.1583 | 0.3224 | 4.45 |
| 1,370 | 0.1546 | 0.3140 | 4.74 |
| 10,000 | 0.1512 | 0.3320 | 5.38 |
| 100,000 | 0.1442 | 0.5057 | 11.06 |
| 300,000 | 0.1392 | 1.0069 | 20.76 |
訓練誤差は最後まで下がり続け、テスト誤差は で底を打って上がっていきます。第2章で次数を上げたときに見たU字が、ここでは回数で出ています。
右端の列に理由が書いてあります。 が回すほど伸びる。回数を制限することは、 を制限することだった。
同じデータに L2 正則化(第2章の式(3))を掛けて を掃くと、
| 最良の設定 | テスト RMSE | ||
|---|---|---|---|
| 早期終了 | 0.3140 | 4.74 | |
| L2 | 0.3068 | 4.53 |
底の高さが 0.0072 しか違わず、そのときの もほぼ同じ。 つまみは「回数」と「」でまったく別物なのに、やっていることが同じです。
よくある誤解: 「発散しないかぎり、学習率は大きいほど速い」
第1節の表をもう一度見てください。上限は です。
| 0.18 | 0.19 | 0.195 | 0.199 | 0.1999 | 0.2 | |
|---|---|---|---|---|---|---|
| 歩数 | 35 | 44 | 90 | 459 | 4603 | 届かない |
崖は にありますが、性能は からすでに落ち始めています。 は発散していません——ちゃんと収束します——が、最良の 131倍かかります。
理由は第2節の式(3)です。 を上げると最大曲率の方向が で負に近づく(振動する)。 では に近づき、縮小率が1に近づく=いつまでも減らない。最良は振動と鈍さが釣り合う であって、上限ではありません。
モーメンタムも同じ形です(第3節の表)。 は が最良で、 では678歩。「発散しない範囲でできるだけ大きく」はどちらのつまみでも誤りです。
演習
答えは閉じてあります。手を動かしてから開いてください。
演習1. 曲率が 、 の問題があります。(a) 発散しない の上限。(b) 最良の 。(c) そのときの縮小率と、誤差を にするのに要する歩数。
答えを見る
(a) 。 上限は最大曲率だけで決まります。
(b) 。 上限 のすぐ下です。条件数が大きいほど最良は上限に近づき、選び損ねたときの代償も大きくなります。
(c) 縮小率 、 歩。 条件数10の例(35歩)と比べると、 が10倍で歩数は約6.6倍。条件数は効きます。
演習2. 学習率を半分にしました。(a) 第5節の表で、テスト誤差が底を打つ回数はどう動きますか。(b) 底の高さは。(c) そこから言えることは。
答えを見る
(a) おおよそ2倍に増えます(右へ動く)。 1回あたりの進みが半分になるので、同じ場所に着くのに倍の回数が要ります。図の学習率スライダーを下げると、左の枠の底が右へ動くのが見えます。
(b) ほとんど変わりません。 着く先( がどこまで伸びたか)が同じなら、テスト誤差も同じです。
(c) 学習率は「どこに着くか」ではなく「何歩で着くか」を決めている(この設定では)。だから早期終了の効き目を学習率で代用することはできません。止める場所は別に決める必要があり、それを決めるのは検証データです(第2章)。
演習3. 損失が下がり続けているのに、検証誤差が上がり始めました。(a) 何が起きていますか。(b) 学習率を下げれば直りますか。(c) 打つ手を3つ。
答えを見る
(a) 過学習です。 訓練損失は最後まで下がる(第5節の表の左列)ので、訓練損失だけを見ていてはこの瞬間が分かりません。見るのは検証誤差の向きです。
(b) 直りません。 学習率は着く先ではなく速さを決めています(演習2)。下げればゆっくり同じ場所へ行くだけで、検証誤差が上がり始める点も遅れて現れます。
(c) ①検証誤差が底を打った所で止める(早期終了) ②L2 などの正則化を掛ける ③データを増やす/容量を下げる。 ①と②は第5節のとおりほぼ同じことをしています。③は第2章の表のとおり、より確実に効きます。
この章で言っていないこと
- 確率的勾配(ミニバッチ)の影響は入れていません。 この章の実測はすべて全データでの勾配です。ミニバッチの揺れ(第0部の第3章で測った )は、それ自体が正則化のようにはたらくと言われますが、ここでは測っていません。
- 学習率スケジュール(減衰・ウォームアップ・1サイクル)は「動く上限を追いかける仕掛け」と読めることを書いただけで、どれをいつ使うかは扱っていません。
- Adam のバイアス補正 の導出、 の意味、重み減衰との相性(AdamW)は記事側に譲りました。
- 「早期終了=L2」は厳密な等号ではありません。 二次近似のもとで対応が付く古典的な結果で、本文が示したのは1つの設定での実測が近いということです。非線形なモデルでそのまま成り立つとは書いていません。
- 本文の数値はすべて実際に計算して確かめています(学習率の掃引と の理論値との一致、縮小率から見積もった歩数 35 と実測 35 の一致、モーメンタムと Adam の掃引、早期終了の経過と L2 の掃引、両者の最良の比較)。
コメント
コメントにはログインが必要です