从信息论说起
在现实世界中,我们经常需要衡量一个事件的不确定性。例如,在一个抛硬币实验中,“硬币正面朝上”这个事件的信息量有多大?直觉上,一个不常发生的事件能提供更多的信息,而一个常见的事件则提供较少的信息。
定义一个事件
当事件的概率
- 如果事件的概率是
,那么它是确定发生的,信息量为 ,即没有新的信息提供。 - 如果
,那么信息量 (以 10 为底),表示事件发生后带来了较多的信息。
熵可以用不同的对数底计算:
- 底数 2(Shannon 熵):单位是 比特(bit),常用于信息编码。
- 底数 e(自然对数熵):单位是 奈特(nat),在统计物理和机器学习中更常见。
当
也记作
机器学习的目标——最小化分布差距
Tom Mitchell 在 1997 年提出的机器学习定义:
对于某类任务
和性能度量 ,一个计算机程序被认为可以从经验 中学习是指,通过经验 改进后,它在任务 上由性能度量 衡量的性能有所提升。
在统计学习理论的视角下,机器学习的任务可以形式化理解为:
设有一个输入空间
使得
假设数据服从一个未知的真实概率分布
- 输入
服从边际分布 - 输出
在给定 的条件下服从条件分布
在实际学习过程中,模型并不能直接访问整个数据分布
机器学习的目标是基于有限的训练数据,估计真实的条件概率分布
使用KL散度衡量分布差距
为了让机器学习模型的输出分布尽可能接近真实分布,我们需要衡量二者之间的差距。常见的方法包括:
- KL 散度(Kullback-Leibler Divergence)
- Jensen-Shannon 散度(JS Divergence)
- Wasserstein 距离(Wasserstein Distance, Earth Mover’s Distance)
KL 散度的形式化定义:
对于同一个随机变量
在离散型变量的情况下,KL 散度衡量的是:当我们使用一种被设计成能够使得概率分布
KL 散度有很多有用的性质,最重要的是它是非负的。KL 散度为 0 当且仅当
因为 KL 散度是非负的并且衡量的是两个分布之间的差异,它经常被用于分布之间的某种距离。然而,它并不是真正的距离,因为它不是对称的:对于某些
这种非对称性意味着选择
最大似然估计 (MLE)——KL散度到交叉熵
在前文中,我们讨论了如何衡量概率分布之间的差距,机器学习模型的目标通常是使得预测分布尽可能接近真实分布,而最大似然估计(MLE)提供了一种基于概率理论的方法来优化模型,使其输出分布尽可能逼近真实数据分布。
最大似然估计 (MLE) 通过最大化数据的似然函数来估计参数
通过对数变换,转换为对数似然:
最大似然估计(MLE)本质上等价于最小化数据的经验分布
而 KL 散度又可以表示为(经验分布
其中:
-
是 交叉熵: -
是 数据分布的熵,它是一个常数,与模型参数无关(求导为0)。
由于 MLE 是 最小化 KL 散度,在优化过程中等价于最小化交叉熵:
这也是为什么在机器学习中,交叉熵常常被用作目标函数,特别是在分类任务中(如 softmax + 交叉熵损失),本质上是在拟合数据的真实分布。
任何负对数似然损失都可以看作是交叉熵。例如:
-
均方误差(MSE) 对应于高斯分布假设下的负对数似然:
取对数似然并最大化(或等价地最小化负对数似然)就得到:
这正是 MSE 损失函数,因此 MSE 其实是高斯分布下的交叉熵的一种特殊情况。
-
softmax + 交叉熵损失 也是负对数似然损失,但它的适用范围不仅限于 Bernoulli(即二分类)或 softmax(多分类),而是适用于所有概率模型的最大似然估计。
总结来说,最大似然估计可以看作是最小化 KL 散度,而 KL 散度最小化等价于最小化交叉熵。不同的分布假设会导致不同形式的交叉熵损失,例如:
- 高斯分布 → 均方误差(MSE)
- 伯努利分布 → 交叉熵(log loss)
- 多项分布(softmax) → 交叉熵(多分类 log loss)
参考
《深度学习》
Comments | NOTHING