Adam 优化算法

在深度学习的发展过程中出现过很多优化算法,但是有些优化算法并不能被非常广泛地使用,因此出现了一些质疑优化算法的声音。但是当有人尝试将动量梯度下降和 RMSprop 结合起来后,人们发现这种新的优化算法效果非常好而且在很多问题上的表现都不错,后来便广泛地使用了起来。

Adam 算法本质上是将动量梯度下降算法和 RMSprop 结合了起来。

如果读过前几篇文章,那么对下面的算法描述一定不陌生:

第 t 次迭代:
        ①. 在当前的 mini-batch 上计算 dW, db
        ②. v d W = β 1 ⋅ v d W + ( 1 − β ) ⋅ d W v_{dW} = β_1 · v_{dW} + (1 - β) · dW vdW=β1vdW+(1β)dW v d b = β 1 ⋅ v d b + ( 1 − β ) ⋅ d b v_{db} = β_1 · v_{db} + (1 - β) · db vdb=β1vdb+(1β)db
        ③. s d W = β 2 ⋅ s d W + ( 1 − β ) ⋅ d W 2 s_{dW} = β_2 · s_{dW} + (1 - β) · dW^2 sdW=β2sdW+(1β)dW2 s d b = β 2 ⋅ s d b + ( 1 − β ) ⋅ d b 2 s_{db} = β_2 · s_{db} + (1 - β) · db^2 sdb=β2sdb+(1β)db2
        ④. v d W c o r r e c t e d = v d W 1 − β 1 t v^{corrected}_{dW} = \cfrac{v_{dW}}{1 - \beta_1^t} vdWcorrected=1β1tvdW v d b c o r r e c t e d = v d b 1 − β 1 t v^{corrected}_{db} = \cfrac{v_{db}}{1 - \beta_1^t} vdbcorrected=1β1tvdb
        ⑤. s d W c o r r e c t e d = s d W 1 − β 1 t s^{corrected}_{dW} = \cfrac{s_{dW}}{1 - \beta_1^t} sdWcorrected=1β1tsdW s d b c o r r e c t e d = s d b 1 − β 1 t s^{corrected}_{db} = \cfrac{s_{db}}{1 - \beta_1^t} sdbcorrected=1β1tsdb
        ⑥. W : = W − α ⋅ v d W c o r r e c t e d s d W c o r r e d t e d + ϵ W := W - α · \cfrac{v_{dW}^{corrected}}{\sqrt{s_{dW}^{corredted}} + \epsilon} W:=WαsdWcorredted +ϵvdWcorrected
        ⑦. b : = b − α ⋅ v d b c o r r e c t e d s d b c o r r e d t e d + ϵ b := b - α · \cfrac{v_{db}^{corrected}}{\sqrt{s_{db}^{corredted}} + \epsilon} b:=bαsdbcorredted +ϵvdbcorrected

这实际上就是将前面几篇文章里的算法放在了一起,其中为了区分清楚,动量梯度下降中的参数 β \beta β 替换成了 β 1 \beta_1 β1,即上面的 ②;RMSprop 中的参数 β \beta β 替换成了 β 2 \beta_2 β2,即上面的 ③。

另外,④、⑤ 两步的目的是消除偏差,可以参考 指数加权平均 这篇文章。

⑥、⑦ 两步中的 ϵ \epsilon ϵ 是一个非常小的数,其目的是防止分子除以 0,因此加上了一个非常小的数以防止这种情况出现。

这个算法中有很多超参数:

  • β 1 \beta_1 β1:动量梯度下降中的参数,通常取 0.9
  • β 2 \beta_2 β2:RMSprop 中的参数,通常取 0.999
  • α \alpha α:学习率,这个参数需要在实践中调整
  • ϵ \epsilon ϵ:防止分母为 0 的参数,通常取 1 0 − 8 10^{-8} 108

Adam 算法这个名字的由来是 Adaptive Moment Estimation,即自适应矩估计,因为动量梯度下降计算的是导数的粗略平均值,即一阶矩,而 RMSprop 计算的是导数平方的粗略平均值,即二阶矩,这就是 Adam 优化算法名字的由来。

以上就是对 Adam 优化算法的简要介绍,Adam 在很多场合都可以使用,它被嵌入在了许多深度学习框架之中,可以直接使用。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值