因此,基于动量的梯度下降原理如下:
其中是先前的权重更新,g是相对于参数p的当前梯度,l r是学习率,s e l f 。米ø 米é Ñ 吨Ú 中号是一个常数。
Nesterov的加速梯度下降原理如下:
等效于:
要么
来源:https : //github.com/fchollet/keras/blob/master/keras/optimizers.py
因此,对我来说,涅斯捷罗夫的加速梯度下降似乎使lr * g项的权重超过了以前的权重变化项m的权重(与普通的旧动量相比)。这种解释正确吗?
因此,基于动量的梯度下降原理如下:
其中是先前的权重更新,g是相对于参数p的当前梯度,l r是学习率,s e l f 。米ø 米é Ñ 吨Ú 中号是一个常数。
Nesterov的加速梯度下降原理如下:
等效于:
要么
来源:https : //github.com/fchollet/keras/blob/master/keras/optimizers.py
因此,对我来说,涅斯捷罗夫的加速梯度下降似乎使lr * g项的权重超过了以前的权重变化项m的权重(与普通的旧动量相比)。这种解释正确吗?
Answers:
Arech关于Nesterov动量的答案是正确的,但是代码本质上是相同的。 所以在这方面的涅斯捷罗夫方法不会对给予更大权重项,并以较小的权重v项。
为了说明为什么Keras的实现是正确的,我将借用Geoffrey Hinton的示例。

在我看来,OP的问题已经回答了,但我会尝试给出另一种(非常直观的)解释,以说明动量以及古典动量(CM)与内斯特罗夫的加速梯度(NAG)之间的区别。
tl; dr
只需跳到最后的图像。
NAG_ball的推理是另一个重要的部分,但是我不确定如果没有其他所有内容,它是否容易理解。
事实证明(根据观察到的球的行为,并根据《关于深度学习中初始化和动量的重要性的论文》(在第2部分中描述CM和NAG的论文),每个球的行为与这些方法之一完全相同,因此我们将其称为“ CM_ball”和“ NAG_ball” :(
NAG_ball面带微笑,因为他最近观看了讲座6c的结尾-Geoffrey Hinton与Nitish Srivastava和Kevin Swersky的动量方法,因此比以往任何时候都更加相信他的行为导致更快地找到最低要求。)
这是球的行为:
在Alec Radford的这张令人着迷的gif中,您可以看到NAG的性能可以说比CM(gif中的“动量”)更好。
(最小值是星星所在的位置,曲线是等高线。有关等高线及其垂直于渐变的原因的说明,请参见传奇3Blue1Brown的视频1和2。)
对特定时刻的分析证明了NAG_ball的推理:
我不这么认为。
例如,Sutskever,Martens等人在“关于深度学习中的初始化和动量的重要性” 2013年中对Nesterov动量(也称为Nesterov加速梯度)属性进行了很好的描述。
主要区别在于经典动量中,您首先校正速度,然后根据该速度大步前进(然后重复),但是在涅斯特罗夫动量中,您首先向速度方向迈进,然后对基于速度矢量的校正在新位置(然后重复)。
即古典动力:
vW(t+1) = momentum.*Vw(t) - scaling .* gradient_F( W(t) )
W(t+1) = W(t) + vW(t+1)
内斯特罗夫的势头是这样的:
vW(t+1) = momentum.*Vw(t) - scaling .* gradient_F( W(t) + momentum.*vW(t) )
W(t+1) = W(t) + vW(t+1)
实际上,这在实践上有很大的不同...
补充:关于神经网络的斯坦福大学课程 cs231n给出了另一种形式的步骤:
v = mu * v_prev - learning_rate * gradient(x) # GD + momentum
v_nesterov = v + mu * (v - v_prev) # keep going, extrapolate
x += v_nesterov
这里v是速度又称步态,mu是动量因子,通常为0.9左右。(v,x并且learning_rate可以是很长的向量;对于numpy,代码是相同的。)
v第一行是具有动量的梯度下降;
v_nesterov推断,继续前进。例如,当mu = 0.9时,
v_prev v --> v_nesterov
---------------
0 10 --> 19
10 0 --> -9
10 10 --> 10
10 20 --> 29
以下描述包含3个术语:
单独的术语1是平面梯度下降(GD),
1 + 2给出GD +动量,
1 + 2 + 3给出Nesterov GD。
-动量,预测因子
-渐变
-渐变
-动力
-梯度动量
最后一项是具有平坦动量的GD和具有Nesterov动量的GD之间的差异。
-动力
-梯度动量