动量法(Momentum)用历史梯度的指数加权和替代当前梯度做更新,模拟重球惯性:同向累加加速,震荡相互抵消。
动机
朴素梯度下降在”峡谷”形损失面上效率很低:两侧陡峭方向梯度大、来回震荡,谷底前进方向梯度小、进展缓慢。压小学习率能止震但更慢,放大学习率直接发散——单一学习率无法同时伺候两组方向。
更新公式
是历史梯度的指数加权和,展开:
- 持续同向的梯度分量被累加放大 → 加速穿越平坦区域
- 反复变号的震荡分量相互抵消 → 抑制横向震荡
物理直觉:重球滚过峡谷,两侧谷壁的反弹不改变总体趋势,惯性沿谷底方向越滚越快。
典型 ,权重衰减到 约需 步,等价于对最近约 10 步梯度做加权平均(详见 指数移动平均)。
Nesterov 动量(NAG)
先按惯性”前瞻”半步,再在前瞻点求梯度:
普通动量带着冲量撞向谷壁才反应;Nesterov 在接近极小点时能”提前刹车”。凸情形下 NAG 有更快理论收敛率,深度学习里收益不稳定但普遍不减。NAdam 即把 Nesterov 思想装进 Adam。
与 Adam 的关系
Adam 的一阶矩 就是动量的 EMA 写法( 对应 ,差一个 缩放常数)。Adam 在动量之外还用二阶矩对步长做参数级自适应缩放,见 Adam算法全解:从数学原理到工业界最佳实践。