关于分类的三种损失函数公式推导

1.二分类

交叉熵loss

调用BCE或者CrossEntropy都可以,区别是调BCE要自己加sigmoid,调用CrossEntropy是系统默认调用Softmax激活函数

2.多分类(不互斥)

该函数非常简单,就是对于每个类别求二分类损失函数,得到一个,list,再对该list求sum/mean

3.多分类(互斥)

在Pytorch中CrossEntropy函数

先看一下官方文档

先从该函数的出发点考虑,我们希望,正例的概率偏向1,负例的概率偏向0,如果不满足的话,我们将惩罚它们,此时softmax函数就可以帮我们做到该功能。观察上式,分子为exp(x[class]),为正例的概率,分母为负例+正例的概率,当正例的概率偏离1时,整个式子变大,当负例偏离0时候,整个式子变大。此外softmax还起到了归一化的效果。接下来在接一个log函数,这样便得到我们的第一个函数接口LogSoftmax,接下来再接一个NLLLoss(negative log likelihood loss),该函数就是将label对应的LogSoftmax输出结果求平均,得到最终输出

该函数实现的时候,我觉得可以直接实现后面的一个式子,对每个example的输出1.exp2.sum3.log并加上对应label的输出值的负数。log(sum)一定会大于前面的负数,所以放心,最终的loss一定是正值,这样的话backward也很好求。

最后说一下函数forward接口

x,是一个batch*C的tensor

class就是具体类别,是一个B的tensor

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值