【深度学习基础】第十九课:Adam优化算法

Adam优化算法

232 Views | 1813 Words

Posted by x-jeff on March 19, 2020

【深度学习基础】系列博客为学习Coursera上吴恩达深度学习课程所做的课程笔记。
本文为原创文章,未经本人允许,禁止转载。转载请注明出处。

1.Adam优化算法

Adam优化算法(Adaptive Moment Estimation)和RMSpropMomentum梯度下降法是被广泛应用并且经受了大量考验的优化算法,适用于不同的深度学习结构。

Adam优化算法实际上就是将RMSprop和Momentum结合在一起。

接下来看下Adam优化算法的详细步骤:

  • 初始化:Vdw=0,Sdw=0,Vdb=0,Sdb=0
  • On iteration t:
    • Compute dw,db using current mini-batch
    • Vdw=β1Vdw+(1β1)dw;Vdb=β1Vdb+(1β1)db
    • Sdw=β2Sdw+(1β2)(dw)2;Sdb=β2Sdb+(1β2)(db)2
    • Vcorrecteddw=Vdw/(1βt1);Vcorrecteddb=Vdb/(1βt1)
    • Scorrecteddw=Sdw/(1βt2);Scorrecteddb=Sdb/(1βt2)
    • w:=wαVcorrecteddwScorrecteddw+ϵ;b:=bαVcorrecteddbScorrecteddb+ϵ

Adam算法涉及很多超参数:

  1. α:学习率,需要自行尝试得到合适的值。
  2. β1:常用的值是0.9。
  3. β2:Adam算法的发明者推荐使用0.999。
  4. ϵ:Adam算法的发明者建议为108

其中超参数β1,β2,ϵ通常使用推荐值即可,没有调整的必要,对结果影响不大。

后续提出的AdamW则可用来解决Adam优化器中L2正则化失效的问题。Adam算法参数更新的计算公式如下(和上面是一样的,只是换了种表示方式):

t=t+1
moment_1_out=β1moment_1+(1β1)grad
moment_2_out=β2moment_2+(1β2)gradgrad
learning_rate=learning_rate1βt21βt1
param_out=paramlearning_ratemoment_1moment_2+ϵ

AdamW算法参数更新的计算公式如下:

t=t+1
moment_1_out=β1moment_1+(1β1)grad
moment_2_out=β2moment_2+(1β2)gradgrad
learning_rate=learning_rate1βt21βt1
param_out=paramlearning_rate(moment_1moment_2+ϵ+λparam)

2.参考资料

  1. Adam
  2. AdamW

0 comments
Anonymous
Markdown is supported

Be the first person to leave a comment!