詳細解釋
AdamW(Adam with Weight Decay)是Adam優化器的改進版本,正確實現了權重衰減(Weight Decay),解耦了L2正則化和梯度更新,是深度學習訓練的標準選擇。
與Adam的關鍵區別:
- Adam:L2正則化與梯度更新耦合,效果不佳
- 權重衰減也被自適應學習率縮放影響
- AdamW:解耦權重衰減和梯度更新
- 權重衰減直接應用於參數,不受自適應學習率影響
數學差異:
- Adam的L2:梯度 = 梯度 + λ × 權重
- AdamW的權重衰減:權重 = 權重 - η × λ × 權重(獨立步驟)
為何AdamW更好:
- 正確的正則化:權重衰減真正實現參數懲罰
- 泛化提升:驗證集性能通常優於Adam
- 訓練穩定:避免Adam的權重衰減問題
- 最佳實踐:大型語言模型 (大語言模型 / 大模型)、Vision Transformer的首選
典型超參數:
- 學習率:1e-5 到 1e-3
- β1:0.9(一階矩衰減)
- β2:0.999(二階矩衰減)
- ε:1e-8
- 權重衰減(λ):0.01-0.1
應用場景:
- BERT (雙向編碼器表示)、GPT (生成式預訓練變換器)等預訓練
- 計算機視覺:圖像分類、檢測、分割
- 推薦系統:深度推薦模型
- 幾乎所有現代深度學習任務
使用建議:
- 默認使用AdamW而非Adam
- 權重衰減通常設為0.01
- 學習率通常比Adam設置更小
- PyTorch (Torch Compile) 1.2+內建AdamW
AdamW是Adam的標準替代品。