这里是一个链接到tensorflow优化器。在这里,你可以看到,RMSprop以动量为论据,而Adam没有这样做。所以我很困惑。Adam优化假装是具有动量的RMSprop优化,如下所示:
Adam = RMSprop +动量
但是为什么RMSprop有动量参数,而Adam没有呢?
发布于 2020-04-23 03:53:32
虽然"Adam是具有动量的Adam是RMSProp“这一短语确实被广泛使用,但它只是一个非常粗略的描述,不应该用面值来表示;在最初的亚当纸中,它已经得到了明确的澄清(第6页):
带有动量的RMSProp和Adam之间有几个重要的区别:带动量的RMSProp使用重标度梯度上的动量生成其参数更新,而Adam更新直接使用梯度的第一和第二矩的运行平均值来估计。
有时,作者明确指出,主题表达式只是一种松散的描述,例如在(强烈推荐的) 梯度下降优化算法综述中(强调后加):
亚当还保持了一个指数衰减的过去梯度mt,类似于动量的平均值。
或者在斯坦福大学CS231n:用于视觉识别的CNN中(同样,强调是加在后面的):
Adam是最近提出的一个更新,它的看起来有点像带有势头的RMSProp。
尽管如此,其他一些框架确实为Adam包含了一个momentum
参数,但这实际上是beta1
参数;下面是CNTK
动量(浮点,列表,
momentum_schedule()
输出)-动量调度。注意,这是Adam文件中的beta1参数。有关更多信息,请参考这篇CNTK Wiki文章。
所以,不要把这个看得太过字面意思,不要因为它而失眠。
https://stackoverflow.com/questions/61381648
复制