CE Loss与BCE Loss的区别

引言

  • 该文只是简单为本人学习交叉熵损失函数以及focal loss等相关问题的一个补充,所以介绍的不够全面,待后续持续补充

一句话概括就是:

BCE用于“是不是”问题,例如LR输出概率,明天下雨or不下雨的概率;CE用于“是哪个”问题,比如多分类问题。

BCE与CE表达形式:

BCE:BCE+sigmoid

  • sigmoid一般用于二分类问题,下方y^即为sigmoid形式(单个样本)
    y ^ = 1 1 + e − Z (1.1) \hat{y} = \frac{1}{1+e^{-Z}}\tag{1.1} y^=1+eZ1(1.1)
    Z = w x (1.2) Z = wx\tag{1.2} Z=wx(1.2)
    L B C E = − [ y ∗ ln ⁡ y ^ + ( 1 − y ) ln ⁡ ( 1 − y ^ ) ] (1.3) L_{BCE} = -[y*\ln{\hat{y}} + (1-y)\ln{(1- \hat{y}})]\tag{1.3} LBCE=[ylny^+(1y)ln(1y^)](1.3)
  • 这个就是交叉上损失函数一般见到的形式,y是真实标签值,y^是估计值
  • 可以参考参考资料,本文是交叉熵损失函数的补充,此处不做细节展示。

CE:CE+softmax

  • softmax函数是sigmoid函数的一个延伸,用于多分类(单个样本)
    y ^ = e − x i ∑ k = 1 n e − x k (2.1) \hat{y} = \frac{e^{-x_{i}}}{\sum_{k=1}^ne^{-x_{k}}}\tag{2.1} y^=k=1nexkexi(2.1)
  • k是样本编号,i是样本类别,因为场景是多分类
    L C E = − y ln ⁡ y ^ (2.2) L_{CE} = - y\ln{\hat{y}}\tag{2.2} LCE=ylny^(2.2)
  • 注意多分类中y是one-hot编码
关于CE损失函数的梯度变化
  • 下图为多个样本的情况推导,BCE的推导可以看参考资料
    在这里插入图片描述

总结

  • 在分类问题中,如果遇到类别间不互斥的情况,只能采用“sigmoid+BCE”;如果遇到类别间互斥的情况(只能有一类胜出),“sigmoid+BCE”化为多个二分类问题与“softmax+CE”直接进行分类都是有被用到的方法
  • 仅看损失形式上,BCE好像既考虑了正样本损失又考虑了负样本的损失,而CE只考虑了正样本损失。 但其实,二者所使用的激活函数不同,前者使用sigmoid,后者使用softmax,softmax其形式上本身就考虑负类的信息在里面。
  • CE在二分类情况下本质上和BCE没有太大的区别,但可能优化上有细微不同。

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

矮人三等

秀儿,是你吗秀儿?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值