标准回答
问题根源
Adam 中常把 L2 正则实现为「在梯度里加上 λθ」。但 Adam 会用一阶矩 m 和二阶矩 v 对梯度做自适应缩放,于是 λθ 这一项也被 v 缩放——梯度历史大的参数,正则项被除得更小,相当于衰减更弱。结果是 L2 正则与权重衰减在 Adam 里不再等价,正则强度被自适应机制扭曲。
AdamW 的修正
AdamW(Decoupled Weight Decay)把权重衰减从梯度中解耦:自适应更新照常只作用于真实梯度,权重衰减则在参数更新时单独施加——直接对参数减去 lr·λ·θ。这样衰减对每个参数一致且可控,恢复了「权重衰减」的本意。
实践意义
AdamW 通常带来更好的泛化和更稳定的超参,是现代 Transformer 训练的事实标准。注意 weight decay 与 learning rate 此时应分别调节。
常见误区
⚠️ 常见踩坑
认为 L2 正则和权重衰减永远等价——只在 SGD 下等价,在 Adam 这类自适应优化器下两者不同,正是 AdamW 要解决的问题。
追问
追问 1:为什么 SGD 下 L2 正则等价于权重衰减?
SGD 更新为 θ ← θ - lr·g。若把 L2 项 λθ 加进梯度,更新变成 θ ← θ - lr·(g + λθ) = θ - lr·g - lr·λθ,后一项恰好就是权重衰减。因为没有自适应缩放,加进梯度和单独衰减完全等价。Adam 因为有逐参数的二阶矩缩放,破坏了这个等价关系。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。