问题

KL散度衡量的是两个概率分布的距离吗?

回答
KL散度,全称KullbackLeibler散度,又常被称为相对熵。很多人会直观地将其理解为衡量两个概率分布之间“距离”的指标。这个理解大体上没错,但要说得更精确一些,它并非我们通常意义上那种对称的、满足三角不等式的“距离”。

为什么说它衡量的是“差异”或“信息损失”?

想象一下,你有一个模型(比如一个机器学习模型)试图去拟合真实世界的数据。真实世界的数据可以用一个概率分布 $P$ 来描述,而你的模型则生成了一个概率分布 $Q$。KL散度 $D_{KL}(P || Q)$ 衡量的是,当我们用模型 $Q$ 来近似真实分布 $P$ 时,会丢失多少信息,或者说 $Q$ 与 $P$ 之间的“差异”有多大。

更具体地说,KL散度定义为:

$D_{KL}(P || Q) = sum_{x} P(x) log frac{P(x)}{Q(x)}$ (对于离散分布)

或者

$D_{KL}(P || Q) = int_{infty}^{infty} P(x) log frac{P(x)}{Q(x)} dx$ (对于连续分布)

这里,$log$ 通常取自然对数(ln)或以2为底的对数。

我们来拆解一下这个公式:

$log frac{P(x)}{Q(x)}$: 这个部分是关键。它表示在某个事件 $x$ 发生时,真实概率 $P(x)$ 与模型预测概率 $Q(x)$ 之间的“信息增益”或“信息差异”。
如果 $P(x)$ 很大而 $Q(x)$ 很小(模型低估了真实发生的可能性),那么 $frac{P(x)}{Q(x)}$ 会很大,对数项也会很大,意味着模型在这个事件上犯了“错误”,造成了较大的信息损失。
如果 $P(x)$ 很小而 $Q(x)$ 很大(模型高估了真实发生的可能性),那么 $frac{P(x)}{Q(x)}$ 会很小,对数项会是负数。但是,由于 $P(x)$ 本身就很小,这个负贡献在整体求和/积分中会被“稀释”。
如果 $P(x)$ 和 $Q(x)$ 接近,$frac{P(x)}{Q(x)}$ 接近1,对数项接近0,说明模型在这个事件上的预测与真实情况很吻合。

$P(x)$ (或者 $P(x)dx$): 这个因子表示我们对某个事件 $x$ 的“关注度”。KL散度是根据真实分布 $P$ 来计算的。也就是说,它衡量的是“在真实发生的情况下,模型预测的偏差有多大”。那些真实发生概率很高的事件,其预测偏差对KL散度的影响更大。

把它想象成“期望”

KL散度 $D_{KL}(P || Q)$ 也可以看作是“当真实事件按照 $P$ 分布发生时,我们用 $Q$ 分布去编码这些事件所带来的平均信息量(或者说,为了纠正 $Q$ 的错误而需要额外的信息量)”。

更严谨地说,它表示在真实分布 $P$ 下,$P$ 的熵与 $P$ 和 $Q$ 的联合熵之间的差值,也就是 $H(P, Q) H(P)$。

$H(P)$ 是 $P$ 的熵,代表 $P$ 本身的“不确定性”或“信息量”。
$H(P, Q)$ 是 $P$ 和 $Q$ 的交叉熵,代表用 $Q$ 来描述 $P$ 的平均编码长度。

所以,$D_{KL}(P || Q) = H(P, Q) H(P)$。当我们用 $Q$ 去编码 $P$ 时,丢失的信息量就是交叉熵比信息量本身多的那部分,也就是KL散度。

为什么不是严格意义上的“距离”?

1. 不对称性:$D_{KL}(P || Q) eq D_{KL}(Q || P)$
$D_{KL}(P || Q)$ 衡量的是用 $Q$ 来近似 $P$ 时信息损失。
$D_{KL}(Q || P)$ 衡量的是用 $P$ 来近似 $Q$ 时信息损失。
打个比方:一个医生($Q$)根据他的知识诊断一个病人($P$)的病情。如果医生对某种常见病($P(x)$大)的认识很模糊($Q(x)$小),但他对一种罕见病($P(y)$小)的诊断很精确($Q(y)$大),那么用医生来诊断病人,$D_{KL}(P||Q)$ 的值会因为常见病的误诊而变大。反过来,如果用病人的情况($P$)来评价医生的知识($Q$),则会关注病人可能患上的所有病,但由于 $P(y)$ 小,罕见病的误诊对 $D_{KL}(Q||P)$ 的影响相对较小。
由于这种不对称性,它不满足距离公理中的对称性($d(x, y) = d(y, x)$)。

