【损失函数】Cross Entropy Loss 交叉熵损失

1、介绍

主页介绍的几种损失函数都是适用于回归问题损失函数,对于分类问题,最常用的损失函数是交叉熵损失函数 Cross Entropy Loss。它用于测量两个概率分布之间的差异,通常用于评估分类模型的性能。

2、公式

对于二分类问题,交叉熵损失的一般形式为:

其中, 是样本数量, 是实际标签, 是模型的预测概率。

对于多分类问题,交叉熵损失的一般形式为:

其中, 是样本数量, 是类别数量, 是实际标签的独热编码(one-hot encoding),​ 是模型对类别 的预测概率。

3、图像

上图是交叉熵损失(Cross Entropy Loss)的图像。图中展示了两个类别(真实类别和错误类别)的概率与损失之间的关系,可以看到约接近目标值损失越小,随着误差变差,损失呈指数增长。

4、实例

假设我们有以下情况:我们正在训练一个模型来进行三种实例的分类,此时有100个待测样本。

我们使用 CrossEntropyLoss 作为损失函数:

python 复制代码
import torch
import torch.nn as nn

# 示例数据
torch.manual_seed(42)
num_classes = 3
num_samples = 100
y_true = torch.randint(0, num_classes, (num_samples,))
y_pred_logits = torch.randn(num_samples, num_classes)

# 定义交叉熵损失函数
criterion = nn.CrossEntropyLoss()

# 计算损失
loss = criterion(y_pred_logits, y_true)

print(f'Cross Entropy Loss: {loss.item()}')

在这个例子中,y_pred_logits 是模型的输出,它包含了对每个类别的未归一化的预测值。y_true 是实际标签。通过传递这两者给 CrossEntropyLoss,可以计算交叉熵损失。在实际训练中,您可能需要结合优化器来更新模型的权重以减小损失。

5、参考

深度学习常用损失函数总览:基本形式、原理、特点 (qq.com)

相关推荐
量子-Alex8 分钟前
【大模型后训练SFT】Finetuning with Sampling: SFT Learns Better Than You Think
人工智能·深度学习·机器学习
ForDreamMusk11 分钟前
Transformer Encoder Block
人工智能·深度学习·transformer
打工仔折腾 AI18 分钟前
LLaMA 1 到 LLaMA 3 架构演进拆解:从 RoPE、GQA 到词表扩张
人工智能·后端·python·深度学习·langchain·llama
天国梦1 小时前
哪个英语教学软件功能比较全面?我按五个维度拆了一遍
人工智能·机器学习
这张生成的图像能检测吗2 小时前
(论文速读)LINN:液体神经网络与脉冲神经元融合的可解释旋转机械故障诊断
人工智能·深度学习·神经网络·故障诊断
东方佑2 小时前
v24 (Hybrid2Fast) 架构与实验报告
人工智能·深度学习·语言模型·自然语言处理·架构
龍德明宇2 小时前
无摩擦的智能与有重力的主体-龍德明宇
人工智能·深度学习·ai哲学·负主体性·ai存在论
成为深度学习高手4 小时前
TimeBridge:用Integrated Attention与Cointegrated Attention分别桥接短期平稳与长期协整的时序预测模型
人工智能·机器学习·数据挖掘
fl1768314 小时前
工业镀金钨铜合金散热器表面缺陷识别污渍划痕分割数据集labelme格式1000张2类别低分辨率
人工智能·机器学习
成为深度学习高手5 小时前
SEMixer:以随机注意力增强patch语义、渐进混合多尺度的轻量长期时序预测模型
人工智能·深度学习·机器学习·数据挖掘·时间序列