python - 如果我的数据是多标签并且我的目标向量不是单热编码的,我应该使用哪个损失函数?
问题描述
我刚刚通读了这个链接,它解释了二元交叉熵和分类交叉熵之间的区别,特别是,我对这张图片有疑问:
作者解决了多标签案例,其中您的目标(或基本事实)标签是 one-hot 编码的,但是如果您的目标标签不是 one-hot 编码的,您将使用什么损失函数?例如,如果图像中只有熊猫的一半,然后我将图像标记为 [1, 0, 0.5],在这种情况下我是否仍使用二进制交叉熵?对于目标向量不是二进制的情况,数学如何计算?
解决方案
您所指的文章的作者提到,只要您有两个概率向量,交叉熵就适用于所有情况。一个用于目标,一个用于预测。
如果图像中只有一半的熊猫,然后我将图像标记为 [1, 0, 0.5],在这种情况下我还会使用二进制交叉熵吗?
答:不,您将在这里使用多标签交叉熵,因为在同一图像中存在多个标签。该目标概率向量可以转换为单热编码向量。它看起来像 [1,0,1]。0.5 转换为 1,因为图像中存在具有该标签的对象。对于计算,您可以参考他解释多标签分类的文章,他说:
我们的目标可以一次代表多个(甚至零个)类。我们分别计算每个类的二元交叉熵,然后将它们相加得到完整的损失。
推荐阅读
- javascript - 如何更改照片中文字的颜色?
- mysql - MySQL:使用 IN(...) 的索引强制使用不同的 access_type
- php - 连续的 Ajax 查询返回旧信息
- javascript - 如何使用 javascript 在本地存储中存储多个复选框值?
- python - Groupby 使用 Django ORM
- javascript - classList.add 怎么了?
- r - 在带有 ncdf4 的 R 中,打开 netcdf 文件,修改并保存到磁盘
- python - 异步运行 model.save() 方法?
- html - 如何将引导程序 4 卡头中的图像向右移动?
- git - 如何在某个时间点后重置 github 中的更改