1. 动量
1. 动量
使用了动量以后。假如梯度一直都是g,那么会一直在-g上不停加速,直到达到最终速度,其中步长变为,如当a=0.9时对应最大速度十倍于梯度下降算法。实际中,一开始是一个较小的值。
同时,使用动量以后,会累积之前的梯度,假如梯度发生震荡,v受到的影响可以减小。可参考吴恩达视频中关于动量的解释。
2. Nesterov动量
与1中的动量相比,Nesterov动量计算梯度的时候首先临时更新了权重参数,使用的是之前的动量进行临时更新,再根据临时的参数进行计算梯度。
3. AdaGrad
adaGrad对梯度乘以累积平方梯度的反比。在参数空间相对平缓的情况下,偏导数会比较小(偏导数<1),乘以累积平方梯度的反比以后会加快步长。相反,当参数空间相对陡峭的情况下,步长会变小。
4. RMSprop
修改adaGrad,使用移动平均引入了一个新的超参数p,用来控制移动平均的长度范围。
5. RMSProp
RMSProp已经被证明是一种有效且实用的深度神经网络优化算法,结合了Nesterov动量以及RMSProp算法。
5. Adam算法