【问题标题】:Does Keras support parametric optimizers?Keras 是否支持参数优化器?
【发布时间】:2019-12-23 16:25:31
【问题描述】:

在使用 keras 时,您可以在优化器更新规则中添加一个术语,以便 优化器 学习吗?因此,例如在他们的 github (https://github.com/keras-team/keras/blob/master/keras/optimizers.py) 上的 keras 优化器代码的第 200 行,有一个 SGD 的更新规则。您能否向 SGD 优化器添加一个简单的标量变量,将更新公式更改为

new_p = (p + self.momentum * v - lr * g)*new_variable

new_variable 是一个标量,在某个范围内(例如 0 到 1),SGD 优化器必须学习 new_variable 的适当值?

人们将如何对优化器进行此类更改?

【问题讨论】:

    标签: python-3.x machine-learning optimization keras deep-learning


    【解决方案1】:

    这听起来很奇怪,因为对于学习,有必要“获得损失函数的梯度”相对于权重。 (这个变量将是一个权重,从某种意义上说它是 Keras 中的可训练变量)

    但请注意您提出的这个变量:

    • 不参与损失函数
    • 在计算梯度(该公式中的g)后使用

    因此,独立于 Keras,这种方法(在“反向传播”学习框架中学习学习率)是不可能的。

    【讨论】:

    • 我不认为优化步骤必须与某些损失函数完全相关。极端不确定性下的优化呢?您甚至可能不知道“真正的”损失函数,但您可以针对它进行优化。
    • 我认为你在谈论 Keras 之外的事情。
    • @MattWard Keras 和类似的框架优化器做backpropagation 优化,因此仅限于丹尼尔在这里提到的这些事情。
    • @MattWard Keras 和类似的框架优化器做backpropagation 优化,因此仅限于丹尼尔在这里提到的这些事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 1970-01-01
    • 2023-03-30
    • 2017-07-23
    • 2020-05-18
    • 2013-04-26
    相关资源
    最近更新 更多