使用真阳性作为成本函数

人工智能 深度学习 公制
2021-10-28 22:39:18

我想在我的成本函数中使用 True Positive(和 True Negative)来修改分类器的 ROC 形状。有人告诉我,我读到它是不可微的,因此不能用作神经网络的成本函数。

在 1 是正数和 0 负数的示例中,我推导出以下等式来表示真阳性(y^=prediction,y=label):

TP=(y^Ty)
TPy=y

以下为真阴性:

TN=(y^1)T(y1)
TNy=y^T1

误报:

FP=(y^T1)y
FPy=(y^T1)

假阴性:

FN=y^T(y1)
FNy=y^

所有方程对我来说似乎都是可微的。有人可以解释我哪里出错了吗?

1个回答

真阳性、假阳性等的向量函数都使用了“魔术”数字01用于表示布尔值。它们是您可以在数值库中使用的便捷方法,但您确实需要了解数据的基本布尔性质。01值允许计算 TP 等的数学,但不是它的基础,它们是一种表示。

除非出现奇怪的错字,否则您对所提供函数的梯度推导似乎是正确的。然而,梯度并不真正适用于y, 因为所有组件y要么是0或者1. 你可以增加的想法y稍微在哪里 y^1为了增加TP指标的值,微幅是没有依据的。相反,进行改进的唯一有效更改是修改 FN 值01确切地。

您可能仍然可以使用您的推导作为优化的梯度(这不是机器学习中唯一一次在理论上不太适用的东西,但您仍然可以在实践中使用它)。但是,您随后立即遇到了值如何y已离散为 0或者1-函数将不可微分,它会阻止您将梯度反向传播到要更改的神经网络权重。如果您使用更平滑的函数(例如 sigmoid)解决后续问题,那么您最终可能会得到接近交叉熵损失或感知器更新步骤的结果。

换句话说,尽管您被告知过于简化,但您不会找到一种方法来通过直接基于 TP、FP 等添加成本函数来提高分类器的性能。这就是二元交叉熵损失已经在做。还有其他可能更有成效的调查途径——超参数搜索、正则化、集成,如果你有一个不平衡的数据集,那么考虑加权真/假成本。