Decoupled Weight Decay Regularization/zh

    From Marovi AI
    This page is a translated version of the page Decoupled Weight Decay Regularization and the translation is 100% complete.
    Other languages:
    SummarySource
    Research Paper
    Authors Ilya Loshchilov; Frank Hutter
    Year 2017
    Topic area Machine Learning
    Difficulty Research
    arXiv 1711.05101
    PDF 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 参考实现至今仍是评估新型自适应优化器和正则化方案的标准基准。

    参见

    参考文献

    • 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