0. 前言#
在 上一篇 Blog 中探讨了 L1 Regularization 和 L2 Regularization. 我们说到: 对损失函数添加 L2 Regularization , 最后对 w 使用梯度下降的时候, 实际是对 w 做了权重衰减.
然而, 上述等价性只在优化器为随机梯度下降(SGD)时成立(下边我们会证明). 在其他情况下, 特别是在训练深度学习模型时, 经常使用Adam优化器 , 上述结论不成立.
本篇 Blog 主要探讨在使用 Adam 的时候 Weight Decay 和 L2 Regularization 的关系, 以及当更新参数引入 momentum之后他们之间的关系 , 最后介绍 AdamW 优化器. 文中符号都尽量与 AdamW paper 中的一致.
NOTE阅读前, 需要你 : 有高数基础知识, 线代基础知识, 当然还要有 ML和 DL 的知识背景.
1. SGD场景下#
1.1 无 momentum#
weight decay 的公式:
θt+1=(1−λ)θt−α∇ft(θt)这里 α 是学习率 , λ 是 weight decay 的系数. 如果对损失函数施加 L2 Regularization :
ftreg(θ)=ft(θ)+2λ′∥θ∥22使用梯度下降:
θt+1=θt−α∇ftreg(θt)=θt−α∇ft(θt)−αλ′θt=(1−αλ′)θt−α∇ft(θt)如果想让 weight decay 和 带L2 Regularization 等价 , 则应有
αλ′=λ
, 显然对于SGD我们可以做到这个事情. 也就是说 在SGD优化器下, weight decay 和 带L2 Regularization 等价. 不过有个问题, 假设我们存在一个最优的weight decay系数 λ , 并且置了 L2 的系数
λ′
, 这样就会把系统的学习率给固定了. 换句话说, 这时 weight decay 的系数 和 L2 Regularization 的系数是耦合的. 二者会相互影响.
1.2 添加 momentum#
如果在 L2 Regularization 的基础上添加 momentum 项
gt=∇ft−1(θt−1)+λ′θt−1mt=β1mt−1+gtSGD with momentum and weight decay (L2 Regularization) 式子将会变为:
θt=θt−1−αmt=θt−1−α(β1mt−1−∇ft−1(θt−1)−λ′θt−1)=weight decay(1−αλ′)θt−1−gradient descentα∇ft−1(θt−1)−momentumαβ1mt−1这里, 学习率 α 和 L2 Regularization 的系数还是耦合, 并且还和 momentum 的系数也耦合上了.
WARNING耦合归耦合, 但是该说不说, 在SGD场景下, Weight Decay == L2 Regularization 是可以成立的. 无论加不加 momentum
2. Adam场景下#
这里就不敲公式了,给出 AdamW paper 附录的证明.

我们知道, 在 Adam 优化器中, 学习率是自适应变化的, 上图中 Mt 就表示给学习率乘的自适应系数矩阵. 要想
λθt=αλ′Mtθt就必须让
λ=αλ′Mt其中 λ ,α ,λ′ 三兄弟都是常数, Mt 又是自适应系数, 显然是不能实现上边的目标的,
WARNING因此对于类似 Adam 这种自适应学习率的算法, Weight Decay = L2 Regularization . 无论加不加 momentum