2. 不满足三角不等式:$D_{KL}(P || R) gtr D_{KL}(P || Q) + D_{KL}(Q || R)$
距离通常需要满足三角不等式:从A到C的距离不会比先到B再到C的距离更远。KL散度不保证这一点。

何时使用KL散度?

KL散度在机器学习和信息论中有广泛应用,尤其是在:

模型训练: 许多模型的目标函数就是最小化预测分布 $Q$ 与真实数据分布 $P$ 之间的KL散度。例如,变分自编码器(VAE)的目标函数就包含了KL散度项。
信息检索: 衡量查询结果排序与理想排序之间的差异。
强化学习: 限制策略更新的幅度,防止策略变化过大。
生成模型: 评估生成数据分布与真实数据分布的接近程度。

小结一下:

KL散度确实反映了两个概率分布之间的“不相似性”或者“差异程度”。如果你看到它被描述为“距离”,更恰当的理解是它衡量的是“从分布 $Q$ 到分布 $P$ 的信息损失”或者“用 $Q$ 来表示 $P$ 所需要的额外信息量”。它不是我们数学上定义的“度量空间”中的距离,因为它不对称且不满足三角不等式。但它在衡量分布差异方面非常有用,特别是在我们关注从一个分布“逼近”另一个分布时。

网友意见

user avatar

谢邀。先给结论:KL散度描述了我们用分布来估计数据的真实分布的编码损失

然后我们来唠一唠这个神奇的KL散度。KL散度(Kullback-Leibler Divergence)是用来度量两个概率分布相似度的指标,它作为经典损失函数被广泛地用于聚类分析与参数估计等机器学习任务中,我们从以下几个角度对KL散度进行介绍:

  1. KL散度的定义与基本性质。
  2. 从采样角度出发对KL散度进行直观解释。
  3. KL散度的应用以及常见分布KL散度的计算。

KL散度的定义与基本性质

KL散度的定义

假设对随机变量,存在两个概率分布。如果为离散随机变量,定义从到的KL散度为:

如果为连续随机变量,则定义从到的KL散度为:

注意连续随机变量的KL散度可以看作离散随机变量KL散度求和的极限,为了叙述简洁我们只讨论离散KL散度。

KL散度的基本性质

1. 非负性

,当且仅当。

证明(我们仅对离散情况进行证明,对于连续随机变量情况,我们将积分化为求和的极限后可以用相同方式证明):

我们只需要证明。采用不等式,则:

等号当且仅当对于任意的,时取得,此时有。

2. 仿射变换不变性

假设,那么:

证明:

利用随机变量的变换公式,我们有:

3. 非对易性

4. 值域

在一定条件下可以趋向于无穷。

从采样角度出发对KL散度进行直观解释

KL散度描述了我们用分布来估计数据的真实分布的编码损失。

假设我们对于离散随机变量进行了次采样,并得到了取值的一组观测(描述了随机变量取值为的次数),记为分布取值为的概率,即,那么观测由分布生成的概率可以写成:

如果我们只观测一次,那么显然存在一个唯一的使得,而这种观测的由分布生成的概率为,记作。如果我们进行次观测,那么可以由第n次观测所递推而来,即

注意到服从伯努利大数定律,它将收敛到随机变量取值为的真实概率,因此当我们进行无数次观测(即),则可能会收敛,也可能会发散。如果,那么会收敛(),此时代表分布可以很好估计真实分布,而其它情况则可能会发散。为了描述进行一次观测的平均概率,我们对次观测采用几何平均数,记作:

用来描述的真实分布,如果,那么,。如果,那么则可能不会收敛。令,此时我们有:

利用,,以及当 ,,此时有这两个结论,我们将重写为:

注意到:

我们可以将简化为:

因此我们有:

由上所述,当两个分布的概率密度函数几乎处处相等的时候,有,此时,当两个分布相差太大的时候,,。KL散度度量了在对随机变量的采样过程中,的真实分布与我们的假设分布的符合程度。

KL散度的应用以及常见分布KL散度的计算

独立性度量

我们可以用KL散度来度量两个随机变量的独立性:

如果统计独立,那么。

同时,在信息论的角度,定义随机变量的交叉熵为:

此时有:

计算两个多元正态分布的KL散度

假设为多元正态分布随机向量,且

那么

证明:

计算时有一个trick为:

其实这里利用了这个矩阵计算技巧。同时注意这里还有第二个trick为:在的分布下,但是因为服从分布,则不等于。用这些trick进行进一步计算为:

代入我们有:

