【基础知识】多标签分类CrossEntropyLoss 与 二分类BCELoss

什么是多标签分类

在这里插入图片描述

图片中是否包含房子?你的回答就是有或者没有,这就是一个典型的二分类问题(一个问题两个选项,是或不是)。

同样还是这幅照片,问题变成了:这幅照片是谁拍摄的?备选答案你,你的父亲,你的母亲,这就变成了一个多分类问题(一个问题多个选项)。

若此时问题如下:
在这里插入图片描述
你会发现图中所示的答案有多个yes,而不同于之前的多分类只有一个yes。这就是多标签分类

多标签的问题的损失函数是什么

这里需要先了解一下softmax 与 sigmoid函数
在这里插入图片描述
这两个函数最重要的区别,我们观察一下:
在这里插入图片描述
区别还是很明显的。
综上,我们可以得出以下结论:
在这里插入图片描述

pytorch中的实现

torch.nn.CrossEntropyLoss()

交叉熵快速理解参考:博客2
在这里插入图片描述
CrossEntropyLoss(pre, label, ignore_index = -1)
该函数会默认对预测值pre做softmax后,再计算交叉熵。

BCELoss

在图片多标签分类时,如果3张图片分3类,会输出一个3*3的矩阵。
在这里插入图片描述
需要先用Sigmoid给这些值都映射到0~1之间:
在这里插入图片描述
假设Target是:
在这里插入图片描述
计算后的loss为:在这里插入图片描述

BCEWithLogitsLoss

BCEWithLogitsLoss就是把Sigmoid+BCELoss合成一步。我们直接用刚刚的input验证一下是不是0.7193:
在这里插入图片描述

补充阅读:
关于交叉熵损失函数详解:博客1

  • 9
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值