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个样本的真实类别。

相关推荐
泡干脆面就番茄1 小时前
深度学习:PyTorch框架初识——MNIST手写数字识别
python·深度学习
richard_first2 小时前
第3章 PTQ:不用重新训练也能量化 LLM
人工智能·深度学习·语言模型·自然语言处理·transformer
萌新小码农‍2 小时前
KL散度的介绍
人工智能·深度学习·机器学习
面包狗AI4S4 小时前
GitHub AI4S 项目观察(2026-09-07—2026-09-13)
人工智能·深度学习·机器学习
ysu_03145 小时前
PINNs的参数反演——从“正问题”到“逆问题”的工程改造
人工智能·pytorch·深度学习·mcmc·参数反演·逆问题·darcy流
桃西西呀5 小时前
限速 30 和限速 80 只差一个数字,卷积网络怎么分得清?
人工智能·深度学习·llm
计算机编程-吉哥7 小时前
深度学习:我用YOLO11-L做了一个水下垃圾检测系统 对比YOLOv8-L/Faster R-CNN【计算机毕业设计选题推荐】
人工智能·深度学习·yolo·课程设计·计算机毕业设计选题
ai小陈7 小时前
LTX2.5音视频生成任务验收实战:批量记录与音画质量检查
人工智能·python·深度学习·ai·音视频·gpu算力
倔强的石头1068 小时前
【深度学习】残差连接_解决深层网络梯度消失问题
人工智能·深度学习
Zguigo9 小时前
【DL99】RAG--让LLM连接外部知识
深度学习