交叉熵(Cross-Entropy)是信息论中的一个概念,在机器学习,特别是分类任务中,常被用作衡量模型预测分布与真实分布之间差异的损失函数。

1. 信息论基本概念

在了解交叉熵之前,我们首先定义几个关键的信息论量。

1.1 自信息 (Self-Information)

自信息量 衡量的是特定事件 发生所携带的信息量。一个事件发生的概率越低,其发生时所包含的信息量就越大。自信息量的定义为:

其中 是事件 发生的概率。对数通常以 2 为底,此时信息量单位为比特(bits)。在机器学习中,出于计算便利,也常使用自然对数,单位为纳特(nats)。

1.2 信息熵 (Entropy)

信息熵 衡量的是一个随机变量(或一个概率分布 )的平均不确定性或平均信息量。它是所有可能事件的自信息量的期望值。 对于离散随机变量,其概率分布为 ,信息熵的定义为:

其中求和符号 遍历随机变量 所有可能的取值。信息熵反映了对一个随机系统进行编码所需的平均最小比特数。

1.3 KL散度 (Kullback-Leibler Divergence)

KL散度 衡量的是两个概率分布 之间的差异性。它表示当我们使用一个近似分布 来编码真实分布 时,所产生的额外平均比特数。 KL散度的定义为:

KL散度具有以下性质:

  • 非负性
  • 相等性:当且仅当 对于所有 都成立时,
  • 非对称性,因此它不是一个严格意义上的距离度量。

2. 交叉熵的定义

交叉熵 衡量的是当我们使用一个编码方案(基于分布 优化)来描述另一个分布 中的事件时,所需要的平均比特数。 交叉熵的定义为:

在机器学习中,通常 代表数据的真实标签分布(例如,在分类任务中通常是one-hot编码,真实类别概率为1,其他为0),而 代表模型预测的概率分布。

3. 交叉熵、信息熵与KL散度的关系推导

现在,我们将严格推导交叉熵、信息熵和KL散度之间的关系。 我们从交叉熵的定义开始:

为了引入 项,我们将 进行加减操作:

重新排列对数项:

根据对数运算性质 ,括号内第二项可以写为

现在,我们将 乘入括号内,并分配求和符号:

观察等式右侧的两个项:

  • 第一个项:,根据信息熵的定义,这正是
  • 第二个项:,根据KL散度的定义,这正是

因此,我们得到了交叉熵、信息熵和KL散度之间的关系:

4. 关系的意义

这个关系式揭示了交叉熵的深层含义及其在机器学习中的作用。

在机器学习的分类任务中:

  • 真实标签的概率分布。例如,如果一个样本的真实标签是类别 ,那么 ,而对于其他类别 。在这种情况下,(对于单点分布)。也就是说,真实标签的熵是一个常数,且通常为0。
  • 模型预测的概率分布。模型通过其参数来调整 ,使其尽可能接近

当我们将交叉熵作为损失函数来优化模型时,我们的目标是最小化 。 根据推导出的关系式

  • 由于 是真实分布的熵,它是一个常数,不依赖于模型的参数。
  • 因此,最小化 等价于最小化

所以说,最小化交叉熵损失,实际上就是在最小化模型预测分布 与真实分布 之间的KL散度。这促使模型学习到能够使预测分布尽可能接近真实分布的参数。由于 ,并且仅当 时取等号,这意味着交叉熵损失的最小值可以达到 ,此时模型完美地预测了真实分布。