优化器篇(整理网上资源,侵删)

1. 梯度下降(gradient descent):

三种梯度下降方式: 全量梯度下降;SGD;mini-batch 梯度下降

mini-batch的缺点:

        1. 对步长比较敏感

        2.不同参数使用相同的步长

        3.可能无法跳出鞍点

2. momentum:

        针对SGD在局部最优点处的震荡问题,增加上一时刻的梯度信息,当两个梯度同向,则增强梯度下降,否则,降低梯度下降。

3. NAG

        在momentum的基础上,为了防止动量的过度增强,及超过鞍点之后继续上坡,使用

        作为对未知下一时刻的估计,然后计算该位置的梯度,作为参数更新的指导。

注: NAG可以显著地提高RNN的效果。

 4. Adagrad

核心思想:

        对于出现次数较少的特征使用大的学习率,出现次数较多的特征使用小的学习率。

        针对SGD中不同参数具有相同步长的问题(实际不同参数出现频率是不一样的),Adagrad采用不用参数i前t个时刻的梯度的平方和来赋予不同参数不同的步长。

         其中G(t-1)表示任意参数i的前t-1个时刻的梯度的平方和 ,g(t-1)表示当前时刻的梯度值。

由于

        

        故而不同参数具有不同的更新步长。

特点:

        1. 非常适合用于处理稀疏数据,提高了SGD模型的鲁棒性

        2. 分析发现参数的二阶导数值和距离最优点的距离成反比,而距离最优点中越近应该使用越小的学习率,--> 参数的二阶导数值应该与学习率成反比

        而直接计算二阶导数值的计算量太大,因此使用一阶导数值的平方来近似二阶导数值。

因此要除以梯度的平方和。(注:实验表明根号很重要,去掉效果很差)。   

缺点:

        1. 由于梯度平方的每一项都大于0,学习率单调递减,这在初期有利于收敛,但在后期会阻碍模型收敛    

        2.需要一个合适的全局初始学习率

5. RMSprop

        为了解决学习率一直衰减的问题,RMSProp使用累积梯度平方和进行梯度的更新。

         

         其中前t时刻的累积梯度G(t)为前t-1时刻的累积梯度G(t-1)与当前梯度g(t)的平方的加权结果。由于加权,所以G(t)不总是单调递增的。

6. AdaDelta

        初始状态和RMSprop相同,之后继续使用Hessian矩阵的对角线近似Hessian矩阵,得到学习率可以替换为:

因此公式可以转化为:

         

                 

特点:

        不需要初始化步长

 7. Adam

        beta1为一阶矩,类似于momentum的梯度衰减的平均值

        beta2为二阶矩,类似于RMS的梯度平方的衰减平均值 

 优点:

        1. 通过一阶矩冲破鞍点

        2. 利用二阶矩使得不同参数具有不同的步长

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值