Adam 优化器真的是 RMSprop 加动量吗?如果是,为什么它没有动量参数?

Yos*_*tik 2 optimization adam keras tensorflow

这是张量流优化器的链接。您可以看到,RMSprop 将动量作为参数,而 Adam 没有这样做。所以我很困惑。Adam 优化假装是具有动量的 RMSprop 优化,如下所示:

Adam = RMSprop + 动量

但为什么 RMSprop 有动量参数而 Adam 没有呢?

des*_*aut 5

虽然“ Adam 是带有动量的 RMSProp ”这一表述确实被广泛使用,但这只是一个非常粗略的简写描述,不应该只看其表面价值;最初的Adam 论文中已经明确阐明了这一点(第 6 页):

\n\n
\n

带动量的 RMSProp 和 Adam 之间有一些重要的区别:带动量的 RMSProp 使用重新缩放的梯度上的动量生成其参数更新,而 Adam 更新是使用梯度的一阶矩和二阶矩的运行平均值直接估计的。

\n
\n\n

有时,作者明确表示主题表达只是一个松散的描述,例如在(强烈推荐)梯度下降优化算法概述(添加了重点)中:

\n\n
\n

Adam 还保持过去梯度 mt 的指数衰减平均值,类似于动量。

\n
\n\n

或者在斯坦福 CS231n:用于视觉识别的 CNN(再次强调)中:

\n\n
\n

Adam 是最近提出的一个更新,看起来有点像带有动量的 RMSProp。

\n
\n\n

也就是说,其他一些框架确实包含momentumAdam 的参数,但这实际上就是beta1参数;这是CNTK

\n\n
\n

动量(浮点数、列表、输出momentum_schedule())\xe2\x80\x93 动量表。请注意,这是 Adam 论文中的 beta1 参数。有关更多信息,请参阅这篇 CNTK Wiki 文章

\n
\n\n

所以,不要太从字面上理解,也不要因此而失眠。

\n