引言
- 该文只是简单为本人学习交叉熵损失函数以及focal loss等相关问题的一个补充,所以介绍的不够全面,待后续持续补充
一句话概括就是:
BCE用于“是不是”问题,例如LR输出概率,明天下雨or不下雨的概率;CE用于“是哪个”问题,比如多分类问题。
BCE与CE表达形式:
BCE:BCE+sigmoid
- sigmoid一般用于二分类问题,下方y^即为sigmoid形式(单个样本)
- 这个就是交叉上损失函数一般见到的形式,y是真实标签值,y^是估计值
- 可以参考参考资料,本文是交叉熵损失函数的补充,此处不做细节展示。
CE:CE+softmax
- softmax函数是sigmoid函数的一个延伸,用于多分类(单个样本)
- k是样本编号,i是样本类别,因为场景是多分类
- 注意多分类中y是one-hot编码
关于CE损失函数的梯度变化
- 下图为多个样本的情况推导,BCE的推导可以看参考资料
总结
- 在分类问题中,如果遇到类别间不互斥的情况,只能采用“sigmoid+BCE”;如果遇到类别间互斥的情况(只能有一类胜出),“sigmoid+BCE”化为多个二分类问题与“softmax+CE”直接进行分类都是有被用到的方法
- 仅看损失形式上,BCE好像既考虑了正样本损失又考虑了负样本的损失,而CE只考虑了正样本损失。 但其实,二者所使用的激活函数不同,前者使用sigmoid,后者使用softmax,softmax其形式上本身就考虑负类的信息在里面。
- CE在二分类情况下本质上和BCE没有太大的区别,但可能优化上有细微不同。
参考资料
文章出处登录后可见!
已经登录?立即刷新