學習率預熱(Learning Rate Warmup)是什麼?

訓練初期逐漸增加學習率,避免初始化不佳導致的訓練不穩定,通常在前幾個 epoch 內從 0 線性增加到目標值。|本頁含完整原理、應用場景、iPAS 考試重點與 3 個常見問答。

英文
Learning Rate Warmup
主題標籤
模型訓練、最佳化、神經網路
考點定位
非 iPAS 核心術語
最後更新
2026/06/22
學習率預熱(Learning Rate Warmup)是什麼? 模型訓練最佳化
術語快查

搜尋意圖: 如果你在找「學習率預熱 是什麼」或「學習率預熱 和相近概念差在哪」,先看這頁的短定義、完整說明與延伸比較。

TL;DR: 訓練初期逐漸增加學習率,避免初始化不佳導致的訓練不穩定,通常在前幾個 epoch 內從 0 線性增加到目標值。

實用情境: 適合用在閱讀 AI 文章、產品文件或和同事討論時,先用一頁快速對齊概念。

下一步: 先讀完定義,再往下看延伸比較與對應工具,把概念轉成實際應用。

訓練初期逐漸增加學習率,避免初始化不佳導致的訓練不穩定,通常在前幾個 epoch 內從 0 線性增加到目標值。

核心概念

Learning Rate Warmup 的核心思想是:在訓練初期,模型的梯度估計可能不夠準確,過大的學習率會導致參數劇烈波動,造成訓練不穩定。通過在初期使用較小的學習率,讓模型有機會逐漸調整,梯度估計逐漸變得更可靠,然後再過渡到完整的學習率。

預熱通常與其他學習率衰減策略(如 cosine annealing)結合使用。標準的設定是:在前 k 個訓練步驟中,學習率從 0 線性增加到目標值 η;之後按計劃衰減目標值。

運作原理

Learning Rate Warmup 的實現有多種方式:

  1. 線性預熱:設定預熱步數 w,在前 w 步內,學習率 = (step / w) * η
  2. 指數預熱:學習率 = η * (base ^ step),其中 base 略大於 1
  3. 平方根預熱:學習率 = η * sqrt(step / w)

最常見的是線性預熱。舉例:如果總訓練 100000 步,預熱 4000 步,目標學習率 0.001,那麼:

  • 步驟 0:lr = 0
  • 步驟 1000:lr = 0.00025
  • 步驟 2000:lr = 0.0005
  • 步驟 4000:lr = 0.001
  • 步驟 5000 及之後:按衰減計劃調整

預熱不是替代優化器的調度(schedule),而是在優化器調度前面進行的前置處理。許多實現中,預熱和衰減是兩個獨立的過程:先預熱到目標值,再按衰減計劃(如 cosine annealing)調整。

實際應用

Learning Rate Warmup 在大規模深度學習訓練中已成為標準做法。在 Transformer 模型訓練中(包括 BERT、GPT 等),預熱是必要的。Google 的論文建議針對 Transformer 使用預熱,發現 4000 步的預熱能穩定大規模模型訓練。

在分布式訓練中,預熱特別重要。初期的大批次梯度估計方差大,預熱讓所有工作節點有時間同步訓練狀態。許多分布式框架(如 Horovod)都內建預熱支持。

ResNet 等深層卷積網路的訓練也常用預熱。在 ImageNet 分類中,一個 warmup epoch(或前 5 個 epoch 的漸進式預熱)能顯著改善最終準確度。

遷移學習中,預熱也很有用。當用預訓練權重初始化時,較小的初始學習率和預熱能防止過度調整預訓練特徵。

常見誤區

誤區一:認為預熱步數越多越好。過長的預熱會浪費訓練時間,因為在這段期間模型的實際學習進度較慢。預熱步數應與總訓練步數成比例,通常為 5-10%。

誤區二:誤認為預熱是解決所有訓練不穩定問題的方案。預熱只適用於初期不穩定,如果是梯度爆炸或消失,可能需要梯度剪裁或不同的初始化策略。

誤區三:使用預熱而忽視其他超參數調整。預熱有效的前提是其他超參數(如基礎學習率、批量大小、最佳化器選擇)都相對合理。

與相關技術的比較

  • Learning Rate Warmup vs 梯度剪裁:梯度剪裁通過限制梯度大小來穩定訓練,而預熱通過逐漸增加學習率來穩定。兩者可以結合使用,處理不同的不穩定來源。

  • Learning Rate Warmup vs 批量歸一化:批量歸一化(Batch Normalization)也能穩定訓練初期的梯度,但兩者原理不同。BN 是在網路內部進行,預熱是在最佳化層面。現代模型通常結合使用。

  • Learning Rate Warmup vs Cosine Annealing:預熱和 cosine annealing 通常結合,預熱在初期逐漸增加學習率,annealing 在後期逐漸減小。他們作用於訓練的不同階段。

  • Learning Rate Warmup vs Learning Rate Decay:預熱是初期增加過程,衰減是後期遞減過程。預熱之後通常跟著衰減,兩者組成完整的學習率時間表。

常見問題

預熱步數應該如何確定?

預熱步數應基於總訓練步數和問題特性。常見經驗法則是總步數的 5-10%。例如,若訓練 100 個 epoch,批量大小 256,數據集 100 萬張圖片,總步數約 390625,預熱約 20000 步(5%)。對於小數據集或簡單任務,預熱可更短;對於大規模 Transformer,可能需要更長預熱(4000-10000 步)。應通過驗證集表現調整。

預熱可以應用於所有最佳化器嗎?

是的,預熱與最佳化器的選擇(SGD、Adam、RMSProp 等)正交。無論使用何種最佳化器,預熱都可以應用。不過,不同最佳化器可能對預熱的敏感度不同。Adam 等自適應學習率優化器可能對預熱的需求稍弱,但在大規模訓練中仍然有益。

預熱期間是否應該同時應用學習率衰減?

標準做法是在預熱期間不應用衰減,只進行線性增加。預熱完成後再開始應用主衰減計劃(如 cosine annealing)。這樣的分離使得兩個過程各司其職:預熱負責穩定初期,衰減負責長期學習率調度。混合預熱和衰減會使訓練曲線複雜,不利於調試。