Softmax、LogSoftmax、交叉熵、NLLLoss 全套公式

Softmax、LogSoftmax、交叉熵、NLLLoss 全套公式

设:

  • z:模型输出原始分数,logits,没有 0‑1 约束
  • (z_i):第 i 个类别的得分
  • C:总类别数量
  • y:真实标签,是类别索引((y\in{0,1,...,C-1}))

1. Softmax 公式

把 logits 转为概率分布,(\sum_{i=1}^C p_i = 1)

(p_i = \text{Softmax}(z_i) = \frac{e{z_i}}{\sum_{j=1}{C} e^{z_j}})

输出 (p_i\in(0,1)),代表模型预测第 i 类的概率。

数值问题:(z_i)很大时 (e^{z_i}) 会溢出;工程实现会减去最大值做稳定。

2. LogSoftmax

Softmax 之后取对数,PyTorch CrossEntropyLoss 内部第一步

(\log p_i = \text{LogSoftmax}(z_i) = \log\left(\frac{e{z_i}}{\sum_{j=1}{C} e^{z_j}}\right))## 3. 交叉熵 Cross‑Entropy(针对单标签分类)

原始交叉熵定义(输入是概率p):

(\mathcal L_{\text{CE}} = -\sum_{i=1}^{C} y_i^\text{one‑hot}\cdot \log(p_i))

(y_i^\text{one‑hot}):真实标签的 one‑hot 向量,只有真实类别位置为 1,其余全 0。

所以求和只剩下一项:

(\mathcal L_{\text{CE}} = -\log(p_y))

(p_y):模型对真实类别y预测出来的概率。

含义:真实类别预测概率越大,loss 越小;概率趋近 0,loss 趋向无穷大。

4. NLLLoss(负对数似然损失)

输入是 (\log(p_i))(LogSoftmax 输出),不是原始概率!

(\mathcal L_{\text{NLL}} = -\log(p_y))>

📌 数学关系:

(\text{CrossEntropyLoss}(z,y) = \text{NLLLoss}\big(\text{LogSoftmax}(z),\ y\big))

PyTorch nn.CrossEntropyLoss 输入原始 logits z,内部执行 LogSoftmax → NLLLoss。

❗ 易错提醒

如果你已经手动算出 (p_i=\text{Softmax}(z_i)),不能直接喂给CrossEntropyLoss

需要先 (\log(p_i)),再送入 NLLLoss:

(\mathcal L_{\text{NLL}} = \text{NLLLoss}\big(\log(\text{Softmax}(z)),y\big))

和上面等价。

5. 平均 loss(batch 版本)

一个 batch 有 N 个样本,总损失对样本求平均:

(\mathcal L_{\text{batch}} = \frac{1}{N}\sum_{n=1}^N -\log(p_{y_n}^{(n)}))

(y_n):第n个样本的真实类别。

相关推荐
YOLO数据集集合31 分钟前
蚊子目标检测数据集 | 蚊虫检测 病媒生物 智能硬件 轻量化模型 目标检测 YOLO格式 深度学习数据集9015期
深度学习·yolo·目标检测·计算机视觉·分类·智能硬件·蚊子识别
MartinYeung52 小时前
[论文学习]AI-Trader:实时金融市场中自主代理的基准测试
人工智能·深度学习·学习
集芯微电科技有限公司2 小时前
700V/17A高频开关低导通阻GaN HEMT驱动器适用于快充,LLC,PFC功率校正
人工智能·嵌入式硬件·深度学习·神经网络·机器学习·生成对抗网络·计算机外设
qq_25294131682 小时前
窗户清洁检测数据集 | 窗户清洁检测 建筑运维 二分类任务 YOLO格式 深度学习数据集9019期
运维·人工智能·深度学习·yolo·目标检测·分类·窗户清晰度
雷帝木木3 小时前
开源与商业AI工具的选型框架:总拥有成本、定制化与社区活力评估
人工智能·python·深度学习·机器学习
星月夜语3 小时前
2026 TPAMI | StarIR:空间-频域融合的高效图像复原
图像处理·深度学习·计算机视觉
inquisiter3 小时前
从反向传播看 QKV:注意力只是计算图里的几个节点
深度学习
磁场转动100万匹4 小时前
深度学习入门:从神经网络到反向传播的完整解析
人工智能·深度学习·神经网络
啥都想学点的研究生4 小时前
一篇文章讲清楚:超参数的选择方法——交叉验证和网格搜索
人工智能·深度学习·机器学习