什么是交叉熵?
交叉熵(Cross Entropy)是信息论中的一个重要概念,广泛应用于机器学习、深度学习、统计学和优化领域。它主要用于衡量两个概率分布之间的差异,是分类任务中最常用的损失函数之一。本文将从交叉熵的定义、数学性质、与信息熵和KL散度的关系、在机器学习中的应用以及具体计算示例等方面进行详细阐述。
1. 交叉熵的定义
交叉熵是信息论中用于衡量两个概率分布之间差异的指标。给定两个离散概率分布 P 和 Q ,交叉熵 H(P, Q) 定义为:

其中:
- P(i) 是真实分布(目标分布)的概率。
- Q(i) 是模型预测分布的概率。
- log通常以自然对数(底数为 ( e ))或对数 2 为底。
对于连续概率分布,交叉熵的定义可以扩展为积分形式:

2. 交叉熵的直观理解
交叉熵的核心思想是衡量用分布Q 来表示分布 P 所需的平均编码长度。当 Q 与 P 完全一致时,交叉熵达到最小值,此时的值等于 P 的熵 H(P) 。
- 熵(Entropy):熵 ( H(P) ) 是分布 ( P ) 的不确定性的度量,定义为:

- 交叉熵与熵的关系:交叉熵可以分解为熵和KL散度(Kullback-Leibler Divergence)之和:

- 其中,DKL(P ||Q) 是KL散度,用于衡量 P 和 Q 之间的差异。由于KL散度非负,交叉熵总是大于或等于熵。
3. 交叉熵与KL散度的关系
KL散度(Kullback-Leibler Divergence)是衡量两个概率分布差异的指标,定义为:

从交叉熵的定义可以看出:

这意味着:
- 当 Q 与 P 完全一致时,𝐷𝐾𝐿(𝑃∥𝑄)=0,此时 𝐻(𝑃,𝑄)=𝐻(𝑃)。
- 当 Q 与 P 差异越大,𝐷𝐾𝐿(𝑃∥𝑄)越大,交叉熵 𝐻(𝑃,𝑄)也越大。
4. 交叉熵在机器学习中的应用
在机器学习中,交叉熵被广泛用作分类任务的损失函数。以下是其具体应用场景:
4.1 分类任务中的交叉熵损失
在分类问题中,真实标签通常表示为 one-hot 编码(例如 P = [1, 0, 0] ),而模型输出是一个概率分布(例如 Q = [0.7, 0.2, 0.1] )。交叉熵损失函数定义为:

对于多分类问题,交叉熵损失可以写成:

其中:
- C 是类别总数。
- 𝑦𝑐是真实标签的 one-hot 编码。
- 𝑝𝑐是模型预测的类别概率。
4.2 二分类问题中的交叉熵
对于二分类问题,交叉熵损失可以简化为:

其中:
- 𝑦 是真实标签(0 或 1)。
- 𝑝是模型预测为正类的概率。
5. 交叉熵的计算示例
以下是一个具体的计算示例:
5.1 多分类问题
假设有一个三分类问题,真实标签为 P = [1, 0, 0],模型预测的概率分布为 Q = [0.7, 0.2, 0.1] 。交叉熵计算如下:

5.2 二分类问题
假设真实标签为 y = 1,模型预测为正类的概率为 p = 0.8 。交叉熵计算如下:

6. 交叉熵的优化意义
在机器学习中,最小化交叉熵等价于最小化模型预测分布与真实分布之间的差异。通过梯度下降等优化算法,模型可以逐步调整参数,使预测分布 Q 逼近真实分布 P。
7. 总结
交叉熵是衡量两个概率分布差异的重要工具,具有以下特点:
- 它是信息论中的核心概念,与熵和KL散度密切相关。
- 在机器学习中,交叉熵被广泛用作分类任务的损失函数。
- 通过最小化交叉熵,模型可以学习到更接近真实分布的预测。