动量法(Momentum)用历史梯度的指数加权和替代当前梯度做更新,模拟重球惯性:同向累加加速,震荡相互抵消。

动机

朴素梯度下降在”峡谷”形损失面上效率很低:两侧陡峭方向梯度大、来回震荡,谷底前进方向梯度小、进展缓慢。压小学习率能止震但更慢,放大学习率直接发散——单一学习率无法同时伺候两组方向。

更新公式

是历史梯度的指数加权和,展开:

  • 持续同向的梯度分量被累加放大 → 加速穿越平坦区域
  • 反复变号的震荡分量相互抵消 → 抑制横向震荡

物理直觉:重球滚过峡谷,两侧谷壁的反弹不改变总体趋势,惯性沿谷底方向越滚越快。

典型 ,权重衰减到 约需 步,等价于对最近约 10 步梯度做加权平均(详见 指数移动平均)。

Nesterov 动量(NAG)

先按惯性”前瞻”半步,再在前瞻点求梯度:

普通动量带着冲量撞向谷壁才反应;Nesterov 在接近极小点时能”提前刹车”。凸情形下 NAG 有更快理论收敛率,深度学习里收益不稳定但普遍不减。NAdam 即把 Nesterov 思想装进 Adam。

与 Adam 的关系

Adam 的一阶矩 就是动量的 EMA 写法( 对应 ,差一个 缩放常数)。Adam 在动量之外还用二阶矩对步长做参数级自适应缩放,见 Adam算法全解:从数学原理到工业界最佳实践

相关概念