深度学习—加快梯度下降收敛速度(二):Monmentum、RMSprop、Adam

上篇博客讲的是利用处理(分组数据集)训练数据集的方法,加快梯度下降法收敛速度,本文将介绍如何通过处理梯度的方法加快收敛速度。首先介绍Monmentum,再次介绍RMSprop,最后介绍两种算法的综合体Adam。

1.Monmentum

在介绍Monmentum之前,首先介绍加权平均法。加入给出一组数据的散点图,要求用一条曲线尽可能准确地描述散点图的趋势,如下图所示(图来自吴恩达课件):
深度学习—加快梯度下降收敛速度(二):Monmentum、RMSprop、Adam

描述时利用加权平均:
深度学习—加快梯度下降收敛速度(二):Monmentum、RMSprop、Adam

通过控制β的大小,控制曲线的平滑度,通常取β=0.9。如果将mini-batch梯度加权平均,则,mini-batch收敛曲线(蓝线)将会更加平滑,在横轴方向走的更快:

深度学习—加快梯度下降收敛速度(二):Monmentum、RMSprop、Adam

在曲线开头阶段,不能准确的描述散点图,需要将偏差修正:

深度学习—加快梯度下降收敛速度(二):Monmentum、RMSprop、Adam

Monmentum具体加权平均过程:

深度学习—加快梯度下降收敛速度(二):Monmentum、RMSprop、Adam

加权平均之后,再利用加权平均的结果更新参数:

深度学习—加快梯度下降收敛速度(二):Monmentum、RMSprop、Adam

2.RMSprop

RMSprop具体操作如下:

深度学习—加快梯度下降收敛速度(二):Monmentum、RMSprop、Adam

3.Adam

Adam是Monmentum与RMSprop的结合算法,具体如下:

深度学习—加快梯度下降收敛速度(二):Monmentum、RMSprop、Adam

在做训练时,可以将上述方法加入到迭代里面。求得梯度之后,便利用monmentum或RMSprop或Adam方法求得梯度的变体,然后利用该变体更新参数即可。