【问题标题】:Negative Binomial Loss in Neural Network using Tensorflow / Keras使用 Tensorflow / Keras 的神经网络中的负二项式损失
【发布时间】:2018-09-06 13:43:39
【问题描述】:

我正在处理一个高度倾斜的计数数据集,该数据集通常适合负二项式。我想在前馈神经网络上使用负二项式作为 Keras 或 Tensorflow 中的损失函数。

据我所知,在查看了可用的损失函数之后,keras 或 tensorflow 不存在这样的函数(尽管我希望我错了,我只是错过了一些东西)。

我环顾四周,看到一些帖子建议只是将损失换出以包含负二项式,但似乎在 tensorflow 中创建自定义损失不仅仅是用 tf.contrib.distributions 换出它。负二项式

有几篇文章讨论了为 Tensorflow / keras 创建自定义损失函数,例如:https://datascience.stackexchange.com/questions/25029/custom-loss-function-with-additional-parameter-in-keras 看了这个之后,我正在努力弄清楚如何编码。

我想知道 1) 是否有人已经使用负二项式创建了一个损失函数并愿意分享它是如何编码的,或者 2) 关于如何进行这项工作的提示。

我在这个项目中专门使用 python 工作。

提前感谢所有帮助。

【问题讨论】:

  • 我正在尝试解决同样的问题。你有运气解决这个问题吗?如何定义这样的损失和指标?

标签: python tensorflow neural-network keras deep-learning


【解决方案1】:

我不知道负二项式损失,但我知道如何实现自定义损失函数

def custom_loss(y_true, y_pred):
    ...
    loss = ...
    return loss

将 y_true 和 y_pred 视为张量。 (这意味着您需要使用 tensorflow 或 keras.backend 中的函数,而不是使用诸如 np.pow(y_true,2) 之类的函数)

将您的自定义损失函数作为编译参数传递

model.compile(loss=custom_loss, optimizer='your favorite optimizer')

【讨论】:

    猜你喜欢
    • 2017-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多