首页 > 解决方案 > 如果我的数据是多标签并且我的目标向量不是单热编码的,我应该使用哪个损失函数?

问题描述

我刚刚通读了这个链接,它解释了二元交叉熵和分类交叉熵之间的区别,特别是,我对这张图片有疑问:

在此处输入图像描述

作者解决了多标签案例,其中您的目标(或基本事实)标签是 one-hot 编码的,但是如果您的目标标签不是 one-hot 编码的,您将使用什么损失函数?例如,如果图像中只有熊猫的一半,然后我将图像标记为 [1, 0, 0.5],在这种情况下我是否仍使用二进制交叉熵?对于目标向量不是二进制的情况,数学如何计算?

标签: pythonkerasloss-functionmultilabel-classificationcross-entropy

解决方案


您所指的文章的作者提到,只要您有两个概率向量,交叉熵就适用于所有情况。一个用于目标,一个用于预测。

如果图像中只有一半的熊猫,然后我将图像标记为 [1, 0, 0.5],在这种情况下我还会使用二进制交叉熵吗?

答:不,您将在这里使用多标签交叉熵,因为在同一图像中存在多个标签。该目标概率向量可以转换为单热编码向量。它看起来像 [1,0,1]。0.5 转换为 1,因为图像中存在具有该标签的对象。对于计算,您可以参考他解释多标签分类的文章,他说:

我们的目标可以一次代表多个(甚至零个)类。我们分别计算每个类的二元交叉熵,然后将它们相加得到完整的损失。


推荐阅读