机器学习相关理论恶补一:梯度下降算法(SGD、Momentum、ADAM)

  常见的梯度下降算法有:全局梯度下降算法、随机梯度下降算法、小批量梯度下降算法

基本表示方法为:

 

但是梯度学习算法也会有一些问题,如学习率(即更新步长)的设定对于最终的求解效果有较大的影响,还有可能会陷入局部最优。为了解决这些问题,便有人研究一些梯度下降的优化算法:

  • Momentum(动量)

在一些比较多局部极值的函数,采用梯度下降会在这些地方进行徘徊,从而收敛速度回下降,在这中情况下我们添加动量记性结局。原理就是当此刻梯度下降的方向与前一时刻的梯度下降方向相同,就会增大此刻的梯度下降速度。如果与前一时刻的方向相反,则需要减低该方向上的梯度下降速度。这样就会保证在错误的方向上不会偏移太多,让梯度下降更加迅速,如下公式所示,m为超参数,一般设置为0.9:

  • ADAM算法(Adaptive Moment Estimation)

在论文的摘要里面说了,这个算法是使用基于自适应低阶矩估计的一阶梯度算法来优化目标函数(这里矩估计MM和最大似然估计MLM是概率论里面常见的模型参数估计方法),

Beta1=0.9, beta2=0.999

 

\beta_{1}^{t}对一阶矩m进行矫正,因为m的初始值为0,所以它会向0偏置,这样处理后会减少这种偏置的影响,\beta_{2}^{t}的作用同理,上标t代表的是指数为t,该论文使用了 Zinkevich 2003 年提出的在线学习框架分析了 Adam 算法的收敛性。

 

我写了一个简单的matlab程序(需要使用matconvnet),分别比较了SGD、momentum、ADAM算法,可以去我的资源库下载,不需要积分

主要链接

https://arxiv.org/pdf/1412.6980.pdf

https://blog.csdn.net/sinat_36618660/article/details/100026261

矩估计:https://wenku.baidu.com/view/9fd23cfe03d276a20029bd64783e0912a3167c31.html

论文翻译:http://www.ijiandao.com/2b/baijia/63540.html

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

syvge

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值