学習率スケジューリング(warmup と減衰)
学習率を時間とともに変える η(t) のスケジュールが、最適化の収束をどう変えるかを「スケジュール曲線」と「損失曲面上の軌跡」で対比します。
スケジュールの設定
0.45
30
240
ステップ t
—
現在の学習率 η(t)
—
フェーズ
—
損失 L(スケジュールあり)
—
損失 L(一定 η)
—
損失曲面(等高線)上の軌跡
緑=スケジュールあり / 赤=一定 η
学習率スケジュール η(t)(青)と損失 L(t)(緑=スケジュール / 赤=一定)
深層学習では、勾配降下のステップ幅にあたる学習率 η を学習中に変化させることが定石です。これを学習率スケジューリングと呼びます。
典型は2段構え。最初の数百ステップで η を 0 から ηmax まで直線的に上げるwarmup(初期の不安定さを抑える)と、その後 η を徐々に下げる減衰(decay)です。
減衰には、一定間隔で割り引く step、なめらかに下げる cosine、毎ステップ一定率を掛ける 指数(exponential) があります。スライダーと減衰方式を変え、軌跡が谷へ収束する様子を確かめましょう。
典型は2段構え。最初の数百ステップで η を 0 から ηmax まで直線的に上げるwarmup(初期の不安定さを抑える)と、その後 η を徐々に下げる減衰(decay)です。
減衰には、一定間隔で割り引く step、なめらかに下げる cosine、毎ステップ一定率を掛ける 指数(exponential) があります。スライダーと減衰方式を変え、軌跡が谷へ収束する様子を確かめましょう。
いま何が起きている?
ここがポイント
- warmup ── η を 0 から徐々に上げ、学習初期の大きな勾配による発散・振動を防ぐ。
- 減衰 ── 終盤に η を小さくすると、谷の底で行き過ぎず(オーバーシュートせず)滑らかに収束する。
- 一定学習率は谷の周りで振動して止まりにくい ── 軌跡の赤線が谷をまたいで跳ねるのが見える。
- 方式の違い ── step は階段状に急落、cosine はなめらかに 0 へ、指数は
η₀·γᵗで常に一定率で減少する。