みんなのAI
機械学習プレイグラウンド
読み込み中…

学ぶ

Ch.03

学習率スケジューリング:時に応じて速度を落とす

山頂から谷底へ、目隠しをして下ると想像してください。最初は大きな歩幅で一気に下るのが効率的です。しかし底に近づくと、同じ大きな歩幅のままだと最小値を飛び越え、反対側の斜面を上り下りしながらぐるぐる回ることになります。
Ch.02のオプティマイザが「どちらへ歩くか」のコンパスなら、Ch.03の学習率スケジューラは「いつ歩幅を狭めるか」を決めるブレーキとアクセルです。初めは広い歩幅で地形を探索し、目的地に近づくほど小さく精密に着地させ、モデルの潜在力を引き出す実戦的な速度調整を学びます。
Ch.02 オプティマイザ=コンパス(方向)、Ch.03 スケジューラ=ブレーキ・アクセル(歩幅)。学習率曲線の比較です。
epoch →η
固定StepCosineWarmup+Cosine
固定→Step→Cosine→Warmup+Cosineを順に表示。点が曲線を動き今の歩幅を示します。

一歩の順序:誤差確認 → 一歩 → 次の歩幅

スケジューラが毎エポック(ステップ)次の歩幅を決める

  • ① 固定学習率 — 終始同じ歩幅。終盤に最小値を飛び越える可能性
  • ② Step decay — 30・60・90階のように決まったエポックで一気に減速
  • ③ Cosine — 滑らか減速。長い学習・文章AIでよく使う
  • ④ Warmup+Cosine — 予熱後に滑らか減速。Ch.02 オプティマイザと相性◎

学習率スケジューリング:時に応じて速度を落とす

1. 学習率スケジューリングとは?(固定歩幅の罠)
概念: Ch.02 オプティマイザが方向を決めれば、スケジューリングは歩幅(学習率 η\etaη)を時間に応じて変えます。各ステップで ηt\eta_tηt​ が変わり、一歩の大きさが変わります。
比喩: 序盤は大通りを大股で、谷底付近は小さく精密に歩く。最初から最後まで固定 η\etaη だと、序盤は遅く、終盤は最小値を飛び越えて振動し続けます。
実践: Ch.02 で方向を決めたら、Ch.03 は時間軸の歩幅設計。メモに「歩幅・誤差」を一緒に書くと、減速タイミングと成績の関係が一目で分かります。
2. 段階的減衰:ガクッとブレーキ
概念: 指定区間ごとに η\etaη を一気に下げ、多くは ×0.1(γ\gammaγ)。30・60・90 など複数の時点で減衰。
比喩: エレベーターが決まった階で速度を落とすイメージ。「いつ」下げるかだけ決めれば、あとはスケジューラ任せ。
実践: 画像分類のように長く学習するときによく使います。γ\gammaγ が小さすぎ・早すぎ → 学習不足。減衰回数・タイミングをメモしましょう。
3. 滑らか減速とウォームアップ:予熱
概念: コサイン減速は η\etaη を滑らかに減らし後半の微調整に有利。ウォームアップは序盤だけ 0→目標へゆっくり上げ、大きな初期 η\etaη の衝撃を和らげます。
比喩: コサイン=ジェットコースター停止、ウォームアップ=寒い朝のエンジン予熱。
実践: 文章AI・画像AI など大きなモデルでは 予熱 + 滑らか減速 が多い。予熱は全体の 5〜10% 程度。Ch.02 オプティマイザと組み合わせると序盤の誤差の暴れを抑えやすい。
4. 成績ベース減衰(Plateau)と OneCycle
概念: Plateau はテスト成績(検証損失・精度)を見る。patience 区間改善なしで η←factor⋅η\eta \leftarrow \text{factor}\cdot\etaη←factor⋅η(例 0.1)。OneCycle は短期間に η\etaη を上げてから下げる一サイクル戦略。
比喩: Plateau=渋滞時だけナビが減速、OneCycle=短距離スプリント後に滑らか停止。
実践: データ・モデル規模が不明なら Plateau が安全。OneCycle は短い練習向け。Ch.02 オプティマイザと「方向+速度」が揃います。

スケジューラ早見表

Step / MultiStep — N 区間(時点)ごとに η←γ⋅η\eta \leftarrow \gamma \cdot \etaη←γ⋅η。γ\gammaγ は多く 0.1。長い学習でよく使う段階減衰。
Cosine Annealing — ηt=ηmin⁡+12(ηmax⁡−ηmin⁡)(1+cos⁡πtT)\eta_t = \eta_{\min} + \frac{1}{2}(\eta_{\max}-\eta_{\min})(1+\cos\frac{\pi t}{T})ηt​=ηmin​+21​(ηmax​−ηmin​)(1+cosTπt​)。滑らか減速。
Warmup — 序盤 sss ステップで η≈sSηtarget\eta \approx \frac{s}{S}\eta_{\text{target}}η≈Ss​ηtarget​ とゆっくり上昇。大モデル序盤の誤差の暴れを和らげる。
ReduceLROnPlateau — patience エポック改善なしで η←factor⋅η\eta \leftarrow \text{factor}\cdot\etaη←factor⋅η。「詰まったときだけ」ブレーキ。

なぜ重要か

