在Keras有Adam优化器的动量选项吗?

时间:2017-11-07 22:42:38

标签: optimization machine-learning neural-network deep-learning keras

这个问题说明了一切。由于Adam在大多数数据集中表现良好,我想尝试动态调整Adam优化器。到目前为止,我只在Keras找到SGD的动量选项

1 个答案:

答案 0 :(得分:5)

简短回答:KerasTensorflow都没有[编辑:最后看到更新]

答案很长:正如评论中已经提到的那样,亚当已经融入了一些动力。以下是一些相关的佐证:

来自强烈推荐的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中。