优化算法

常用的优化方法有梯度下降法,牛顿法,共轭梯度法,启法式和拉格朗日乘数法。

梯度下降法,最速下降法,越接近目标值,步长越小,前进越慢。可能会出现之字形下降。

BGD和SGD

牛顿法,二阶收敛。使用一阶导数做拟合,在拟合函数上求最优,得到二阶最优。

必须是二阶可导的。收敛比梯度下降要快。而且要计算Hessian阵。

共轭梯度法 共轭方向可以说是正交的
从任意初始点出发,依次沿nn个G的共轭方向d1,d2,,dmd1,d2,⋯,dm进行一维寻优,最多经过nn次寻优就可以找到二次函数的极小值点


深度学习中的优化方法(两个思路,梯度方向,学习率)

普通的SGD 公式表示为  存在的问题:全局学习率无法确定,收敛于局部最优解。

两种解决思路有对梯度方向和学习率加动量项,通过求得的梯度对学习率做约束。

Momentum   在梯度相关时可以加速学习过程。

netsterov 动量项可以影响到梯度的计算   

adagrad    动态的调整学习率的大小 。。借鉴了L2正则化的思想,当梯度较小时,正则项可以增加梯度,当梯度较大小,可以减小梯度。还是需要一个全局学习率,最后正则项不断加大,会使得学习率趋向于0。

RMSpro 只计算最近的W个梯度的平方和做为正则项,使用类似于动量计算的方式来做平均,得到正则项的计算公式为:。当p=0.5时,正则项可以用圴方根来描述。

adadelta 使用牛顿迭代法的方式来计算学习率,对于Hessisan逆矩阵计算的困难,做了两次近似,1、用矩阵对角线元素元素近似逆矩阵。


adam

在RMSPro的基础上,对梯度和学习率正则项加入了动量,移动平均的方法在迭代的前期,因为初值为0,会导致数值不准确,所以使用了一个修正项

 

   

梯度下降法在使用的时候可以使用:

重排法对数据进行洗牌,来增加模型的泛化性能,有一个研究领域叫做课程学习。

BatchNormal

早停来防止过拟合。

给梯度增加随机噪声。帮助跳出局部最小值。

参考文献:

https://zhuanlan.zhihu.com/p/22252270

https://www.cnblogs.com/neopenx/p/4768388.html

https://www.jiqizhixin.com/articles/2016-11-21-4

https://zh.gluon.ai/chapter_optimization/adadelta-scratch.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值