所有WIKI > W字母 > 什么是交叉熵?

什么是交叉熵?

交叉熵(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散度密切相关。
  • 在机器学习中,交叉熵被广泛用作分类任务的损失函数。
  • 通过最小化交叉熵,模型可以学习到更接近真实分布的预测。