本文使用 Zhihu On VSCode 创作并发布

user avatar

张戎:统计距离(STATISTICAL DISTANCE)

统计距离(Statistical Distance)

统计距离的定义

在欧式空间,如果要衡量两个 维空间中的点 和 之间的距离,通常可以使用 范数来进行描述,其数学公式是:

在统计学中,如果需要衡量两个统计对象之间的“距离”,在离散的场景下除了可以使用欧式距离之外,还可以使用其他的统计距离来描述这两个统计对象之间的距离。与之对应的,在连续的场景下,同样可以定义出两个统计对象之间的距离。

距离是定义在集合 的函数 并且满足以下条件:

  • 对于所有的 都成立;
  • 对于所有的 都成立;
  • 对于所有的 都成立。

而广义的距离会缺少其中一个或者多个条件,例如时间序列领域中的 DTW 距离就不满足三角不等式。

在微积分中,凸函数(convex 函数) 指的是在其定义域内的任意两个点 满足 换言之,如果凸函数 存在二阶连续导数,那么 是增函数,

其次,在统计距离中,通常会基于一个函数 来定义两个概率分布之间的距离。该函数 是一个凸函数(convex function),并且满足 对于空间 中的两个概率分布 和 而言,

定义了概率分布 和 的 散度(f-divergence),其中 分别对应了 的概率密度函数。不同的函数 对应了不同的散度,常见的散度包括但不限于:

  • KL - 散度(KL - Divergence):
  • Reverse KL -散度(Reverse KL - Divergence):
  • Hellinger 距离(Hellinger Distance): 或者
  • 变分距离(Total Variation Distance):
  • Pearson - 散度(Pearson - Divergence): 或者 或者
  • Reverse Pearson - 散度(Reverse Pearson - Divergence): 或者
  • Jensen-Shannon-Divergence:
  • L1 - 范数(L1 - Norm):

在这样的定义下, 是非负函数,i.e. 事实上,

在数学中有如下定理:如果 是凸函数,那么 在定义域 也是凸函数。

根据以上定理,可以得到:对于 有

除了 散度之外,直接使用 范数也可以定义两个概率空间的距离,特别地,当 时,其距离公式是:

统计距离的函数分析

事实上,对于 KL 散度和 Reverse KL 散度而言,令

这就是函数 分别对应着 KL-散度和 Reverse KL-散度相应函数的原因。

类似地,对于函数 和 而言,可以直接证明得到:

对于 Jensen-Shannon Divergence(简写为 JSD)而言,

其中 i.e.

对于 Hellinger Distance 而言, 其实这两个函数是等价的,因为

其中 被称为 Bhattacharyya 系数(Bhattacharyya Coefficient),Bhattacharyya 距离则定义为

统计距离的上下界分析

对于以上函数而言,由于凸函数 因此当 时,

KL 散度是没有上界的,但是 Jensen Shannon Divergence 是具有上界的。事实上,如果 则有

同样地, 所以可以得到

根据 Hellinger 距离的公式,可以得到: 同时,Bhattacharyya 距离 是没有上界的,因为 可以取值到零。

考虑 范数中 三种情况:

并且上界 2 是可以取到的。

证明以上不等式使用了性质

多重集合

多重集合的定义与性质

在数学中,集合(set)中不能够包含重复的元素,但一个多重集合(multiset)中则可以包含重复的元素,并且计算了元素的重数。例如,

  • 当 时, 可以看成集合,也可以看成重数为 1 的多重集合,可以记为 或者
  • 在多重集合 中, 的重数是 2, 的重数是 1,可以记为 或者
  • 在多重集合 中, 的重数都是 3。

对于一个有限集合 而言,其多重集合可以记为 或者 其中 表示元素 的重数。多重集合的一个典型例子就是质因数分解,例如:

假设多重集合 的元素都属于集合

  • 子集:如果对于所有的 有 则称多重集合 是多重集合 的子集;
  • 交集:如果 则称多重集合 是多重集合 的交集,记为
  • 并集:如果 则称多重集合 是多重集合 的并集,记为
  • 求和:如果 则称多重集合 是多重集合 的和,记为
  • 求差:如果 则称多重集合 是多重集合 的差,记为

假设 那么

多重集合的相似度和距离

由于已经定义了多重集合的交集和并集,因此集合相似度中的 Jaccard 相似度,Overlap 相似度都可以应用到多重集合中。

对于多重集合 而言,令 因此,多重集合 对应了一个离散的概率分布 于是,可以使用以上的统计距离(Statistical Distance)来计算两个多重集合之间的距离。

参考资料

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有