Adam 为每个参数维护两个动量估计:一阶矩 m(梯度均值,类似动量)和二阶矩 v(梯度平方均值,刻画梯度尺度),均用指数滑动平均 m=β₁m+(1−β₁)g、v=β₂v+(1−β₂)g²,并做偏差修正除以 (1−βᵗ)。更新量为 lr·m̂/(√v̂+ε),实现逐参数自适应学习率:梯度大且稳定的参数步长自动变小,稀疏梯度参数步长相对更大。默认 β₁=0.9、β₂=0.999。

AdamW 的改进:Adam 中 L2 正则项混在梯度里,会被自适应缩放扭曲,等效权重衰减不一致;AdamW 把权重衰减从梯度更新中解耦,更新后单独执行 w -= lr·λ·w,正则效果与自适应机制互不干扰。实验证明 AdamW 泛化明显更好,如今是训练 Transformer/LLM 的默认优化器。

易错点:以为 AdamW 只是实现细节差异;忽略其显存开销(m、v 两个状态使优化器显存为参数的 2 倍)。追问方向:为什么大模型训练时 β₂ 有时调成 0.95?