pytorch 绘制多个算法loss_pytorch: 做多分类时

这篇博客详细介绍了交叉熵损失函数在二分类和多分类任务中的应用。作者通过解释sigmoid函数的作用,展示了如何在PyTorch中使用CrossEntropyLoss()函数处理二分类和多分类问题。文中强调在使用CrossEntropyLoss时,不需要额外进行sigmoid或softmax操作,并提醒注意目标变量需要转换为torch.long类型。
摘要由CSDN通过智能技术生成

常用的一个分类的损失函数是:交叉熵函数

但是真的理解了吗?虽然之前做过图像分类,但是一直没有深入研究,我今天才真正的理解并且记住了它。

pytorch中的交叉熵函数在是 torch.nn中是 CrossEntropyLoss()。

对于二分类问题(一般 标签为 【0,1】),交叉函数公式表示为:

JBZjQz

在二分类中,我们通过神经网络的到一个映射值,随后会通过sigmoid函数,输出一个概率值,反映该样本是正例的可能性,即概率越大,可能性越大。(这里会有一个似然函数的概念,似然函数简单的理解就是 所有可能发生的可能性【记一下,后面补充更好的理解】)

sigmoid函数:

AjQNZn

AFzYzm 将网络的输出映射到[0,1]之间的数值概率上,即为交叉熵函数中的那个预测概率输出(

UVVjQv )。

AFzYzm 或预测输出表征当前样本label为1的概率:

ziEjam

因此样本label为0 时,概率为:

aUJNNj

将上面的两个公式整理为:

E3Qzq2

希望

yeQB32 越大越好,反之,需要让

AfqIBz 的负值越小越好,由此引入了最初的损失函数。

对于多分类,就意味着对每个标签类别下的的可能概率分别求相应的

6FJRfm 并求和:

ueMb2i

上面的二分类,可以用y,1-y代表1,0。多分类的时候要把类别各写各的,所以看起来变成了一半,其实是一样的!!!

在pytorch中使用 CrossEntropyLoss()时,不需要自己再做sigmoid或者softmax辽。参考下面这个博客,非常详细。要注意,target类型要转为torch.long().

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值