1

我正在研究一个多类图像识别问题。任务是让正确答案出现在前 3 个输出概率中。所以我在想也许存在一个聪明的成本函数,它优先考虑正确答案在前 K 中,并且在这些前 K 之间没有太多惩罚。

4

1 回答 1

1

这可以通过类加权交叉熵损失来实现,它本质上将权重分配给与每个类相关的错误。这种损失用于研究,例如参见 S. Panchapagesan 等人的论文“Multi-task learning and Weighted Cross-entropy for DNN-based Keyword”。在计算交叉熵之前,您可以检查预测分布是否满足您的条件(例如,ground truth 类别在预测类别的前 k 个中)并相应地分配零(或接近零)权重,如果满足。

但是有一些悬而未决的问题:当正确的类在 top-k 中时,你应该惩罚 k-1 个错误预测的类吗?例如,如果预测是(0.9, 0.05, 0.01, ...),第三类是正确的并且它在前 3 中——这个预测是否足够好?您是否应该关心 k-1 不正确的类到底是什么?

所有这些问题的出现都是因为这种损失没有概率解释,不像标准的交叉熵。这就是为什么我不建议在实践中使用它,而是重新制定目标。

例如,如果最初的问题是对于某些输入,几个类同样好,则处理它的最佳方法是使用软标签,例如,(0.33, 0.33, 0.33, 0, 0, 0, ...)而不是 one-hot(请注意,这完全符合概率解释)。它将迫使网络学习与所有三个好的类别相关的特征,并且通常会导致相同的目标,但可以更好地控制目标类别。

于 2018-02-10T16:50:02.907 回答