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

  • excel图案样式怎么设置(excel图案样式怎么设置为6.25%灰色)

    excel图案样式怎么设置(excel图案样式怎么设置为6.25%灰色)

  • 小红书可以投屏到电视吗(小红书可以投屏直播吗)

    小红书可以投屏到电视吗(小红书可以投屏直播吗)

  • 芒果tv APP怎么变小窗口(芒果tv设置在哪儿)

    芒果tv APP怎么变小窗口(芒果tv设置在哪儿)

  • 抖音如何设置定时关闭(抖音如何设置定时关闭直播)

    抖音如何设置定时关闭(抖音如何设置定时关闭直播)

  • 抖音动态和作品是一样的吗(抖音动态作品怎么设置)

    抖音动态和作品是一样的吗(抖音动态作品怎么设置)

  • vivo怎么显示耳机图标(vivo手机怎么显示耳机)

    vivo怎么显示耳机图标(vivo手机怎么显示耳机)

  • oppo pbbm30是什么手机(oppopbcm30是k1吗)

    oppo pbbm30是什么手机(oppopbcm30是k1吗)

  • atu al10是什么型号手机(atl-al10)

    atu al10是什么型号手机(atl-al10)

  • wps水印设置在哪里(wps水印设置在哪里设置)

    wps水印设置在哪里(wps水印设置在哪里设置)

  • bt151可控硅在充电器中的作用(bt151可控硅在充电器中触发二极管的作用)

    bt151可控硅在充电器中的作用(bt151可控硅在充电器中触发二极管的作用)

  • 腾讯会议结束后可以回看吗(腾讯会议结束后如何查看参会人员)

    腾讯会议结束后可以回看吗(腾讯会议结束后如何查看参会人员)

  • 售后可以换到原装屏吗(售后能换机吗)

    售后可以换到原装屏吗(售后能换机吗)

  • 抖音直播可以用别人的身份证实名吗(抖音直播可以用obs吗)

    抖音直播可以用别人的身份证实名吗(抖音直播可以用obs吗)

  • 数据压缩的目的是什么(数据压缩的目的是尽可能消除数据中的冗余)

    数据压缩的目的是什么(数据压缩的目的是尽可能消除数据中的冗余)

  • 电脑自动息屏怎么取消(电脑自动息屏怎么关闭)

    电脑自动息屏怎么取消(电脑自动息屏怎么关闭)

  • 华为手机密码忘了怎么解开(华为手机密码忘了怎么解锁)

    华为手机密码忘了怎么解开(华为手机密码忘了怎么解锁)

  • 什么是双模5g(什么是双模式)

    什么是双模5g(什么是双模式)

  • 选择多个连续文件的快捷键(选择多个连续文件的方法)

    选择多个连续文件的快捷键(选择多个连续文件的方法)

  • 苹果xsmax声音小怎么调大(苹果xsmax是双扬声器吗)

    苹果xsmax声音小怎么调大(苹果xsmax是双扬声器吗)

  • 小米4可以使用悬浮球吗(小米可以使用华为手表吗)

    小米4可以使用悬浮球吗(小米可以使用华为手表吗)

  • 抖音最近联系人怎么删(抖音最近联系人是多久联系)

    抖音最近联系人怎么删(抖音最近联系人是多久联系)

  • 探探解除了关系后还能看到状态吗(探探解除关系对方还可以看到吗)

    探探解除了关系后还能看到状态吗(探探解除关系对方还可以看到吗)

  • 0x80070057错误原因(0x80070057错误原因无法复制word文档)

    0x80070057错误原因(0x80070057错误原因无法复制word文档)

  • oppor17相机时间水印(oppo r17拍照怎么显示时间)

    oppor17相机时间水印(oppo r17拍照怎么显示时间)

  • y93和y93s有什么区别(y93和y93s外观咋样区别)

    y93和y93s有什么区别(y93和y93s外观咋样区别)

  • ValueError: The device should not be ‘gpu‘, since PaddlePaddle is not compiled with CUDA问题解决(Paddle)

    ValueError: The device should not be ‘gpu‘, since PaddlePaddle is not compiled with CUDA问题解决(Paddle)

  • PyTorch 之 强大的 hub 模块和搭建神经网络进行气温预测(pytorch with no grad)

    PyTorch 之 强大的 hub 模块和搭建神经网络进行气温预测(pytorch with no grad)

  • 在 AI 上训练 AI:ChatGPT 上训练另一种机器学习模型(ai训练流程)

    在 AI 上训练 AI:ChatGPT 上训练另一种机器学习模型(ai训练流程)

  • python PyQt用动作填充工具栏(python 动态)

    python PyQt用动作填充工具栏(python 动态)

  • 电费发票隔月开如何做账
  • 如何理解递延所得税费用的计算公式
  • 企业计提增值税 附加税
  • 税控盘是什么干嘛的
  • 资产损失税前扣除管理办法
  • 财务费用多好还是少好
  • 应收账款和应付账款的区别
  • 支票上哪里填付款人账号
  • 递延所得税资产计算公式
  • 工程预收款如何处理
  • 去国外参加展览的英文
  • 工资中的考核罚款会计怎么处理?
  • 双软企业资质
  • 印花税应税凭证填是还是否
  • 中国增值税发展史
  • 工程税票怎么开需要交多少
  • 收到委托代销清单,确认收入的会计分录
  • 股权转让流程详解
  • 什么叫净资产收益率
  • 境内向境外提供服务免征增值税
  • 电脑系统还原步骤
  • saproxy.exe - saproxy是什么进程 有什么用
  • 怎么使用win10
  • 32位升级64位系统教程
  • 荣耀x10的鸿蒙系统怎么开启
  • 冲减管理费用的情况
  • php清空数据表
  • 购货方收到红字发票要认证吗
  • 企业出售产品前,预收客户一笔货款
  • 电脑显卡排行榜
  • thinkphp3.1
  • 员工的通讯费怎么报销
  • framework开发教程
  • php实现搜索的方式
  • 旅客运输服务进项税额的计算公式
  • el-upload上传文件携带参数
  • php自定义变量的方法是
  • nor命令
  • 红冲费用如何处理
  • php验证码源码
  • mysql深入理解
  • 代收的运输费用怎么入账
  • 什么人适合单干
  • 银行对账单由谁负责
  • 增值税专用发票的税率是多少啊
  • 绩效工资扣款违法么?
  • 主营业务成本的增加在哪一方
  • 异地车辆登记证书怎么补办
  • 计提存货跌价准备计算公式
  • 职工薪酬纳税调整明细表税收金额
  • 疫情防控重点保障物资生产企业可以按月
  • 长期股权投资账务处理实例
  • 哪些凭证是有效凭证
  • 从公司账户转给他人私户1万元以内需要扣多钱的税
  • 银行代扣水电费发票到哪里打
  • 应付账款在贷方负数
  • 场地租赁费属于什么税收分类编码
  • 预付账款暂估是什么意思
  • 登记生产成本和制造费用的明细账
  • 非营利医疗机构免征哪几种税
  • 期末结账账务处理
  • 将mater库中的系统存储过程批量生成*.sql文件 通用且非常实用
  • 怎么操作win10系统
  • win7总是提示激活
  • xp系统连接共享文件夹
  • mac salad
  • linux/tmp
  • linux和windows关系
  • .exe是什么软件
  • xp如何禁用445
  • WIN10系统中WPS字体颜色浅
  • 修改linux系统用户密码
  • lua打印变量
  • jqueryui
  • jquery和html的关系
  • 安卓开发问题
  • js关闭子窗口
  • “python”
  • 国税新规
  • 如何查询有没有交医保费用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设