RMSprop、动量梯度下降法与Adam优化 [Andrew Ng 深度学习笔记]

如图:

对于蓝色的情况,由于梯度下降时来回摆动,导致收敛很慢

若增大学习率,结果可能偏离函数的范围,如紫色的情况。为了避免摆动过大,就必须使用较小的学习率,进一步降低了收敛速度

我们希望的是在纵轴上减缓学习,在横轴上加快学习,如红色的情况。有多种方法可以实现

动量梯度下降法(Momentum

此处用了指数加权平均的更新方法

因为纵轴有许多摆动,在求平均的时候都可以被抵消,最后几乎等于0,所以纵轴的学习被减缓了

在横轴,所有微分都指向一个方向,所以求平均之后几乎没有变化

所以动量梯度下降法就可以解决上述问题

RMSprop

on iteration t :
      compute  dw, db on current Mini-patch  (和动量梯度下降法一样,每次先算出dw、db)

      Sdw=\beta _{2}Sdw+(1-\beta_{2})dw^{2}

     Sdb=\beta _{2}Sdb+(1-\beta_{2})db^{2}

     w=w-\alpha \frac{dw}{\sqrt{Sdw+\varepsilon }}

     b=b-\alpha \frac{db}{\sqrt{Sdb+\varepsilon }}

当dw很大时,Sdw就会很大,所以更新时dw就会除以同样很大的 \sqrt{Sdw+\varepsilon } ,会有抑制作用

当dw很小时,更新时它就会除以同样很小的 \sqrt{Sdw+\varepsilon } ,会有加速作用

所以RMSprop也可以解决上述问题

Adam优化算法

把上述两个方法结合起来,就是Adam优化算法。公式为:

on iteration t :
      compute  dw, db on current Mini-patch

      Vdw=\beta _{1}Vdw+(1-\beta_{1})dw\: ,\: Vdb=\beta _{1}Vdb+(1-\beta_{1})db

      Sdw=\beta _{2}Sdw+(1-\beta_{2})dw^{2}\: ,\: Sdb=\beta _{2}Sdb+(1-\beta_{2})db^{2}

      V_{dw}^{corrected}=\frac{V_{dw}}{1-\beta^{t}_{1}}\: ,\:V_{db}^{corrected}=\frac{V_{db}}{1-\beta^{t}_{1}}

      S_{dw}^{corrected}=\frac{S_{dw}}{1-\beta^{t}_{2}}\: ,\:S_{db}^{corrected}=\frac{S_{db}}{1-\beta^{t}_{2}}

      w=w-\alpha \frac{V_{dw}^{corrected}}{\sqrt{S_{dw}^{corrected}+\varepsilon }}

      b=b-\alpha \frac{V_{db}^{corrected}}{\sqrt{S_{db}^{corrected}+\varepsilon }}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值