Softmax 的交叉熵是不是适用于多标签分类?

Posted

技术标签:

【中文标题】Softmax 的交叉熵是不是适用于多标签分类?【英文标题】:is Cross Entropy With Softmax proper for Multi-label Classification?Softmax 的交叉熵是否适用于多标签分类? 【发布时间】:2017-06-01 13:19:58 【问题描述】:

如here 所述,交叉熵不是多标签分类的合适损失函数。我的问题是“这个事实也适用于 softmax 的交叉熵吗?”。如果是,如何与文档的this part 匹配。

我应该提到我的问题范围在cntk。

【问题讨论】:

【参考方案1】:

多标签分类通常意味着“许多二元标签”。考虑到这个定义,带有 softmax 的交叉熵不适合多标签分类。您提供的第二个链接中的文档讨论的是多类问题而不是多标签问题。带有 softmax 的交叉熵适用于多类分类。对于多标签分类,一个常见的选择是使用每个标签的二进制交叉熵之和。可以使用 Brainscript 中的 Logistic 或 Python 中的 binary_cross_entropy 计算二进制交叉熵。

另一方面,如果您对许多多类标签有问题,那么您可以对每个标签使用 cross_entropy_with_softmax,CNTK 会自动对所有这些损失值求和。

【讨论】:

链接文档的标题是“训练一个多标签分类器”,那么您怎么说“您链接的文档谈论的是多类问题而不是多标签问题”? 您的问题中有两个链接。我指的是另一个。更新了答案以澄清这一点。

以上是关于Softmax 的交叉熵是不是适用于多标签分类?的主要内容,如果未能解决你的问题,请参考以下文章

softmax交叉熵

Pytorch - 使用一种热编码和 softmax 的(分类)交叉熵损失

softmax

softmax函数与交叉熵函数详解

多个正分类的 TensorFlow 损失计算

Softmax函数与交叉熵