位置: 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作业做网页)

  • 腾讯视频支持几人同时登录(腾讯视频支持几个人)

    腾讯视频支持几人同时登录(腾讯视频支持几个人)

  • 腾讯视频微信登录不出二维码(腾讯视频微信登录怎么转换成QQ登录)

    腾讯视频微信登录不出二维码(腾讯视频微信登录怎么转换成QQ登录)

  • 手机开视频对方听不到声音(手机开视频对方看不到我怎么办)

    手机开视频对方听不到声音(手机开视频对方看不到我怎么办)

  • 淘宝前方拥挤是为什么(淘宝前方拥挤 请稍后 要退出还是继续等)

    淘宝前方拥挤是为什么(淘宝前方拥挤 请稍后 要退出还是继续等)

  • qq亲友是什么意思(qq上的好友亲密度说明了什么)

    qq亲友是什么意思(qq上的好友亲密度说明了什么)

  • excel表格不对称怎么做(表格中不对称的表格怎么做)

    excel表格不对称怎么做(表格中不对称的表格怎么做)

  • 一般电脑跑分多少合格

    一般电脑跑分多少合格

  • 主板电容坏了有什么表现(主板电容坏了能开机吗)

    主板电容坏了有什么表现(主板电容坏了能开机吗)

  • 机顶盒没电是怎么回事(机顶盒怎么没电了)

    机顶盒没电是怎么回事(机顶盒怎么没电了)

  • lte电话是什么扣费(lte sms)

    lte电话是什么扣费(lte sms)

  • pr安装成功,为啥打不开(pr安装很久)

    pr安装成功,为啥打不开(pr安装很久)

  • 手机qq离线说明什么(qq离线手机端是实时显示么)

    手机qq离线说明什么(qq离线手机端是实时显示么)

  • 苹果手机拍照hdr是什么意思(苹果手机拍照HDR怎么调)

    苹果手机拍照hdr是什么意思(苹果手机拍照HDR怎么调)

  • 抖音要审核多久(抖音审核多久上热门)

    抖音要审核多久(抖音审核多久上热门)

  • vivo手机备忘录在哪里(vivo手机备忘录怎么设置密码)

    vivo手机备忘录在哪里(vivo手机备忘录怎么设置密码)

  • 如何删除siri里的记录(siri如何删除app)

    如何删除siri里的记录(siri如何删除app)

  • 低数据模式省电吗(低数据模式开启会影响网速吗)

    低数据模式省电吗(低数据模式开启会影响网速吗)

  • ps如何去紫边(ps2020去紫边)

    ps如何去紫边(ps2020去紫边)

  • qq详细资料在哪(扣扣详细资料在哪里找)

    qq详细资料在哪(扣扣详细资料在哪里找)

  • 抖音播放量有什么用(抖音播放量有什么套路)

    抖音播放量有什么用(抖音播放量有什么套路)

  • 睿易路由器设置方法(睿易路由器设置网址)

    睿易路由器设置方法(睿易路由器设置网址)

  • 华为nova5和nova5i的区别(华为nova5和nova5pro外观有什么区别)

    华为nova5和nova5i的区别(华为nova5和nova5pro外观有什么区别)

  • word里表格分成两页(word里表格分成两个)

    word里表格分成两页(word里表格分成两个)

  • 共享停车位app怎么开发(共享停车位app哪个好)

    共享停车位app怎么开发(共享停车位app哪个好)

  • RuntimeError: (PreconditionNotMet) The third-party dynamic library (cudnn64_7.dll) that Paddle depen

    RuntimeError: (PreconditionNotMet) The third-party dynamic library (cudnn64_7.dll) that Paddle depen

  • 9个生活常识小窍门,让你在朋友面前高一等(图文)(生活常识 小常识)

    9个生活常识小窍门,让你在朋友面前高一等(图文)(生活常识 小常识)

  • 马拉斯盐田,秘鲁 (© Fotofeeling/Westend61 on Offset/Shutterstock)(马纳斯古盐田气候特征)

    马拉斯盐田,秘鲁 (© Fotofeeling/Westend61 on Offset/Shutterstock)(马纳斯古盐田气候特征)

  • Vue使用Element-UI的table组件和后端接口进行数据交互(包含前后端代码)(vue使用什么语言)

    Vue使用Element-UI的table组件和后端接口进行数据交互(包含前后端代码)(vue使用什么语言)

  • 捐赠劳务支出可在企业所得税前扣除吗
  • 个人名字的发票专用章
  • 劳务报酬现金 过账
  • 怎么知道对方的支付宝账号
  • 企业控股情况怎么填写
  • 暂估跨年取得发票怎么办
  • 新办商贸企业一般纳税人合同金额
  • 个体工商户生产经营所得怎么申报
  • 不得抵扣的进项税额的情形有
  • 广告传媒公司安全生产标准化
  • 车辆保险赔款怎么入账
  • 管理费用多计提了怎么冲
  • 环保公司开具发票怎么开
  • 存货计提减值准备对所得税的影响
  • 采购材料差旅费怎么入账
  • 承兑贴息收入账务处理怎么做?
  • 逾期往来账款怎么处理?
  • 辅助生产费用的归集
  • 本期金额怎么计算
  • 资产负债表是一年一次吗
  • 污水处理增值税征收品目
  • 工会经费单据
  • 超市一般纳税人账务处理
  • 使用360安全卫士
  • 微信php开发包
  • php设计模式及使用场景
  • 金银首饰零售业税负率是多少
  • 国税打印发票
  • php图文教程
  • 物流公司挂靠会计处理
  • vue的路由跳转了,可是页面没有变化
  • mksquashfs命令
  • php自动载入文件的函数
  • php 微信公众号自定义菜单
  • 命令启动服务管理
  • python导入模块的语句
  • SQL Server 中 RAISERROR 的用法详细介绍
  • mysql的一些命令
  • 盈余公积和资本溢价
  • 筹建养老院国家有哪些优惠政策?
  • 建筑业外管证预审要多久
  • 加速折旧法是指在固定资产使用的早期少提折旧
  • 注册资金只能增加不能减少吗
  • 差旅费报销人员范围
  • 财务报表的勾稽关系结构图
  • 小微企业社保代缴
  • 计算税前利润时 是否考虑资金成本
  • 银行账跨年一直没做怎么补
  • 劳务费打到私人账户
  • 一般纳税人出现以下哪些情况时,其进项税额不得抵扣( )
  • 股权投资如何记账
  • 金税盘每年服务费可以抵扣吗
  • 开服装店如何做销售
  • 个体户利润总额是4万应缴纳多少个人经营所得
  • sql server如何使用
  • windows server2008 64位没有安装音频怎么办?
  • 服务器centos6.8安装教程
  • win7系统使用ituns设置iphone铃声图文教程
  • win10系统忘记电脑密码
  • 怎么禁止电脑qq自动启动
  • js运算符种类
  • android 实例
  • android开发环境的搭建步骤
  • python 安装setup
  • nodejs import
  • dos命令怎么写
  • python选择器
  • 抽象类和接口的区别简答题
  • 表单失去焦点事件
  • python中验证码校验
  • javascript函数中的参数,也可以称之为下面哪项内容?
  • python3解析json
  • python 内置函数什么用来返回序列中的最大元素
  • android中的webview
  • 技术开发类工作有哪些
  • javascript要怎么学
  • 宝鸡税务局长
  • 办理对外支付税务备案需要多久时间
  • 浙江省个体工商户税收政策
  • 小规模税控盘全额抵扣怎么做分录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设