CE Loss与BCE Loss的区别

引言

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

一句话概括就是:

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

BCE与CE表达形式:

BCE:BCE+sigmoid

  • sigmoid一般用于二分类问题,下方y^即为sigmoid形式(单个样本)
    CE Loss与BCE Loss的区别
    CE Loss与BCE Loss的区别
    CE Loss与BCE Loss的区别
  • 这个就是交叉上损失函数一般见到的形式,y是真实标签值,y^是估计值
  • 可以参考参考资料,本文是交叉熵损失函数的补充,此处不做细节展示。

CE:CE+softmax

  • softmax函数是sigmoid函数的一个延伸,用于多分类(单个样本)
    CE Loss与BCE Loss的区别
  • k是样本编号,i是样本类别,因为场景是多分类
    CE Loss与BCE Loss的区别
  • 注意多分类中y是one-hot编码

关于CE损失函数的梯度变化

  • 下图为多个样本的情况推导,BCE的推导可以看参考资料
    在这里插入图片描述

总结

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

参考资料

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2023年3月3日
下一篇 2023年3月3日

相关推荐