位置: IT常识 - 正文

损失函数 | BCE Loss(Binary CrossEntropy Loss)(损失函数是什么)

编辑:rootadmin
损失函数 | BCE Loss(Binary CrossEntropy Loss) BCE(Binary CrossEntropy)损失函数图像二分类问题--->多标签分类Sigmoid和Softmax的本质及其相应的损失函数和任务多标签分类任务的损失函数BCEPytorch的BCE代码和示例总结图像二分类问题—>多标签分类

推荐整理分享损失函数 | BCE Loss(Binary CrossEntropy Loss)(损失函数是什么),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:损失函数有哪几种,损失函数的作用是,损失函数有哪几种,损失函数公式,损失函数有哪几种,损失函数越小越好吗,损失函数的作用是,损失函数在神经网络中的作用,内容如对您有帮助,希望把文章链接给更多的朋友!

二分类是每个AI初学者接触的问题,例如猫狗分类、垃圾邮件分类…在二分类中,我们只有两种样本(正样本和负样本),一般正样本的标签y=1,负样本的标签y=0。比如下边这张图片,判断里边有没有人。 那么这张图片的标签为y=1,这时我们就根据标签y=1来设计模型的输出就行了。因为二分类只有正样本和负样本,并且两者的概率之和为1,所以不需要预测一个向量,只需要输出一个概率值就好了。损失函数一般是输出经过sigmoid激活函数之后,采用交叉熵损失函数计算LOSS,即             LOSS=−(ylog(p(x)+(1−y)log(1−p(x))LOSS=-(ylog(p(x)+(1-y)log(1-p(x))LOSS=−(ylog(p(x)+(1−y)log(1−p(x))

其中p(x)是模型输出,y是真实标签。

Sigmoid和Softmax的本质及其相应的损失函数和任务

我看到过的关于Sigmoid激活函数和Softmax函数的比较好的解释,分享给大家: 看到上边的解释,我们应该心里会有些许明朗。为何二分类采用Sigmoid激活函数和BCE损失函数;多分类,我们可以采用Softmax激活函数和多类别交叉熵损失函数。;对于多标签分类,采用Sigmoid激活函数和BCE损失函数了。

损失函数 | BCE Loss(Binary CrossEntropy Loss)(损失函数是什么)

在这里不禁感慨,深度学习也不完全是炼丹,损失函数、激活函数、模型结构等都是大牛们结合统计学和目标场景设计的。

多标签分类任务的损失函数BCE

现在我换一个问题,这张图片中有没有人,有没有手机(多标签分类),那这时的标签就有四种情况了:

标签含义(0, 0)图中既没人,也没手机(0, 1)图中没人,但是有手机(1, 0)图中有人,但是没手机(1, 1)图中既有人,也有手机

以此类推,还可以扩展到2n2^n2n种情况(n类别分类)。很明显,问题已经由普通的二分类变成了多标签分类。多标签分类问题的输出和损失函数应该怎么定义呢? 因为多标签分类中有多个类别,不能单纯的输出一个值,而是应该输出一个向量,并且也不能继续将输出简单的用Softmax归一化到[0, 1]的概率值,且各类别的概率相加为1。**因为各类别之间不是互斥的,允许同时出现。**我们可以用sigmoid激活函数分别将输出向量的每个元素转换为概率值。 对于损失函数,比较简单的思路就是对输出向量的每个元素单独使用交叉熵损失函数,然后计算平均值。这就是我们今天要说的BCE。看一下Pytorch官方源码的实现方式就知道了。

Pytorch的BCE代码和示例

举个例子,假如模型输出

>>> import torch>>> output = torch.randn(3,3)>>> outputtensor([[-0.8858, 0.3241, 0.9456], [ 1.4887, 1.8076, -0.0565], [-1.6529, -1.8539, 0.6756]])

首先将输出向量中的所有元素转换为[0, 1]之间的概率值

>>> active_func = nn.Sigmoid()>>> output = active_func(output)>>> outputtensor([[0.2920, 0.5803, 0.7202], [0.8159, 0.8591, 0.4859], [0.1607, 0.1354, 0.6627]])

假设输入数据对应的标签为

>>> target = torch.FloatTensor([[0,1,1],[1,1,1],[0,0,0]])>>> targettensor([[0., 1., 1.], [1., 1., 1.], [0., 0., 0.]])

使用BCE损失函数计算LOSS

>>> loss = nn.BCELoss()>>> loss = loss(output, target)>>> losstensor(0.4114)总结

经过上边的分析,BCE主要适用于二分类的任务,而且多标签分类任务可以简单地理解为多个二元分类任务叠加。所以BCE经过简单修改也可以适用于多标签分类任务。使用BCE之前,需要将输出变量量化在[0,1]之间(可以使用Sigmoid激活函数)。上边我们也深度刨析了Sigmoid和Softmax两种激活函数,探究其统计学本质,Sigmoid的输出为伯努利分布,也就是我们常说的二项分布;而Softmax的输出表示为多项式分布。所以Sigmoid通常用于二分类,Softmax用于多类别分类。

本文链接地址:https://www.jiuchutong.com/zhishi/297850.html 转载请保留说明!

上一篇:纯css实现自定义弹窗(css 自定义变量)

下一篇:HTML作业04——简易美食页面(html作业做网页)

  • 个税什么会计科目
  • 2023增值税最新税率
  • 印花税是按开票收入申报的吗
  • 缴纳销项税额要交税吗
  • 零售商业企业经营的特点主要在于
  • 企业自建固定资产
  • 哪些纳税人需要实名办税
  • 行政事业单位拨入经费
  • 国家金库是什么税费
  • 发票收到以后必须查验吗
  • 产品质量问题怎么处罚
  • 公司欠增值税如何补交?
  • 出售旧机床的账务处理
  • 营改增对建筑行业税负的影响
  • 所得税季报固定资产加速折旧表资产原值
  • 一般和小规模纳税人哪个免税
  • 金税四期再出新公告
  • 土地增值税哪些可以抵扣
  • 小规模不动产销售不动产怎么交税
  • 通用日记账核算方法
  • 分公司注销时有未分配利润需要交税吗
  • 税务没有核定印花税
  • 金税盘需要报税吗
  • 车船使用牌照税收多少
  • 家常煲汤500例的做法窍门
  • 剑灵怎么截图正版
  • Cpqset.exe是什么系统进程 Cpqset有啥作用
  • 注销公司如何注销
  • 红掌的养殖方法和注意事项
  • mce是什么文件格式
  • .exe是指什么文件
  • 个体工商户与家庭生活难以划分的费用
  • php不使用内置函数的情况下,输出数组中重复最多的元素
  • css 单行显示
  • php限制访问频率
  • php正则表达式匹配链接
  • 使用vscode开发vue例子
  • linux系统操作教程
  • 计算机视觉技术的应用
  • dem如何生成
  • 哪些研发费用可以资本化
  • 公司组织员工旅游费可以在税前扣除吗
  • 利息收入的会计科目怎么做
  • 帝国cms整合Elasticsearch
  • sqlserver存储过程声明变量
  • 公司借个人借款协议书范本
  • sql2005备份数据库
  • 一般纳税人一直零申报会怎么样
  • 辞退补偿金的标准
  • 个人无需办理汇票业务
  • 中级财务会计报告心得体会
  • 高新技术企业支付特许权使用费
  • 物业公司支出费用
  • 外账需要计提存利息吗
  • 增值税不超过30万,普通发票可以开0税率吗
  • 财务费用利息收入怎么记账
  • 固定资产清理是资产吗
  • 怎么调整原材料的数量和单价
  • Mysql中LAST_INSERT_ID()的函数使用详解
  • 数据库表的查询学会了什么
  • 数据库中alter table的用法
  • freebsd6.2 nginx+php+mysql+zend系统优化防止ddos攻击
  • xp电脑怎么样
  • win10系统电脑无限重启
  • 进程mmc.exe
  • win7没有媒体功能
  • win10文件资源
  • python读取数据
  • jquery 单页应用
  • js表单生成器动手实践
  • noodoe如何使用
  • 广东电子税务局报税操作流程视频
  • 荆州市物业管理
  • 一般纳税人取得苗木普票可以抵扣吗
  • 四川税务局网上办事大厅
  • 怎样进行造林面积检查验收
  • 增值税计税依据含运费吗
  • 山东水利建设基金减免政策
  • 2022年房产税减免政策疫情
  • 规范性文件失效后,没有新文件,可以使用民法典第十条吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设