这是一个link tensorflow 优化器。您可以看到,RMSprop 将动量作为参数,而 Adam 没有这样做。所以我很困惑。 Adam 优化假装是具有动量的 RMSprop 优化,如下所示:
Adam = RMSprop + 动量
但是为什么 RMSprop 有动量参数而 Adam 没有呢?
最佳答案
虽然“Adam is RMSProp with Momentum”这一表述确实被广泛使用,但这只是一个非常粗略的简写描述,不应该只看其表面值(value);已经在原版Adam paper ,明确澄清(第 6 页):
There are a few important differences between RMSProp with momentum and Adam: RMSProp with momentum generates its parameter updates using a momentum on the rescaled gradient, whereas Adam updates are directly estimated using a running average of first and second moment of the gradient.
有时,作者明确表示主题表达只是一个松散的描述,例如在(强烈推荐)Overview of gradient descent optimization algorithms (强调):
Adam also keeps an exponentially decaying average of past gradients mt, similar to momentum.
或在 Stanford CS231n: CNNs for Visual Recognition (再次强调):
Adam is a recently proposed update that looks a bit like RMSProp with momentum.
也就是说,其他一些框架确实包含 Adam 的 momentum
参数,但这实际上是 beta1
参数;这是CNTK :
momentum (float, list, output of
momentum_schedule()
) – momentum schedule. Note that this is the beta1 parameter in the Adam paper. For additional information, please refer to the this CNTK Wiki article.
所以,不要太从字面上理解,也不要因此而失眠。
关于tensorflow - Adam 优化器真的是 RMSprop 加动量吗?如果是,为什么它没有动量参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61381648/