Kullback-Leibler(KL)散度的最大值是多少


15

我将在我的python代码中使用KL散度,并获得了本教程。

在该教程中,实现KL散度非常简单。

kl = (model * np.log(model/actual)).sum()

据我所知,的概率分布model和actual应<= 1。

我的问题是,k的最大界限/最大可能值是多少?我需要知道我代码中的最大界限,即kl distance的最大可能值。


Answers:


18

甚至在相同的支持下,当一个分布的尾部比另一个分布大得多时。采取 当 然后 和 还有其他距离仍然是有界的,例如p (X )= 柯西密度⏞ 1

KL(P||Q)=∫p(x)log⁡(p(x)q(x))dx
ķ大号(P||Q)=∫1
p(x)=1π11+x2⏞Cauchy densityq(x)=12πexp⁡{−x2/2}⏞Normal density
∫ 1
KL(P||Q)=∫1π11+x2log⁡p(x)dx+∫1π11+x2[log⁡(2π)/2+x2/2]dx
∫1π11+x2x2/2dx=+∞
  • 的距离,相当于总偏差距离,L¹
  • Wasserstein距离
  • 赫林格距离

1
很好的评论@西安
— 卡洛斯·坎波斯

谢谢@西安是什么意思,即使两个分布的所有bin的总和等于1,kl散度也没有最大界限?对于定义了最大边界/静态边界的两个概率分布,您是否还有其他选项距离函数?
— user46543

在这种情况下,P是否相对于Q绝对连续?
— Sangwoong Yoon

在这种情况下”?我认为,KL并非针对并非绝对连续的分布进行定义。
— 西安

13

对于没有相同支持的发行版,KL散度不受限制。看一下定义:

KL(P||Q)=∫−∞∞p(x)ln⁡(p(x)q(x))dx

如果P和Q具有不同的支持,则存在某个点,其中和,使KL变为无穷大。这也适用于离散分布,这就是您的情况。x′p(x′)≠0q(x′)=0

编辑:衡量概率分布之间差异的更好选择是所谓的Wasserstein距离,它是一种度量标准,比KL差异具有更好的属性。由于其在深度学习中的应用,它已变得非常流行(请参阅WGAN网络)


感谢@ carlos-campos,我的分布实际和模型都具有相同的条件,即所有bin的总和=1。这是否意味着我的Kl散度仍然没有最大界限?我将看一看wassertein距离
— user46543 '18

Wasserstein或推土机距离是否有明确的最大界限?因为我需要
— user46543

@ user46543 Wasserstein的距离可以高达∞
— 马克·L·斯通

@ MarkL.Stone您好,因此没有用于计算两个具有静态最大界限的概率分布之间的距离的距离函数吗?例如,当两个概率分布的总和为1且距离的最大范围为1时,是否正确?
— user46543

4

为了补充卡洛斯和西安的出色答案,还值得注意的是,使KL散度为有限的充分条件是,两个随机变量具有相同的紧致支持,并且有对参考密度的限制。该结果还为KL散度的最大值建立了一个隐式边界(请参见下面的定理和证明)。


定理:如果密度和具有相同的紧支撑,并且密度限制在该支撑上(即,具有有限的上限),则。pqXpKL(P||Q)<∞

证明:由于具有紧凑的支持这意味着存在一些正的最小值:qX

q_≡infx∈Xq(x)>0.

同样,由于具有紧凑的支持这意味着存在一些正的最高值:pX

p¯≡supx∈Xp(x)>0.

此外,由于这两个密度都在同一个支撑上,并且后者是有界的,因此我们有。这意味着:0<q_⩽p¯<∞

supx∈Xln⁡(p(x)q(x))⩽ln⁡(p¯)−ln⁡(q_).

现在,让是后者的上限,我们显然有所以那:L_≡ln⁡(p¯)−ln⁡(q_)0⩽L_<∞

KL(P||Q)=∫Xln⁡(p(x)q(x))p(x)dx⩽supx∈Xln⁡(p(x)q(x))∫Xp(x)dx⩽(ln⁡(p¯)−ln⁡(q_))∫Xp(x)dx=L_<∞.

这确定了所需的上限,证明了定理。 ◼


结果是正确的,但是约束很重:当时 Beta密度不会得到紧凑的支持。B(α,β)max(α,β)>1
— 西安

是的:毕竟这只是一个充分的条件。较弱的条件欢迎!
— 本-恢复莫妮卡
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.