1. 同じ学習時間でより良い結果
適切なスケジュールは同じ時間でも誤差↓・精度↑をもたらすことが多いです。後半に減速すると精密着地できます。
2. Ch.02 オプティマイザの“半分”を完成
オプティマイザは方向と歩幅を調整しますが、時間で全体歩幅を縮めるのはスケジューラ。予熱なし+大初期 η\etaη → 誤差爆発;終盤減速なし → 最小値周辺を永遠にグルグル。
3. 成績が伸びないとき最初に見るグラフ
歩幅(LR)グラフが 完全平坦(━) → スケジュール更新漏れ・タイミング誤り;早すぎる急降下 → 学習不足;高止まり → 終盤振動。Ch.02 の lr・オプティマイザと最初に確認。

どう使うか

① 序盤・中盤・終盤 — 歩幅は変える
町探訪の「大通り→路地→玄関一歩ずつ」。学習も 探索→収束→着地 の3幕。序盤大 η\etaη で広く探し、中盤からブレーキ、終盤小 η\etaη で仕上げ。スケジューラは今どの幕かを教えるタイマー。
② 性格の違うスケジューラ — 用途で選ぶ
Step=決まった時点で一気減速(長い学習)。Cosine=滑らか終盤(文章AIなど)。Warmup=序盤予熱(大規模モデル)。Plateau=成績停滞時のみ。OneCycle=短い練習用。
③ 一歩の黄金順序 — 順番が狂うとスケジュールが効かない
① 誤差・損失で坂の急さを確認 → ② Ch.02 オプティマイザで一歩 → ③ スケジューラで次の歩幅。 Plateau は検証成績が伸びないときだけブレーキ。
④ 学習率と損失グラフを一緒に
損失が停滞したあと歩幅を下げた瞬間に一気に下がれば成功。早すぎる減速は学習不足。
症状別: 序盤誤差暴れ → Warmup;終盤ジグザグ → Cosine/Step/Plateau;LR 平坦 → スケジュール更新確認。メモを残す。

まとめ

一行: 学習率スケジューリングは歩幅(η\etaη)を調整し、序盤探索と終盤精密着地を両立します。
主要スケジューラ: Step、Cosine、Warmup、Plateau、OneCycle — 場面に応じて選択。
点検(症状→優先確認)
- 序盤誤差暴れ:歩幅を下げる、Warmup
- 終盤ジグザグ・未収束:Cosine/Step/Plateau、γ\gammaγ、patience
- LR 平坦(━):スケジュール更新漏れ・区間の混同
- 成績のみ停滞:Plateau、データ・モデル設定
チューニング順: 1) 誤差・歩幅メモ → 2) 基本歩幅・Warmup → 3) Ch.02 オプティマイザ → 4) スケジュール → 5) 一度に一変数
Ch.02 オプティマイザ(コンパス) + Ch.03 スケジューラ(ブレーキ・アクセル) = 実務標準。

問題の解き方

学習率スケジューリングは Ch.02 オプティマイザの方向に沿って歩幅を時間・成績で変えます。Step段階減衰、Cosine滑らか減速、Warmup序盤のみ歩幅上げ、Plateauは成績停滞時のみ。順序は誤差確認→一歩→次の歩幅、Plateauは検証指標も参照。序盤誤差暴れ→Warmup、終盤ジグザグ→Cosine/Step/Plateau、LR平坦→スケジュール更新漏れ。
例(定義)
"段階減衰でN区間ごとにη\etaηに掛ける係数の名前は?
① patience
② gamma
③ beta"
減衰係数は γ\gammaγ(gamma) である。 → 答え2

例(応用)
"文章AI学習序盤で誤差が不安定。Ch.02 オプティマイザと一緒に先に検討する組み合わせは?
① 予熱 + 滑らか減速
② η\etaηを無限増加
③ スケジューラ削除のみ"
序盤の不安定さ → 予熱 + 滑らか減速 を優先検討。 → 答え1

例(計算)
η0=0.1\eta_0=0.1η0​=0.1, γ=0.1\gamma=0.1γ=0.1, Step減衰 2回 後の η\etaη(×1000, 整数)は?
0.1×0.12=0.0010.1 \times 0.1^2 = 0.0010.1×0.12=0.001 → ×1000 = 1。 → 答え1
定義例 — "Warmupの主な目的は?
① データ拡張
② 序盤の大きな学習率による不安定の緩和
③ 重み0" → Warmupは序盤にη\etaηをゆっくり上げて衝撃を和らげる。 答え2

真偽例 — "ReduceLROnPlateauは検証指標を見る。" → 正しい。 答え1

応用例 — "検証損失が5エポック連続で改善しない" → Plateauは検証停滞時に介入する。 答え1

選択例 — "終盤の滑らかな減速に近いのは?
① StepLRのみ
② CosineAnnealing" → Cosineはcos曲線で滑らかに減速する。 答え2

概念例 — "Ch.02 オプティマイザ + Ch.03 スケジュールの組み合わせが多い理由?
① 方向決定と時間別歩幅調整が相補的
② 逆伝播の代替" → オプティマイザとスケジューラは相補関係。 答え1

計算例 — "サンプル128、バッチ32のとき1エポックのステップ数(整数)?" → 128/32=4128/32=4128/32=4。 答え4