【问题标题】:Why does the Keras implementation for the Adam optimizer have the decay argument and Tensorflow doesn't?为什么 Adam 优化器的 Keras 实现有衰减参数而 Tensorflow 没有?
【发布时间】:2019-04-04 22:39:33
【问题描述】:

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

【问题讨论】:

    标签: tensorflow neural-network keras deep-learning


    【解决方案1】:

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

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

    因此,这些原因说明了为什么存在关于 Adam 学习率衰减是否必要的讨论。

    【讨论】:

      【解决方案2】:

      为什么很难回答。

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

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

      这是 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    
      

      【讨论】:

      • 感谢您的回答。首先,Tensorflow 不是这样实现的?
      • 我猜你不是在问如何在张量流中为 adan 实现 lr 衰减。你想弄清楚 lr 衰减是否对亚当有意义?
      • 我正在使用 Keras 重建 Tensorflow 模型,我发现他们正在使用 Adam 优化,但他们以自定义方式更新学习率,而不使用 Adam 优化,这让我很困惑。此外,当我阅读有关 Adam 优化的 Tensorflow 文档时,并没有像 Keras 这样的衰减论据。所以,我会知道为什么它们之间存在差异。
      猜你喜欢
      • 2020-05-18
      • 2021-09-25
      • 1970-01-01
      • 1970-01-01
      • 2018-10-02
      • 1970-01-01
      • 2016-02-20
      • 2016-09-02
      • 1970-01-01
      相关资源
      最近更新 更多