繁体   English   中英

为什么 Adam 优化器的 Keras 实现有衰减参数而 Tensorflow 没有?

[英]Why does the Keras implementation for the Adam optimizer have the decay argument and Tensorflow doesn't?

为什么 Adam 优化器的 Keras 实现有衰减参数而 Tensorflow 没有? 这个论点是什么想法?

为什么很难回答。

但是,当您的火车达到极限时,衰减很有趣。 降低学习率可能会改善您的模型并获得更好的结果。 但是机器学习就是测试。

这个想法只是在每次批量更新中降低学习率的值。

这是 Keras 使用的公式:

lr = self.lr
if self.initial_decay > 0:
    lr = lr * (1. / (1. + self.decay * K.cast(self.iterations, K.dtype(self.decay))))

基本上它的:

lr / (1 + decay*currentBatch) #considering currentBatch keeps incresing, not looping    

这些差异可能以某种方式反映了在应用Adam时是否甚至需要学习率衰减的讨论。

  1. Adam 使用单独的学习率更新任何参数。 这意味着网络中的每个参数都有一个特定的学习率。
  2. 参数的单一学习率是使用初始学习率作为上限计算的。 这意味着每个学习率都可以从 0(无更新)到初始学习率。
  3. 学习率在训练步骤中自行调整,但如果您想确保每个更新步骤不超过上限,您可以使用指数衰减降低初始(全局)学习率。

所以这些原因说明了为什么会有关于 Adam 的学习率衰减到底是否有必要的讨论。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM