这个问题说明了一切。由于Adam在大多数数据集中表现良好,我想尝试动态调整Adam优化器。到目前为止,我只在Keras找到SGD的动量选项
答案 0 :(得分:5)
简短回答:否,Keras和Tensorflow都没有[编辑:最后看到更新]
答案很长:正如评论中已经提到的那样,亚当已经融入了一些动力。以下是一些相关的佐证:
来自强烈推荐的An overview of gradient descent optimization algorithms(也可用作paper):
除了存储过去平方梯度的指数衰减平均值u [t]如Adadelta和RMSprop之外,Adam还保持过去梯度m [t]的指数衰减平均值,类似于动量
来自Stanford CS231n: CNNs for Visual Recognition:
Adam是最近提出的更新,看起来有点像带动量的RMSProp
请注意,某些框架实际上包含了Adam的momentum
参数,但这实际上是beta1
参数;这是CNTK:
势头(浮动,列表,
momentum_schedule()
的输出) - 动量计划。请注意,这是Adam文件中的beta1参数。有关其他信息,请参阅this CNTK Wiki article。
也就是说,有一篇题为Incorporating Nesterov momentum into Adam的ICLR 2016论文,以及作者在Tensorflow中的implementation skeleton - 不能对此提出任何意见。
更新(在以下Yu-Yang的评论之后):Keras确实包含了一个名为Nadam
的优化器,基于上面提到的ICLR 2016论文;来自docs:
就像亚当基本上是具有动力的RMSprop一样,Nadam是具有Nesterov势头的Adam RMSprop。
它也作为贡献模块NadamOptimizer
包含在Tensorflow中。