【要約】学習率のwarmupは本当に訓練を安定させるのか。崩壊寸前のLRで20シード×3条件、実際に数えてみた [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
深層学習のエンジニアは、高い学習率を用いる際に訓練が発散するリスクに直面する。これに対し、warmupが有効であるという通説があるが、その実効性は定量的に検証されていなかった。
- ・高学習率設定における訓練の不安定性。
- ・warmupが初動の抑制に留まるのか、崩壊そのものを防ぐのかという不明瞭さ。
// Approach
著者は、warmupの効果を厳密に測定するため、あえて不安定になりやすいモデル構成と境界値の学習率を用いた実験系を構築した。
- ・モデル: BatchNorm等を除去した4層ReLU MLP。
- ・学習率: 崩壊率が約50%となる境界値(0.018)を採用。
- ・比較条件: warmupなし、linear warmup、cosine warmupの3条件。
- ・検証規模: 各条件につき20シードの訓練を実施。
// Result
20シードを用いた大規模な比較実験により、warmupが崩壊率に与える影響は極めて限定的であることが判明した。
- ・崩壊率: warmupなし(50%)、linear(60%)、cosine(55%)とほぼ同等。
- ・損失挙動: 訓練前半のピーク損失は抑制されるが、後半のピークには影響しない。
- ・結論: warmupは初動を和らげるが、高すぎる学習率という根本原因は解決しない。
Senior Engineer Insight
> 「初動さえ乗り切れば良い」という安易な設計思想への警鐘である。warmupは対症療法に過ぎない。モデルの構造的な脆弱性や、学習率設定の誤りという根本原因を覆い隠すリスクがある。スケーラビリティを求める大規模訓練では、warmupに頼るのではなく、BatchNorm等の正規化層の導入や、より堅牢なハイパーパラメータ探索を優先すべきだ。