1. 概述

本文将深入探讨交叉熵(Cross-Entropy)在机器学习中的定义与应用。

我们将从信息论中的熵(Entropy)概念出发,理解它在监督学习中的意义;

接着,我们会从单变量分布的熵出发,推导出双变量分布的交叉熵,并理解其作为两个概率分布之间差异度量的作用;

最后,我们讨论如何将交叉熵作为损失函数使用,并通过梯度下降法优化模型参数。

2. 熵的概念

2.1. 监督学习中的熵与标签

熵是信息论中的核心概念。在分类任务中,我们的目标是学习一个函数,将输入特征映射到有限的标签集合中。设标签集合为:

$$ C = {c_1, c_2, ..., c_n} $$

我们可以将这些标签视为模型输出的可能值,并计算模型输出标签的熵:

$$ H = - \sum_{i=1}^n p(c_i) \times \log p(c_i) $$

这个公式衡量了模型预测结果的不确定性。预测越模糊,熵越高。

2.2. 从确定性到概率性分类

在机器学习中,我们通常不会直接输出单一的标签,而是输出一个概率分布。这可以通过以下几种激活函数实现:

  • Logistic 函数(用于二分类)
  • Softmax 函数(用于多分类)
  • 双曲正切函数(Tanh)(归一化后也可用于概率)

这些函数输出的是一个在 [0,1] 区间内的值或向量,可以解释为类别归属的概率分布。

2.3. 标签概率分布与熵

以 Softmax 函数为例,它不是直接输出一个最可能的类别,而是返回一个完整的概率分布:

$$ P(C) = {p(c_1), p(c_2), ..., p(c_n)} $$

我们可以基于这个分布计算熵:

$$ H = - \sum_{i=1}^n p(c_i) \times \log p(c_i) $$

该熵值反映了模型预测的不确定性。预测越集中(某个类别概率接近 1),熵越低;预测越模糊(多个类别概率接近),熵越高。

2.4. 分类任务中的熵示例

以逻辑回归为例,输出是一个介于 0 和 1 之间的值,表示属于类别 1 的概率:

$$ P(y=1|x) = \sigma(x) = \frac{1}{1 + e^{-x}} $$

对应的类别 0 的概率为:

$$ P(y=0|x) = 1 - \sigma(x) $$

此时,熵为:

$$ H = -\sigma(x) \log \sigma(x) - (1 - \sigma(x)) \log (1 - \sigma(x)) $$

当模型输出不确定(即概率接近 0.5)时,熵达到最大值。

2.5. 多个概率分布的比较

我们可以比较多个模型的输出分布。例如,比较两个逻辑回归模型:

  • 模型 1: $\sigma_1(x) = \frac{1}{1 + e^{-x}}$
  • 模型 2: $\sigma_2(x) = \frac{1}{1 + e^{-1 - 2x}}$

它们的熵不同,说明不同模型的预测分布具有不同的不确定性

2.6. 不同熵之间的比较

如果我们再引入第三个模型:

  • 模型 3: $\sigma_3(x) = \frac{1}{1 + e^{10 + 5x}}$

它的输出更偏向于某一类,因此熵更低。

这说明:如果我们想比较模型之间的预测效果,不能只看熵的大小,而需要一个统一的度量标准

3. 交叉熵

3.1. 交叉熵的定义

交叉熵是衡量两个概率分布之间差异的指标。设真实分布为 $p(x)$,模型预测分布为 $q(x)$,则交叉熵为:

$$ H(p, q) = - \sum_{i=1}^n p(x_i) \times \log q(x_i) $$

注意:交叉熵不是对称的,即 $H(p, q) \ne H(q, p)$。

3.2. 交叉熵用于模型比较

以两个逻辑回归模型为例:

  • 真实分布:$\sigma_1(x)$
  • 预测分布:$\sigma_2(x)$

它们的交叉熵为:

$$ H(\sigma_1(x), \sigma_2(x)) = -\sigma_1(x) \log \sigma_2(x) - (1 - \sigma_1(x)) \log (1 - \sigma_2(x)) $$

交叉熵通常比两个分布各自的熵更高,说明它反映了两个分布之间的“距离”。

3.3. 顺序很重要

交叉熵的顺序不能颠倒。在监督学习中:

  • 真实分布(标签)是第一个参数 $p(x)$
  • 模型预测是第二个参数 $q(x)$

这是标准做法,顺序错误会导致梯度方向错误,影响训练效果

4. 交叉熵作为损失函数

4.1. 交叉熵损失函数

在分类模型中,交叉熵被广泛用作损失函数。以逻辑回归为例,模型预测为:

$$ \hat{y} = \sigma(x) $$

交叉熵损失函数为:

$$ L(x, y) = -\frac{1}{n} \sum_{i=1}^n y_i \log \sigma(x_i) $$

这个函数衡量了模型预测与真实标签之间的差异。我们通过最小化这个损失函数来优化模型参数。

4.2. 交叉熵的梯度下降优化

逻辑回归模型的预测函数为:

$$ \sigma(x, \beta) = \frac{1}{1 + e^{-x \cdot \beta}} $$

其导数为:

$$ \sigma'(x, \beta) = \sigma(x, \beta)(1 - \sigma(x, \beta)) $$

我们可以推导出损失函数对参数 $\beta$ 的梯度:

$$ \nabla_{\beta} L(x, y) = -\frac{1}{n} \sum_{i=1}^n (y_i - \sigma_i) x_i $$

然后通过梯度下降法更新参数,逐步优化模型。

5. 总结

交叉熵是机器学习中非常重要的概念,具有以下关键作用:

✅ 衡量模型预测与真实标签之间的差异
✅ 作为分类模型的损失函数
✅ 支持通过梯度下降进行参数优化
✅ 可用于比较不同模型的预测效果

理解交叉熵的本质和使用方式,是掌握现代分类模型训练流程的关键一步。


原始标题:What Is Cross-Entropy?