学习率的其他优化方法

动量法:SGD方法的一个缺点是,其更新方向完全依赖于当前的batch,因而其更新十分不稳定。

momentum即动量,它模拟的是物体运动时的惯性,即更新的时候在一定程度上保留之前更新的方向,同时利用当前batch的梯度微调最终的更新方向。这样一来,可以在一定程度上增加稳定性,从而学习地更快,并且还有一定摆脱局部最优的能力

算法叫做Momentum,或者叫做动量梯度下降法,运行速度几乎总是快于标准的梯度下降算法,简而言之,基本的想法就是计算梯度的指数加权平均数,并利用该梯度更新你的权重,在本笔记中,我们要一起拆解单句描述,看看你到底如何计算。

AdaGrad:使用梯度平方和作为分母,进行约束

前面的sgd是对所有的参数统一求导和下降的,但是由于实际数据中可能存在这样一种情况:有些参数已经近乎最优,因此只需要微调了,而另一些可能还需要很大的调整。这种情况可能会在样本较少的情况下出现,比如含有某一特征的样本出现较少,因此被代入优化的次数也较少,这样就导致不同参数的下降不平衡。adagrad就是来处理这类问题的。

adagrad的基本想法是,对每个参数theta自适应的调节它的学习率,自适应的方法就是对每个参数乘以不同的系数,并且这个系数是通过之前累积的梯度大小的平方和决定的,也就是说,对于之前更新很多的,相对就可以慢一点,而对那些没怎么更新过的,就可以给一个大一些的学习率。

Adagrad的算法如下:

分母中的

用来保证分母不为0;

·  前期梯度较小的时候, regularizer较大,能够放大梯度

·  后期梯度较大的时候,regularizer较小,能够约束梯度

·  适合处理稀疏梯度

RMSprop 和 Adadelta 都是为了解决 Adagrad 学习率急剧下降问题的,

AdaDelta:不用计算所有的梯度,而是使用一种平滑方式

用AdaDelta下降我们甚至不需要设置学习率。它的基本思路是这样:首先,借鉴了Adagrad的思路,对每个参数进行自适应的学习率变化,依据的也是之前的梯度的累积,但是这里不是像Adagrad那样直接加起来,而是用平均值的方式(实际使用的是RMS),把之前的梯度大小的影响加进来。目的是计算历史梯度在某个窗内的值的均值,但是不通过储存窗口内的值,而是用了当前的均值和当前的梯度来近似计算。另外,为了解决Adagrad,sgd等方法中直接用梯度的倒数可能带来的假设单位不相同的问题(个人理解是这样:希望更新梯度乘上系数以后,那个系数是不带单位的,这样update和当前的parameter有相同的单位才能叠加),把梯度的系数的分子上的eta换成了之前更新的部分

的RMS(这样替换之后,本质上就是),这样,更新就变成了:

RMS其实就是均方根:“Root Mean Square”的缩写,

整个AdaDelta的算法流程如下:

这里面

的思想可以借鉴以下,不用存储过去t-1时刻的数值,而是通过参数来达到这个目的;

RMSprop

RMSprop 是 Geoff Hinton 提出的一种自适应学习率方法。

RMSprop 和 Adadelta 都是为了解决 Adagrad 学习率急剧下降问题的,

梯度更新规则:
RMSprop 与 Adadelta 的第一种形式相同:

 

 超参数设定值:
Hinton 建议设定 γ 为 0.9, 学习率 η 为 0.001。

特点 :

  • 其实RMSprop依然依赖于全局学习率 

  • RMSprop算是Adagrad的一种发展,和Adadelta的变体,效果趋于二者之间

  • 适合处理非平稳目标 - 对于RNN效果很好 

Adam:对冲量结合梯度的平方

这个算法是另一种计算每个参数的自适应学习率的方法。

除了像 Adadelta 和 RMSprop 一样存储了过去梯度的平方 vt 的指数衰减平均值 ,也像 momentum 一样保持了过去梯度 mt 的指数衰减平均值:

 

 如果 mt 和 vt 被初始化为 0 向量,那它们就会向 0 偏置,所以做了偏差校正,通过计算偏差校正后的 mt 和 vt 来抵消这些偏差:

 

 梯度更新规则:

 

超参数设定值:建议 β1 = 0.9,β2 = 0.999,ϵ = 10e−8

实践表明,Adam 比其他适应性学习方法效果要好。

如何选择?

如果数据是稀疏的,就用自适用方法,即 Adagrad, Adadelta, RMSprop, Adam。

RMSprop, Adadelta, Adam 在很多情况下的效果是相似的。

Adam 就是在 RMSprop 的基础上加了 bias-correction 和 momentum,

随着梯度变的稀疏,Adam 比 RMSprop 效果会好。

整体来讲,Adam 是最好的选择。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值