Momentum方法
#Momentum方法
Momentum是在梯度下降时使用的一个trick,有下面优点:
- 帮助避免陷入局部最优
- 当梯度一直指向同一个方向时,可以增大梯度下降的步长,加快训练速度。
- 当梯度一直改变方向时,可以减小步长从而使方差减小,从而使振荡平滑,更快地往最优值方向靠近 直接看Momentum的公式来解释上面的优点:
\[ V_{t+1} = \mu V_{t} + \alpha \frac{\partial{\mathbf{J}}}{\partial \theta} \]
\[ W_{t+1} = W_{t} - V_{t+1} \]
上述公式中,取值为(0, 1),是momentum方法中新引入的参数。
从公式中可以看出,当梯度一直指向同一个方向时,由于当前的下降梯度会加上上一次的梯度(乘以权重),因此会增加步长;当梯度一直改变方向时,上一次梯度就和这次抵消一部分,因此可以减小步长使振荡更平滑.
加个对比图直观地解释一下,左图没有使用Momentum方法,会一直在局部振荡,很缓慢地靠近最优解;而右图使得振荡的方差减小,更快地靠近最优解。
Note:
- 当取值很大时(接近1),应该调小学习率,防止一次步长过大而跳过最优值.
- 通常情况下,先设为0.5, 当训练稳定后调整到0.9.