朴素 SGD 每步沿当前点梯度反方向更新
θt+1=θt−ηgt(其中
gt=∇θL(θt)),只看瞬时梯度,在病态曲率(条件数
κ=λmax/λmin 很大的椭圆等高线)上梯度方向频繁翻转,形成锯齿震荡。动量(Momentum)引入速度项对历史梯度做指数加权平均:
vt=γvt−1+ηgt,
θt+1=θt−vt。把递推展开成几何级数
vt=η∑k=0tγkgt−k: 越早的梯度权重
γk 越小(默认
γ=0.9,10 步前的贡献已衰减到
0.910≈0.35),方向一致的历史梯度叠加放大、高频来回翻转的梯度相互抵消——所以在谷底方向加速、在震荡方向减速。NAG(Nesterov 加速梯度)先沿速度“外推一步”再算梯度:
vt=γvt−1+η∇θL(θt−γvt−1),
θt+1=θt−vt,对曲率变化更敏感,凸问题上收敛速率从 SGD 的
O(1/t) 提升到
O(1/t2)。