成本函数在张量流中更严重地惩罚某些类型的错误分类

数据挖掘 机器学习 神经网络 分类 张量流 成本函数
2022-02-26 17:48:50

我有 2 类数据 A 和 C。我想创建一个具有 3 个输出节点的 NN,将数据分类为 A、B 或 C。正确分类 A 或 C 应该具有零成本(非常好)。将 A 归类为 C 或反之亦然应该有很高的成本(非常糟糕)。但是,对于“模糊”的样本,我想将它们分类为 B,这将具有相对较低的成本(比错误分类更好,但仍然不理想)。我是 tensorflow 的新手,对定义成本函数的不同方法不满意。谁能指出我正确的方向?提前致谢

1个回答

您正在谈论具有不同的错误分类成本。

分类包括输出一个连续分数,然后对其进行阈值化以决定离散分类。选择阈值(例如概率>0.5 导致 C)以满足您对敏感性/特异性的要求。

训练算法只关心你的连续得分。这意味着您可以通过简单的二元分类(通常使用-loss)来简化自己,并在训练完成softmax_cross_entropy_with_logits创建模糊的 B 类,例如 [0,0.4) 是 A,[0.4,0.6] 是 B 和(0.6,1] 是 C。

要准确实现您所说的,更多地惩罚某些错误,那么您想使用weighted_cross_entropy_with_logits这会将您输出的分数解释为概率,并且您需要做更多工作才能获得合理的阈值,因此不建议将其作为第一步,因为它可能会增加比结果更多的复杂性。

我还建议阅读有关roc 分析的维基百科文章