关于分类交叉熵的混淆

数据挖掘 分类 多类分类 损失函数
2022-02-22 16:39:16

我了解单个标签 0 或 1 的问题的二进制交叉熵公式。如果我们有超过 2 个标签,我们会将所有这些类的二进制交叉熵相加。

Hy(y):=ic(yi,clog(yi,c)+(1yi,c)log(1yi,c))

我一直认为以上是分类交叉熵,但结果如下:

Hy(y):=iyilog(yi)

我很确定这两个公式实际上是不同的,但我认为两者都会起作用。我意识到第二个公式不适用于标签不互斥的问题(标签向量可以有多个 1),但我仍然不明白为什么我们不能只使用第一个公式来解决所有问题标签是否互斥?第二个公式有什么需要,为什么要提供它而不是第一个公式?

1个回答

对于二元分类,它们是一回事。想象y{0,1}

Hy(y):=ic(yi,clog(yi,c)+(1yi,c)log(1yi,c))

={iclog(yi,c),ifyi,c=1iclog(1yi,c),ifyi,c=0

第二个公式不适用于标签不互斥的问题(标签向量可以有多个 1)

这种情况是多标签,这是一个不同的问题。在这种情况下,你甚至不应该使用 Sigmoid 或 Softmax。查看多标签损失的另一个答案

第二个用于多类分类。

二元分类损失

交叉熵损失