Adam 优化算法

栏目: 编程工具 · 发布时间: 6年前

内容简介:在深度学习的发展过程中出现过很多优化算法,但是有些优化算法并不能被非常广泛地使用,因此出现了一些质疑优化算法的声音。但是当有人尝试将动量梯度下降和 RMSprop 结合起来后,人们发现这种新的优化算法效果非常好而且在很多问题上的表现都不错,后来便广泛地使用了起来。Adam 算法本质上是将动量梯度下降算法和 RMSprop 结合了起来。如果读过前几篇文章,那么对下面的算法描述一定不陌生:

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

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

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

第 t 次迭代:

①. 在当前的 mini-batch 上计算 dW, db

②. \(v_{dW} = β_1 · v_{dW} + (1 - β) · dW\),\(v_{db} = β_1 · v_{db} + (1 - β) · db\)

③. \(s_{dW} = β_2 · s_{dW} + (1 - β) · dW^2\),\(s_{db} = β_2 · s_{db} + (1 - β) · db^2\)

④. \(v^{corrected}_{dW} = \cfrac{v_{dW}}{1 - \beta_1^t}\),\(v^{corrected}_{db} = \cfrac{v_{db}}{1 - \beta_1^t}\)

⑤. \(s^{corrected}_{dW} = \cfrac{s_{dW}}{1 - \beta_1^t}\),\(s^{corrected}_{db} = \cfrac{s_{db}}{1 - \beta_1^t}\)

⑥. \(W := W - α · \cfrac{v_{dW}^{corrected}}{\sqrt{s_{dW}^{corredted}} + \epsilon}\)

⑦. \(b := b - α · \cfrac{v_{db}^{corrected}}{\sqrt{s_{db}^{corredted}} + \epsilon}\)

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

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

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

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

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

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

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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Impractical Python Projects

Impractical Python Projects

Lee Vaughan / No Starch Press / 2018-11 / USD 29.95

Impractical Python Projects picks up where the complete beginner books leave off, expanding on existing concepts and introducing new tools that you’ll use every day. And to keep things interesting, ea......一起来看看 《Impractical Python Projects》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器