【问题标题】:Keras: custom objective function, where to put the derivativeKeras:自定义目标函数,导数放在哪里
【发布时间】:2018-04-15 01:26:54
【问题描述】:

我正在尝试对我的修道院的损失函数进行一些修改,但我有一些来自实施方面的问题。

我已经知道如何在 Keras 中创建自定义损失函数,以及如何调用它。但是我仍然不清楚在哪里包含函数的导数。

假设我的新损失函数是:

损失 = 交叉熵 + f(x)

其中 f(x) = x**2。

我应该在哪里包含 f'(x)=2x 以便在反向支持步骤中使用它? Keras 会自动执行此操作吗?还是我应该在某些部分明确定义?

感谢您对此的任何提示,因为我不知道该怎么做。

川。

【问题讨论】:

    标签: python deep-learning keras loss-function objective-function


    【解决方案1】:

    损失必须是 a) 您的网络输出和 b) 正确标签的函数。 loss = Summ(a,b) 使您的网络最小化 a) 和 b)。 最小化 x**2 使 x 接近于零; 最小化 softmax().. 由于 softmax(x) 不是损失函数,仅针对向量 X 定义,并且有助于使向量总和为 1,因此您无法真正将其最小化。我猜你在这里混合概念。

    Softmax 是一个激活函数,它的输出可以用来计算损失,例如。对数损失

    【讨论】:

    • 感谢您的(快速)回答。你是对的,我犯了一个错误,我想说交叉熵,而不是softmax(我不知道为什么我放了softmax btw)。我在问题中纠正了它。好吧,对于 f(x) 这只是一个可微函数的示例,我实际上并不想最小化该函数
    猜你喜欢
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    • 2015-05-12
    • 2016-02-24
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多