我想在我的成本函数中使用 True Positive(和 True Negative)来修改分类器的 ROC 形状。有人告诉我,我读到它是不可微的,因此不能用作神经网络的成本函数。
在 1 是正数和 0 负数的示例中,我推导出以下等式来表示真阳性():
以下为真阴性:
误报:
假阴性:
所有方程对我来说似乎都是可微的。有人可以解释我哪里出错了吗?
我想在我的成本函数中使用 True Positive(和 True Negative)来修改分类器的 ROC 形状。有人告诉我,我读到它是不可微的,因此不能用作神经网络的成本函数。
在 1 是正数和 0 负数的示例中,我推导出以下等式来表示真阳性():
以下为真阴性:
误报:
假阴性:
所有方程对我来说似乎都是可微的。有人可以解释我哪里出错了吗?
真阳性、假阳性等的向量函数都使用了“魔术”数字和用于表示布尔值。它们是您可以在数值库中使用的便捷方法,但您确实需要了解数据的基本布尔性质。这和值允许计算 TP 等的数学,但不是它的基础,它们是一种表示。
除非出现奇怪的错字,否则您对所提供函数的梯度推导似乎是正确的。然而,梯度并不真正适用于, 因为所有组件要么是或者. 你可以增加的想法稍微在哪里 是为了增加TP指标的值,微幅是没有依据的。相反,进行改进的唯一有效更改是修改 FN 值到确切地。
您可能仍然可以使用您的推导作为优化的梯度(这不是机器学习中唯一一次在理论上不太适用的东西,但您仍然可以在实践中使用它)。但是,您随后立即遇到了值如何已离散为 或者-该函数将不可微分,它会阻止您将梯度反向传播到要更改的神经网络权重。如果您使用更平滑的函数(例如 sigmoid)解决后续问题,那么您最终可能会得到接近交叉熵损失或感知器更新步骤的结果。
换句话说,尽管您被告知过于简化,但您不会找到一种方法来通过直接基于 TP、FP 等添加成本函数来提高分类器的性能。这就是二元交叉熵损失已经在做。还有其他可能更有成效的调查途径——超参数搜索、正则化、集成,如果你有一个不平衡的数据集,那么考虑加权真/假成本。