一句话总结
交叉熵(Cross Entropy)是一种常用的损失函数,用来衡量模型预测的概率分布与真实分布之间的差距,广泛应用于分类问题。
交叉熵是衡量模型预测概率分布与真实分布差异的“误差尺”,通过惩罚错误预测的置信度,指导模型高效学习正确分类
一、基础概念:什么是交叉熵?
交叉熵,本质上是用来比较两个概率分布有多“接近”的一种数学方法。
在机器学习和深度学习中,交叉熵常被用作分类任务的损失函数,帮助模型判断“预测得准不准”。
- 概率分布:比如模型预测“这张图片是猫的概率是0.8,是狗的概率是0.2”,而真实标签是“猫”。
- 损失函数:用来衡量模型预测和真实答案的差距。
- 核心思想:用对数惩罚机制,对“自信的错误预测”施加重罚,对“正确但保守的预测”轻罚。
- 通俗类比:
老师批改选择题:
- 学生自信选错(概率0.9)→ 扣10分(重罚);
- 学生犹豫选对(概率0.6)→ 扣2分(轻罚);
- 交叉熵就是这套评分规则,推动学生(模型)既要做对,又要自信做对。
二、交叉熵的公式和含义
1. 二分类交叉熵公式
对于二分类问题(比如判断图片是猫还是不是猫):
Cross Entropy=-[y·log(y^)+(1-y)·log(1-y^)]Cross Entropy=-[y·log(y^)+(1-y)·log(1-y^)]
- yy:真实标签(0或1)
- y^y^:模型预测的概率(0到1之间)
2. 多分类交叉熵公式
对于多分类问题(比如识别猫、狗、鸟):
Cross Entropy=-∑i=1Nyi·log(y^i)Cross Entropy=-∑i=1Nyi·log(y^i)
- NN:类别数
- yiyi:第 ii 类的真实概率(通常是one-hot编码,只有一个为1,其余为0)
- y^iy^i:模型预测第 ii 类的概率
3. 物理意义
- 如果模型预测和真实标签完全一致,交叉熵为0(损失最小)。
- 预测越偏离真实标签,交叉熵越大(损失越大)。
三、实例计算(多分类)
场景 | 真实标签 | 模型预测 | 交叉熵计算 | 结果 |
预测较准(猫) | [1,0,0] | [0.8,0.1,0.1] | -1·log(0.8) = -(-0.223) | 0.223 |
预测错误且自信(狗) | [1,0,0] | [0.1,0.8,0.1] | -log(0.1) = 2.302 | 2.302 |
对比结论 → 错误越自信,损失值越大!
四、为什么用交叉熵?
1.梯度优势:错误越大,学习信号越强
- 公式推导:交叉熵损失对预测值^y的梯度为 ^y = (^y - y) 。
- 意义:预测完全错误(y=0, ^y=0.9)→ 梯度=0.9(大幅调整参数);预测接近正确(y=1, ^y=0.6)→ 梯度=-0.4(小幅调整)。
- 对比MSE:MSE梯度含Sigmoid导数,易饱和导致梯度消失(错误大时学习慢)。
2.与KL散度的关系
graph LR
A[KL散度] -->|衡量分布差异| B[交叉熵]
B --> C[交叉熵 = KL散度 + 真实分布熵]
C --> D[固定真实分布时,最小化交叉熵 ≡ 最小化KL散度]
- 术语解释:KL散度:衡量两个分布的差异(非对称性,D(p||q) ≠ D(q||p))。熵:真实分布的不确定性(固定值,如one-hot的熵=0)。
- 结论:分类任务中,交叉熵 = KL散度(因H(p)=0),直接推动预测分布逼近真实分布
五、图示帮助理解
上图:模型预测和真实标签通过交叉熵计算差距,损失值指导模型学习。