WMX · 随记
·AI· 3 分钟阅读

交叉熵:对正确类别给低概率为什么惩罚很大

分类模型选对标签并不说明概率分布理想。正确类别得到 0.51 和 0.99,虽然预测标签相同,训练损失却不同。

▶ 本文含视频讲解
▶ 教学视频手动播放 · 英语讲解

What is backpropagation really doing?

结合模型讲解理解本文实验的背景;正文提供可独立运行的简化示例。此为外部原版课程,多篇笔记可能共用;未剪辑为本文专属视频。

播放器需要能访问 YouTube 的网络;若这里无法加载,可打开原视频。本文与本地图解仍可独立阅读。

AI 系列概览:模型机制、系统边界与效果评估
AI 系列概览:模型机制、系统边界与效果评估 点击图片查看大图 ↗

问题从哪里出现

分类模型选对标签并不说明概率分布理想。正确类别得到 0.51 和 0.99,虽然预测标签相同,训练损失却不同。

理解核心机制

单标签分类的负对数似然是 -log(p_true)。正确类别概率趋近零时损失迅速变大;对样本求均值时,要明确每个样本或 token 的权重。

动手做一个小实验

Python 3.11 或更新版本,仅使用标准库;将示例保存为 demo.py 后执行 python3 demo.py。数字与样本均为教学演示,不代表真实模型或服务器的测量结果。

Python7 行 · 可横向滚动
import math
truth = [0, 1]
probabilities = [[0.8, 0.2], [0.4, 0.6]]
losses = [-math.log(row[label]) for row, label in zip(probabilities, truth)]
mean_loss = sum(losses) / len(losses)
assert -math.log(0.9) < -math.log(0.6)
print(losses, mean_loss)

适用边界与常见误区

示例假定输入是合法且非零的概率。实际训练通常直接传 logits 给框架损失函数;多标签分类、标签平滑与 padding 掩码会改变具体定义。

继续练习

保留预测标签但降低正确类别概率,观察准确率与损失是否同步变化,并解释两种指标各自反映什么。

参考资料

阅读相关官方文档或原始资料 ↗

← 返回文章归档