第 15 题:权重衰减(Weight Decay)与 L2 正则化在 Adam 优化器中的不等价性?
题目
权重衰减(Weight Decay)与L2正则化在Adam优化器中的不等价性?
完整讲解
一、在 SGD 中的等价
SGD 更新:$\boldsymbol{w} \leftarrow \boldsymbol{w} - \eta (\nabla \mathcal{L} + \lambda \boldsymbol{w}) = (1-\eta\lambda)\boldsymbol{w} - \eta \nabla \mathcal{L}$。这里「损失里加 L2 惩罚 $\frac{\lambda}{2}|\boldsymbol{w}|^2$」与「更新时额外减 $\eta\lambda \boldsymbol{w}$(即 weight decay)」数学上等价,都是每步先缩放再减梯度。
二、在 Adam 中的不等价
Adam 先算一阶矩 $m$、二阶矩 $v$,再做 $w \leftarrow w - \eta \cdot m/\sqrt{v}$。若把 L2 写进损失,梯度变成 $\nabla \mathcal{L} + \lambda w$;该加项会进入 $m$ 和 $v$ 的指数移动平均,被 $v$ 除之后,对 $w$ 的衰减效果与「每步直接减 $\eta\lambda w$」不同:
- L2 进损失:正则项参与梯度、被 Adam 的 $m/v$ 机制调制,衰减强度依赖历史梯度,大梯度维度衰减弱、小梯度维度衰减强,与 SGD 下「各维度同比例衰减」不一致。
- 解耦的 Weight Decay:在应用 $m/\sqrt{v}$ 更新之后,再单独做 $w \leftarrow (1-\eta\lambda) w$(或等价的 $w - \eta\lambda w$),即 AdamW。这样衰减与梯度解耦,行为更接近「真正的 L2 正则」,效果通常更好、调参更直观。
三、结论
- 在 Adam 中:L2 写在损失里 ≠ 解耦的 weight decay;推荐用 AdamW(解耦 weight decay)。
- 不等价原因:L2 进损失后会被 $m,v$ 的 EMA 改变各维度的有效衰减率。
面试要点
- SGD 下:L2 正则与 weight decay 等价(都是每步先乘 $(1-\eta\lambda)$ 再减梯度)。
- Adam 下:L2 进损失会被 $m,v$ 调制,与解耦的 weight decay 不等价;AdamW 解耦后更稳、更易调。
记忆要点
- SGD:L2 = weight decay(等价)。Adam:L2 进损失 ≠ 解耦 decay;用 AdamW 解耦。