关于交叉熵(信息熵、KL散度、交叉熵、极大化似然)

发布于 2025-02-20  484 次阅读


从信息论说起

在现实世界中,我们经常需要衡量一个事件的不确定性。例如,在一个抛硬币实验中,“硬币正面朝上”这个事件的信息量有多大?直觉上,一个不常发生的事件能提供更多的信息,而一个常见的事件则提供较少的信息。

定义一个事件 的 自信息(self-information)为

当事件的概率 越小时,的值就越大,说明这个事件带来的信息量越大。例如:

  • 如果事件的概率是 ,那么它是确定发生的,信息量为,即没有新的信息提供。
  • 如果,那么信息量(以 10 为底),表示事件发生后带来了较多的信息。

熵可以用不同的对数底计算:

  • 底数 2(Shannon 熵):单位是 比特(bit),常用于信息编码。
  • 底数 e(自然对数熵):单位是 奈特(nat),在统计物理和机器学习中更常见。

是连续的,我们使用类似的关于信息的定义,但有些来源于离散形式的性质就丢失了。例如,一个具有单位密度的事件信息量仍然为 ,但是不能保证它一定发生。 自信息只处理单个的输出。我们可以用 香农熵 (Shannon entropy) 来对整个概率分布中的不确定性总量进行量化:

也记作 。换言之,一个分布的香农熵是指遵循这个分布的事件所产生的期望信息总量。它给出了对依概率分布 生成的符号进行编码所需的比特数在平均意义上的下界(当对数底数不是 时,单位将有所不同)。 那些接近确定性的分布 (输出几乎可以确定) 具有较低的熵;那些接近均匀分布的概率分布具有较高的熵。当 是连续的,香农熵被称为 微分熵 (differential entropy)。

image-20250219095340927

机器学习的目标——最小化分布差距

Tom Mitchell 在 1997 年提出的机器学习定义

对于某类任务 和性能度量 ,一个计算机程序被认为可以从经验 中学习是指,通过经验 改进后,它在任务 上由性能度量 衡量的性能有所提升。

在统计学习理论的视角下,机器学习的任务可以形式化理解为:

设有一个输入空间 和一个输出空间 (两者的设计通常依赖于具体任务 ),目标是学习一个映射函数(即计算机程序):

使得 未知数据上仍然能够取得良好表现,即在任务 上的性能度量 得到优化

假设数据服从一个未知的真实概率分布 ,其中:

  • 输入 服从边际分布
  • 输出 在给定 的条件下服从条件分布

在实际学习过程中,模型并不能直接访问整个数据分布 ,而是依赖于从该分布中独立同分布(i.i.d.)抽取的有限训练样本(即经验 ):

机器学习的目标是基于有限的训练数据,估计真实的条件概率分布 或找到一个近似最优的决策函数 ,使得模型在测试数据上仍然具备良好的泛化能力。机器学习模型通常通过最小化分布间的距离(或散度)来逼近真实分布

使用KL散度衡量分布差距

为了让机器学习模型的输出分布尽可能接近真实分布,我们需要衡量二者之间的差距。常见的方法包括:

  • KL 散度(Kullback-Leibler Divergence)
  • Jensen-Shannon 散度(JS Divergence)
  • Wasserstein 距离(Wasserstein Distance, Earth Mover’s Distance)

KL 散度的形式化定义:

对于同一个随机变量 有两个单独的概率分布

在离散型变量的情况下,KL 散度衡量的是:当我们使用一种被设计成能够使得概率分布 产生的信息长度最小的编码,发送包含由概率分布 产生的符号的信息时,所需要的额外信息量(如果我们使用底数为 2 的对数时,信息量用比特衡量,但在机器学习中,我们通常用 奈特 (nats) 和自然对数)。

KL 散度有很多有用的性质,最重要的是它是非负的。KL 散度为 0 当且仅当 在离散型变量的情况下是相同的分布,或者在连续型变量的情况下是“几乎处处”相同的。
因为 KL 散度是非负的并且衡量的是两个分布之间的差异,它经常被用于分布之间的某种距离。然而,它并不是真正的距离,因为它不是对称的:对于某些 ,有

这种非对称性意味着选择 还是 影响很大。更多细节可以看图3.6。

image-20250219095930240

最大似然估计 (MLE)——KL散度到交叉熵

在前文中,我们讨论了如何衡量概率分布之间的差距,机器学习模型的目标通常是使得预测分布尽可能接近真实分布,而最大似然估计(MLE)提供了一种基于概率理论的方法来优化模型,使其输出分布尽可能逼近真实数据分布。

最大似然估计 (MLE) 通过最大化数据的似然函数来估计参数

通过对数变换,转换为对数似然:

最大似然估计(MLE)本质上等价于最小化数据的经验分布 与模型分布 之间的 KL 散度

而 KL 散度又可以表示为(经验分布 与模型分布 之间的)交叉熵减去数据分布的熵:

其中:

  • 交叉熵

  • 数据分布的熵,它是一个常数,与模型参数无关(求导为0)。

由于 MLE 是 最小化 KL 散度,在优化过程中等价于最小化交叉熵:

这也是为什么在机器学习中,交叉熵常常被用作目标函数,特别是在分类任务中(如 softmax + 交叉熵损失),本质上是在拟合数据的真实分布。

任何负对数似然损失都可以看作是交叉熵。例如:

  • 均方误差(MSE) 对应于高斯分布假设下的负对数似然:

    取对数似然并最大化(或等价地最小化负对数似然)就得到:

    这正是 MSE 损失函数,因此 MSE 其实是高斯分布下的交叉熵的一种特殊情况

  • softmax + 交叉熵损失 也是负对数似然损失,但它的适用范围不仅限于 Bernoulli(即二分类)或 softmax(多分类),而是适用于所有概率模型的最大似然估计。

总结来说,最大似然估计可以看作是最小化 KL 散度,而 KL 散度最小化等价于最小化交叉熵。不同的分布假设会导致不同形式的交叉熵损失,例如:

  • 高斯分布 → 均方误差(MSE)
  • 伯努利分布 → 交叉熵(log loss)
  • 多项分布(softmax) → 交叉熵(多分类 log loss)

 

 

参考

《深度学习》


面向ACG编程