Decoupled Weight Decay Regularization/zh
| Research Paper | |
|---|---|
| Authors | Ilya Loshchilov; Frank Hutter |
| Year | 2017 |
| Topic area | Machine Learning |
| Difficulty | Research |
| arXiv | 1711.05101 |
| Download PDF | |
《Decoupled Weight Decay Regularization》(解耦權重衰減正則化)是 Ilya Loshchilov 與 Frank Hutter 於 2017 年發表的論文,它揭示了 L2 正則化與真正的權重衰減(weight decay)在自適應梯度優化器中長期被忽視的不等價關係,並提出了一種簡單的修正方案。論文提出了 AdamW(以及其姊妹算法 SGDW),它是 Adam 的一個變體:權重衰減項直接作用於參數,而不是在自適應縮放之前併入梯度。AdamW 在很大程度上彌合了 Adam 與帶 momentum 的 SGD 在圖像分類任務上長期存在的泛化差距,並自此成為訓練大規模 transformer 及其他現代神經網絡事實上的標準優化器。
概述
在標準的隨機梯度下降中,向損失函數添加 L2 懲罰項 $ \tfrac{\lambda'}{2}\|\theta\|_2^2 $ 在數學上等價於在每一步將參數乘以 $ (1-\lambda) $,其中對於學習率 $ \alpha $ 有 $ \lambda' = \lambda/\alpha $。大多數深度學習庫利用了這一等價關係,僅通過將 $ \lambda \theta $ 加到梯度上來實現「權重衰減」。作者指出,一旦優化器以自適應方式重新縮放梯度,例如在 AdaGrad、RMSProp、Adam 或 AMSGrad 中,這種等價關係便會失效:正則項的梯度會與損失梯度一樣被同一個逐參數的分母所除,因此那些歷史更新幅度較大的權重,所獲得的正則化強度就低於真正的權重衰減所應給予的強度。
論文的核心提議是將衰減步驟從自適應更新中解耦:與其將 $ \lambda \theta $ 併入梯度,不如在 Adam 更新之後再將 $ \theta $ 乘以 $ (1-\eta_t \lambda) $。這就得到了 AdamW。在實驗中,AdamW (i)使最優權重衰減係數與最優學習率近似正交,並且 (ii)將 Adam 在 CIFAR-10、CIFAR-100 和 ImageNet32×32 上的泛化性能提升到與帶 momentum 的 SGD 相競爭的水平——而此前要達到這種效果通常需要根據具體問題在不同優化器之間切換。
主要貢獻
- 一項形式化分析,證明 L2 正則化與權重衰減僅在經過依賴於學習率的重參數化之後才對原始 SGD 等價,而對任何其預條件子 $ \mathbf{M}_t $ 不是單位矩陣的標量倍的優化器,二者並不等價。
- AdamW 與 SGDW 算法,將權重衰減從基於梯度的更新中解耦,並通過顯式的調度乘子 $ \eta_t $ 進行參數化。
- 一種「按尺度調整的 L2」詮釋:對一個具有固定對角預條件子的理想化自適應優化器而言,解耦的權重衰減等價於懲罰 $ \sum_i s_i \theta_i^2 $,從而對歷史梯度較大的參數施加更強的正則化。
- 實驗表明最優權重衰減會隨訓練預算的增加而減小,並提出啟發式公式 $ \lambda_{\text{norm}} = \lambda \sqrt{B/(BT)} $,按權重更新次數對 $ \lambda $ 進行歸一化。
- AdamWR / SGDWR 變體將解耦權重衰減與餘弦退火 warm restarts(SGDR)結合起來,既加快了收斂速度,又提升了最終精度。
- 在使用 26 2×96d ResNet 的 CIFAR-10 和 ImageNet32×32 上進行了大量消融實驗,覆蓋 100 至 1800 epoch 的訓練預算以及三種學習率調度方式。
方法
在 Hanson 與 Pratt(1988)提出的權重衰減原始形式中,參數按下式演化:
$ \theta_{t+1} = (1-\lambda)\,\theta_t - \alpha \nabla f_t(\theta_t), $
由此衰減的施加獨立於優化器的梯度步驟。然而大多數現代庫會把它併入損失函數,寫作 $ f_t^{\text{reg}}(\theta) = f_t(\theta) + \tfrac{\lambda'}{2}\|\theta\|_2^2 $,並讓優化器自動求導;對於普通 SGD,只要 $ \lambda' = \lambda/\alpha $,這種做法就能復現原始的更新公式。
對一個迭代為 $ \theta_{t+1} = \theta_t - \alpha \mathbf{M}_t \nabla f_t(\theta_t) $ 的優化器,作者證明:只要 $ \mathbf{M}_t \neq k\mathbf{I} $,便不存在任何 $ \lambda' $ 的取值能使 L2 正則化優化等同於權重衰減優化,因為 $ \mathbf{M}_t $ 會同時對正則項和損失項進行重新縮放。Adam 的對角預條件子 $ \hat{v}_t^{-1/2} $ 正好屬於這種情形。
SGDW 將 SGD-with-momentum 循環的第 9 行替換為
$ \theta_t \leftarrow \theta_{t-1} - m_t - \eta_t \lambda \theta_{t-1}, $
這樣衰減項就置於動量緩衝之外。AdamW 將 Adam 的參數更新式替換為
$ \theta_t \leftarrow \theta_{t-1} - \eta_t\!\left( \alpha\,\hat{m}_t / (\sqrt{\hat{v}_t}+\epsilon) + \lambda\,\theta_{t-1} \right), $
其中 $ \eta_t $ 是全局調度乘子(可為常數、階梯衰減或餘弦退火)。當 $ \eta_t $ 採用 SGDR 的帶 warm restarts 的餘弦調度時,所得的優化器被稱為 AdamWR(其 SGD 對應版本則稱為 SGDWR);在適當的情況下,restart 還會重置歸一化狀態。
為使不同訓練預算下的超參數具有可比性,論文引入了一種歸一化權重衰減 $ \lambda_{\text{norm}} $,將其與權重更新總次數 $ BT $ 以及 batch size $ B $ 關聯起來;這一做法源自一項實證觀察:原始最優 $ \lambda $ 會隨訓練預算的增長而減小。
結果
在 CIFAR-10 上使用一個 26 2×96d 的 ResNet 訓練 100 epoch 時,AdamW 達到約 5.0 % 的測試誤差,而原始 Adam 配 L2 正則化約為 6.0 %——相對提升約 15 %。SGDW 與精心調參的 SGD-with-L2 表現基本相同,但其超參數地形要簡潔得多:在 $ (\alpha, \lambda) $ 上的熱圖中,L2 正則化優化器呈現等性能的對角「山谷」,而解耦變體則呈現近似與坐標軸對齊的盆地,這證實了解耦使兩個超參數近似可分離。
在 ImageNet32×32 上,AdamW 在所有測試的訓練預算下都比 Adam-with-L2 取得更高的 top-1 和 top-5 精度。加入餘弦退火後,Adam 與 AdamW 都進一步獲得提升,而帶 warm restarts 的 AdamWR 與採用固定調度的 AdamW 相比可達到相當甚至更高的精度,並能在中間快照處以更短的 wall-clock 時間達到具競爭力的精度。SGDWR 相對於 SGDW 也呈現同樣的規律。
論文還報告:最優權重衰減隨訓練預算的增加而呈可預測地減小——更長的訓練調度需要更小的 $ \lambda $,所提出的歸一化參數化 $ \lambda_{\text{norm}} $ 在不同預算之間遷移得相當好,從而降低了網格搜索的成本。
一個更微妙的發現是:在 Adam 中將權重衰減與損失端的 L2 項綁定的常見做法,對梯度稀疏或量級較小的參數是有害的——這些參數實際上被欠正則化,而歷史梯度較大的參數則相對於使用者所期望的 $ \lambda $ 被過度正則化。AdamW 去除了這種隱式的逐參數重新縮放,使整個網絡恢復一致的收縮力度,從而使權重衰減掃描的結果更具可解釋性。
作者還進一步驗證:AdamW 的提升並非源於隱式學習率的變化——他們對兩種變體分別獨立調優了 step size,並表明 AdamW 在整個二維 $ (\alpha, \lambda) $ 網格上都優於 Adam-with-L2,而不僅僅在某個最優點上占優。
影響
AdamW 已成為當代深度學習中相當大一部分工作的標準優化器,尤其是在語言和視覺領域的 transformer 上。主流框架都內置了原生實現(PyTorch 自 1.2 起提供 torch.optim.AdamW,TensorFlow/Keras 提供 tf.keras.optimizers.AdamW),它也是 Hugging Face Transformers、timm 等流行訓練棧的默認優化器。從業者通常會以較小的權重衰減係數(常在 0.01 到 0.1 左右)配合餘弦或帶 linear-warmup 的學習率調度來調優 AdamW,這與 AdamWR 的配方思路相一致。
除了工程實踐方面的影響之外,這篇論文還塑造了深度學習研究中討論正則化的方式:「真正的權重衰減」與「作為損失懲罰的 L2」之間的區分已成為標準術語,此後關於優化器設計的工作——例如 LAMB、AdaFactor 與 Lion——都會顯式地考慮是否以及如何將權重收縮與自適應縮放解耦。論文中關於超參數歸一化的論證也影響了後續關於學習率、權重衰減與 batch size 如何共同決定大批量訓練隱式正則化的研究。
一個常見的延伸問題是:是應當對所有參數一視同仁地施加權重衰減,還是排除 bias、layer-norm 的縮放項以及 embedding 表。解耦原則本身並不能回答這個問題,它只是明確:無論做出何種選擇,AdamW 都會精確地按照該選擇執行,而不會被自適應縮放扭曲。大多數現代訓練配方都在 AdamW 之上採用「對除歸一化層和 bias 之外的所有參數施加衰減」這一約定。
這篇 2017 年的論文最終作為會議論文發表於 ICLR 2019,作者提供的 AdamW、SGDW、AdamWR 和 SGDWR 參考實現至今仍是評估新型自適應優化器和正則化方案的標準基準。
參見
- Adam
- Stochastic gradient descent
- Regularization (mathematics)
- Tikhonov regularization
- Hyperparameter optimization
- Deep learning
- Neural network
參考文獻
- Loshchilov, I., & Hutter, F. (2017). Decoupled Weight Decay Regularization. arXiv:1711.05101. 發表於 ICLR 2019。
- Hanson, S. J., & Pratt, L. Y. (1988). Comparing biases for minimal network construction with back-propagation. Advances in Neural Information Processing Systems 1.
- Kingma, D. P., & Ba, J. (2014). Adam: A Method for Stochastic Optimization. arXiv:1412.6980.
- Loshchilov, I., & Hutter, F. (2016). SGDR: Stochastic Gradient Descent with Warm Restarts. arXiv:1608.03983.
- Wilson, A. C., Roelofs, R., Stern, M., Srebro, N., & Recht, B. (2017). The Marginal Value of Adaptive Gradient Methods in Machine Learning. arXiv:1705.08292.
- Reddi, S. J., Kale, S., & Kumar, S. (2018). On the Convergence of Adam and Beyond. ICLR 2018.
- 原始碼:github.com/loshchil/AdamW-and-SGDW。