【深度学习基础】系列博客为学习Coursera上吴恩达深度学习课程所做的课程笔记。
本文为原创文章,未经本人允许,禁止转载。转载请注明出处。
1.Adam优化算法
Adam优化算法(Adaptive Moment Estimation)和RMSprop、Momentum梯度下降法是被广泛应用并且经受了大量考验的优化算法,适用于不同的深度学习结构。
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−αVcorrecteddw√Scorrecteddw+ϵ;b:=b−αVcorrecteddb√Scorrecteddb+ϵ
Adam算法涉及很多超参数:
- α:学习率,需要自行尝试得到合适的值。
- β1:常用的值是0.9。
- β2:Adam算法的发明者推荐使用0.999。
- ϵ:Adam算法的发明者建议为10−8。
其中超参数β1,β2,ϵ通常使用推荐值即可,没有调整的必要,对结果影响不大。
后续提出的AdamW则可用来解决Adam优化器中L2正则化失效的问题。Adam算法参数更新的计算公式如下(和上面是一样的,只是换了种表示方式):
t=t+1
moment_1_out=β1∗moment_1+(1−β1)∗grad
moment_2_out=β2∗moment_2+(1−β2)∗grad∗grad
learning_rate=learning_rate∗√1−βt21−βt1
param_out=param−learning_rate∗moment_1√moment_2+ϵ
AdamW算法参数更新的计算公式如下:
t=t+1
moment_1_out=β1∗moment_1+(1−β1)∗grad
moment_2_out=β2∗moment_2+(1−β2)∗grad∗grad
learning_rate=learning_rate∗√1−βt21−βt1
param_out=param−learning_rate∗(moment_1√moment_2+ϵ+λ∗param)