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 }}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章