交叉熵的本质是用一个“估计的分布”Q去描述“真实的分布”P时,所需要的平均信息量(或说造成的平均惊讶度)。

它衡量的是两个概率分布之间的“距离”或差异,在机器学习中,交叉熵越小,说明我们的预测分布Q越接近真实分布P。
从信息论基础出发的三个关键概念
要理解交叉熵,最好先理解三个递进的概念:
信息量 / 惊喜度
- 定义:一个事件发生的概率越小,其发生时带来的“信息量”或“惊喜度”就越大。
- 公式:对于一个发生概率为
p的事件,其信息量I(p)为:I(p) = -log₂(p)(底数为2时,单位是比特;也可用自然对数,单位是奈特)。 - 例子:太阳从东边升起(p≈1),信息量≈0,毫不意外,你买的彩票中了头奖(p极低),信息量巨大。
熵
- 定义:一个概率分布P本身的平均惊喜度(不确定性),即,对所有可能事件的信息量求期望。
- 公式:
H(P) = - Σ [pᵢ * log₂(pᵢ)],对P的所有可能事件i求和。 - 含义:熵是分布P的固有属性,熵越大,系统越混乱、越不确定。
- 例子:抛一枚均匀硬币,正反面概率各0.5,熵为1比特(不确定性最高),抛一枚两面都是正面的硬币,熵为0(完全确定)。
交叉熵
- 定义:用另一个估计的分布Q,去表示真实分布P时,所需的平均信息量。
- 公式:
H(P, Q) = - Σ [pᵢ * log₂(qᵢ)]。- 注意:这里用的是真实概率 pᵢ 和 估计概率的对数 log(qᵢ) 相乘再求和。
- 直观理解:
- 如果Q完美匹配P(即对所有i,qᵢ = pᵢ),那么交叉熵就等于P自身的熵
H(P)。 - 如果Q和P不匹配,那么用Q来描述P就会产生“额外”的信息损耗,导致
H(P, Q) > H(P)。 - 这个“额外损耗”就是著名的KL散度。
- 如果Q完美匹配P(即对所有i,qᵢ = pᵢ),那么交叉熵就等于P自身的熵
与KL散度的关系
- KL散度(相对熵):专门衡量两个分布P和Q差异的量,公式为:
D_KL(P || Q) = Σ [pᵢ * log₂(pᵢ / qᵢ)] = H(P, Q) - H(P)。 - 关键等式:
交叉熵 = 熵 + KL散度H(P, Q) = H(P) + D_KL(P || Q) - 意义:对于一个固定的真实分布P,其熵H(P)是常数。最小化交叉熵H(P, Q) 就等价于最小化KL散度D_KL(P || Q),也就是让Q尽可能地逼近P,这就是交叉熵能作为损失函数的理论根源。
在机器学习(尤其是分类任务)中的应用
在监督学习中,我们有一个真实标签(可看作真实分布P)和模型的预测输出(估计分布Q)。
二分类任务 (Binary Classification)
- 真实标签y:通常为0或1(是不是猫)。
- 预测输出ŷ:模型预测样本属于正类的概率(是猫的概率)。
- 交叉熵损失函数:
L = - [y * log(ŷ) + (1 - y) * log(1 - ŷ)]- 当y=1时,损失为
-log(ŷ),预测ŷ越接近1,损失越小。 - 当y=0时,损失为
-log(1 - ŷ),预测ŷ越接近0,损失越小。
- 当y=1时,损失为
多分类任务 (Multi-class Classification)
- 真实标签y:通常表示为一个one-hot向量,共有3类,真实属于第2类,则
y = [0, 1, 0],这就是真实分布P,它只在真实类别的概率为1,其余为0。 - 预测输出ŷ:模型通过Softmax函数输出一个概率分布。
ŷ = [0.1, 0.7, 0.2],这就是估计分布Q。 - 交叉熵损失函数(分类任务中最常用的形式):
L = - Σ yᵢ * log(ŷᵢ)(对所有类别i求和) 由于y是one-hot向量,只有真实类别j对应的yⱼ=1,其他都为0,因此公式简化为:L = - log(ŷⱼ),其中j是真实类别。- 意义:只关心模型对真实类别预测概率的对数值,预测概率ŷⱼ越高(越接近1),
-log(ŷⱼ)就越小,损失也就越小。
- 意义:只关心模型对真实类别预测概率的对数值,预测概率ŷⱼ越高(越接近1),
一个简单例子:
假设一个3分类问题,真实标签为第2类(y = [0, 1, 0])。
- 模型A预测:
ŷ_A = [0.2, 0.7, 0.1]-> 损失L_A = -log(0.7) ≈ 0.36 - 模型B预测:
ŷ_B = [0.2, 0.3, 0.5]-> 损失L_B = -log(0.3) ≈ 1.20显然,模型A的预测更好,损失更小。
为什么在分类中常用交叉熵而不是均方误差(MSE)?
- 梯度性质更好:对于使用Sigmoid/Softmax的输出单元,MSE的损失函数在误差大时梯度可能非常小(饱和区),导致学习缓慢,而交叉熵损失的梯度与
(ŷ - y)成正比,误差越大梯度越大,学习更快、更有效。 - 与概率解释匹配:交叉熵直接衡量两个概率分布的差异,其理论根基(信息论)非常坚实,而MSE更擅长处理回归问题(输出是连续值)。
- 实践效果:在分类问题上,使用交叉熵损失通常能比MSE获得更快的收敛速度和更好的最终性能。
- 交叉熵:衡量用一个分布Q去近似另一个分布P时的“平均信息成本”。
- 核心关系:
交叉熵 = 真实分布的熵 + 两个分布的KL散度,最小化交叉熵等价于最小化KL散度。 - 在机器学习中:它是分类任务的标配损失函数,通过比较真实标签的one-hot分布和模型的预测概率分布,来指导模型参数的更新。
- 公式(多分类):
L = - Σ yᵢ * log(ŷᵢ), 常与Softmax输出层结合使用。
理解交叉熵,是理解现代深度学习分类模型训练过程的一块基石。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。