交叉熵损失

什么是交叉熵损失

       提起损失,我们最熟悉的可能就是MSE,最小均方误差损失了。MSE通俗理解,就是预测值与真实值之间取个差,再求平方。交叉熵损失也是一种衡量预测值与真实值之间的差异的方式。两者的定义不同,适用的范围也不同。通常来说,交叉熵损失用于分类问题的损失计算,其表达式为:
       L o s s = 1 N ∑ i = 1 N y i j l o g ( p i j ) , j = 1 , 2 , . . . , C . Loss = \frac{1}{N}\sum_{i=1}^Ny_{ij}log(p_{ij}),j=1,2,...,C. Loss=N1i=1Nyijlog(pij),j=1,2,...,C.
       其中, N N N 表示的是样本的个数, C C C表示的分类的类别个数。 y i j y_{ij} yij表示第i个样本是否属于第j类,只有两个值,0或者1。而 p i j p_{ij} pij表示的是i样本预测为第j类的概率值,取值范围是[0,1]。
       交叉熵损失可以适用于二分类,多分类问题,它可以捕捉预测概率相对大小的差异,进一步可以更加细致的衡量不同分类器的性能。而MSE也可以捕捉这种信息,那为什么在分类问题中几乎不适用MSE损失函数呢?因为使用MSE+sigmoid配合的话,前期地学习速率非常地缓慢,因此大家就不怎么用它了。
       神经网络最后一层一般是softmax函数,经过softmax函数以后变成归一化的概率值,logits指的就是未归一化的概率值,logit,对it求log,logits = log(P/1-P),P就是未归一化的概率值。上述 L o s s Loss Loss中的 p i j p_{ij} pij指的就是softmax函数输出的归一化的概率值,也就是每一个class对应的概率。

one hot向量

       对于多分类问题,不需要做one-hot编码,pytorch中会自动做one hot编码,接下来再进行crossentropy的损失的求解。
       对于二分类问题,需要做one-hot编码,然后再求损失。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值