交叉熵损失

交叉熵(Cross-Entropy)是信息论和机器学习中常用的一个概念,特别是在分类任务中。它衡量了两个概率分布之间的差异性,通常用于衡量模型预测结果与真实标签之间的差异。

在分类任务中,假设有一个真实的标签分布 yyy 和一个模型的预测分布 y^\hat{y}y^​,交叉熵可以通过以下公式计算:

H(y,y^)=−∑iyilog⁡(y^i)H(y, \hat{y}) = -\sum_{i} y_i \log(\hat{y}_i)H(y,y^​)=−∑i​yi​log(y^​i​)

其中,yiy_iyi​ 是真实标签的第 i 个类别的概率,y^i\hat{y}_iy^​i​ 是模型预测的第 i 个类别的概率,log⁡\loglog 是自然对数。交叉熵越小,表示模型的预测结果与真实标签之间的差异性越小,模型的性能越好。

在机器学习中,交叉熵常用于分类模型的损失函数(loss function)。对于二分类问题,交叉熵损失函数可以简化为:

Binary Cross-Entropy Loss=−(ylog⁡(y^)+(1−y)log⁡(1−y^))\text{Binary Cross-Entropy Loss} = -\left( y \log(\hat{y}) + (1-y) \log(1-\hat{y}) \right)Binary Cross-Entropy Loss=−(ylog(y^​)+(1−y)log(1−y^​))

其中,yyy 是真实的二分类标签(0或1),y^\hat{y}y^​ 是模型预测的概率值。这个损失函数在训练过程中常用于衡量二分类模型的预测误差,通过优化这个损失函数,模型可以学习到更好的分类能力。

import torch
import torch.nn.functional as F

# 创建真实标签 y 和模型预测的概率分布 y_hat
y = torch.tensor([0, 1, 1])  # 真实标签,假设是一个二分类任务,0代表负类,1代表正类
y_hat = torch.tensor([[0.2, 0.8], [0.6, 0.4], [0.4, 0.6]])  # 模型预测的概率分布,每个样本有两个类别的概率值

# 使用 PyTorch 的交叉熵函数计算交叉熵损失
cross_entropy_loss = F.cross_entropy(y_hat, y)

print("交叉熵损失:", cross_entropy_loss.item())

import torch
import torch.nn.functional as F

# 创建真实标签 y 和模型预测的概率分布 y_hat
y = torch.tensor([0, 1, 1])  # 真实标签,假设是一个二分类任务,0代表负类,1代表正类
y_hat = torch.tensor([[0.2, 0.8], [0.6, 0.4], [0.4, 0.6]])  # 模型预测的概率分布,每个样本有两个类别的概率值

# 使用 PyTorch 的交叉熵函数计算交叉熵损失
cross_entropy_loss = F.cross_entropy(y_hat, y)

print("交叉熵损失:", cross_entropy_loss.item())
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值