优化算法:动量梯度下降+RMSprop+Adam算法+学习率衰减

原作:http://www.cnblogs.com/cloud-ken/p/7728427.html


动量梯度下降法(Momentum)

  • 另一种成本函数优化算法,优化速度一般快于标准的梯度下降算法.
  • 基本思想:计算梯度的指数加权平均数并利用该梯度更新你的权重

  • 假设图中是你的成本函数,你需要优化你的成本函数函数形象如图所示.其中红点所示就是你的最低点.使用常规的梯度下降方法会有摆动这种波动减缓了你训练模型的速度,不利于使用较大的学习率,如果学习率使用过大则可能会偏离函数的范围.为了避免摆动过大,你需要选择较小的学习率.

优化算法:动量梯度下降+RMSprop+Adam算法+学习率衰减_第1张图片

  • 而是用Momentum梯度下降法,我们可以在纵向减小摆动的幅度在横向上加快训练的步长.

基本公式

优化算法:动量梯度下降+RMSprop+Adam算法+学习率衰减_第2张图片

优化算法:动量梯度下降+RMSprop+Adam算法+学习率衰减_第3张图片

2.7 RMSprop(均方根)

RMSprop (root mean square prop),也可以加速梯度下降.

优化算法:动量梯度下降+RMSprop+Adam算法+学习率衰减_第4张图片

  • 对于梯度下降,横轴方向正在前进,但是纵轴会有大幅度的波动.我们现将横轴代表参数W,纵轴代表参数b.横轴也可以代表W[1],W[2],W[3]...W[n],但是为了便于理解,我们将其称之为b和W

优化算法:动量梯度下降+RMSprop+Adam算法+学习率衰减_第5张图片

  •   w的在横轴上变化变化率很小,所以dw的值十分小,所以Sdw也小,而b在纵轴上波动很大,所以斜率在b方向上特别大.所以这些微分中,db较大,dw较小.这样W除数是一个较小的数,总体来说,W的变化很大.而b的除数是一个较大的数,这样b的更新就会被减缓.纵向的变化相对平缓.
  • 注意:这里的W和b标记只是为了方便展示,在实际中这是一个高维的空间,很有可能垂直方向上是W1,W2,W5..的合集而水平方向上是W3,W4,W6...的合集.
  • 实际使用中公式建议为:
优化算法:动量梯度下降+RMSprop+Adam算法+学习率衰减_第6张图片

    为了保证实际使用过程中分母不会为0.

  • 主要目的是为了减缓参数下降时的摆动,并允许你使用一个更大的学习率α,从而加快你的算法速率.

2.8 Adam算法

Adam 算法基本原理是将Momentum和RMSprop结合在一起.

算法原理

优化算法:动量梯度下降+RMSprop+Adam算法+学习率衰减_第7张图片

超参数取值

优化算法:动量梯度下降+RMSprop+Adam算法+学习率衰减_第8张图片

2.9 学习率衰减(learning rate decay)

  • 加快学习算法的一个办法就是随时间慢慢减少学习率,我们将之称为学习率衰减(learning rate decay)

概括

  • 假设你要使用mini-batch梯度下降法,mini-batch数量不大,大概64或者128个样本,但是在迭代过程中会有噪音,下降朝向这里的最小值,但是不会精确的收敛,所以你的算法最后在附近摆动.,并不会真正的收敛.因为你使用的是固定的α,在不同的mini-batch中有杂音,致使其不能精确的收敛.

2017-10-25_125505

  • 但如果能慢慢减少学习率α的话,在初期的时候,你的学习率还比较大,能够学习的很快,但是随着α变小,你的步伐也会变慢变小.所以最后的曲线在最小值附近的一小块区域里摆动.所以慢慢减少α的本质在于在学习初期,你能承受较大的步伐, 但当开始收敛的时候,小一些的学习率能让你的步伐小一些.

2017-10-25_125903

细节

优化算法:动量梯度下降+RMSprop+Adam算法+学习率衰减_第9张图片


IMG_20171025_131549

其他学习率衰减公式

指数衰减

优化算法:动量梯度下降+RMSprop+Adam算法+学习率衰减_第10张图片



你可能感兴趣的:(深度学习,入门教程,吴恩达)