关于Kullback-Leibler(KL)分歧的直觉


47

我了解了KL散度背后的直觉,因为模型分布函数与数据的理论/真实分布有多大差异。我正在阅读的资料继续说,这两个分布之间的“距离”的直观理解是有帮助的,但不应从字面上理解,因为对于两个分布和,KL散度在和不是对称的。PQPQ

我不确定如何理解最后的陈述,还是“距离”的直觉被打破了?

我希望看到一个简单但有见地的例子。


3
我认为您必须退后一步,以了解您通常在真实的总体分布与样本(或真实和模型)之间的统计上不对称,这就是KL散度所反映的...在一般概率论中,通常不是这种区别,对称度量更有意义
seanv507

1
您正在阅读哪个“资源”?
nbro

Answers:


34

(度量)距离必须是对称的,即。但是,从定义,不是。DD(P,Q)=D(Q,P)KL

例如:,,。Ω={A,B}P(A)=0.2,P(B)=0.8Q(A)=Q(B)=0.5

我们有:

KL(P,Q)=P(A)logP(A)Q(A)+P(B)logP(B)Q(B)0.19

KL(Q,P)=Q(A)logQ(A)P(A)+Q(B)logQ(B)P(B)0.22

因此,因此不是(度量)距离。K LKL(P,Q)KL(Q,P)KL


50

除了其他出色的答案外,还提出了具有其他观点的答案,这可能会增加一些直觉。

Kullback-Leibler散度为 如果您有两个关于哪个分布生成数据,和假设,则 是针对测试的似然比。我们看到,在替代假设下,上述Kullback-Leibler散度就是对数似然比的期望值。因此,当为原假设时,可以度量该测试问题的难度。所以不对称X P Q p x

KLP||=-pX日志pXqXdX
XP H0QH1PKLP||QQKLP||QKLQ||PpXqXH0H1个P吉隆坡P||吉隆坡P||吉隆坡||P仅仅反映了原假设和替代假设之间的不对称性。

让我们在一个特定示例中对此进行研究。令为 nu-分布,为标准正态分布(在以下的数字示例中)。定义散度的积分看起来很复杂,因此让我们简单地在R中使用数值积分:ν Q ν = 1PŤνν=1个

> lLR_1  <-  function(x) {dt(x, 1, log=TRUE)-dnorm(x, log=TRUE)}  
> integrate(function(x) dt(x, 1)*lLR_1(x), lower=-Inf, upper=Inf)
Error in integrate(function(x) dt(x, 1) * lLR_1(x), lower = -Inf, upper = Inf) : 
  the integral is probably divergent

> lLR_2  <-  function(x) {-dt(x, 1, log=TRUE)+dnorm(x, log=TRUE)}  
> integrate(function(x) dnorm(x)*lLR_2(x), lower=-Inf, upper=Inf)
0.2592445 with absolute error < 1e-07

在第一种情况下,积分似乎在数值上发散,表明发散非常大或无穷大;在第二种情况下,积分小:总结: 第一种情况通过分析符号积分由@Xian回答,在这里:Kullback-Leibler(KL)散度的最大值是多少

吉隆坡P||吉隆坡||P0.26

实际上,这告诉我们什么?如果空模型是标准正态分布,但数据是从分布生成的,则拒绝空模型非常容易!来自分布的数据看起来不像正态分布的数据。在其他情况下,角色被切换。为空,但数据正常。但是正态分布的数据可能看起来像数据,所以这个问题要困难得多!在这里,我们的样本量为,每个可能来自正态分布的数据也都可能来自!切换角色不是,差异主要来自异常值的角色。t 1 t 1 t 1 n = 1 t 1Ť1个Ť1个Ť1个Ť1个ñ=1个Ť1个

在替代分布下,获得样本的可能性很大,而在零(正态)模型下,该样本的概率非常小,从而产生了很大的差异。但是,当替代分布为正态时,在空模型下,实际上我们可以获得的所有数据都将具有中等概率(确实是密度...),因此差异很小。t 1Ť1个Ť1个

这与我在这里的答案有关: 为什么我们应该使用t错误而不是常规错误?


22

首先,违反对称条件是Kullback-Leibler发散的最小问题。也违反了三角形不等式。您可以简单地将对称版本引入为,但这仍然不是度量标准,因为和违反三角不等式。为了证明这一点,只需简单地选择三个偏斜的硬币A,B和C,它们产生的正面比反面少得多,例如正面概率为:A = 0.1,B = 0.2和C = 0.3的硬币。在这两种情况下,正规KL散度D或对称形式SKL,请检查它们是否不满足三角形不等式 S K L P ,| Q = D P | | Q + D Q | | P D P | | Q S K L P Q D A | Q | B + D B | | C ðP||

小号ķ大号P=ðP||+ð||P
ðP||小号ķ大号P
ð一种||+ð||Cð一种||C
d
SKL(A,B)+SKL(B,C)SKL(A,C)
只需使用以下公式: SKLPQ
D(P||Q)=ipilog(piqi)
SKL(P,Q)=i(piqi)log(piqi)

ð||C ^0.0112ð||C ^0.05050.0159+0.01120.0505小号ķ大号0.0352小号ķ大号

D(A||B)=0.1log(0.10.2)+0.9log(0.90.8)0.0159
D(B||C)0.0112
D(A||C)0.0505
0.0159+0.01120.0505
SKL(A,B)0.0352
SKL(B,C)0.0234
SKL(A,C)0.1173
0.0352+0.02340.1173

我故意介绍了此示例。假设您要扔一些硬币,例如100次。只要这些硬币是无偏的,您就可以简单地以0-1位(1头,0尾)的顺序对抛掷结果进行编码。在这种情况下,当头的概率与尾的概率相同且等于0.5时,这是一种非常有效的编码。现在,我们有一些偏差的硬币,因此我们宁愿使用较短的代码来编码更可能的结果,例如合并头和尾的组,并以比k尾的序列更长的代码表示k头的序列(它们更有可能)。在这里,出现了库尔贝克-莱布利尔发散度。如果P表示结果的真实分布,并且Q只是P的近似值,则D P | | Q D(P||Q)D(P||Q) 表示当您对实际上来自P distrib的结果进行编码以用于Q的编码时(在需要使用的多余位的意义上为惩罚)对您支付的罚款。

如果仅需要度量,则使用Bhattacharyya距离(当然,修改后的版本)1[xp(x)q(x)]


7
如果要关注与KL差异更紧密相关的指标,那么他们可以考虑用Jensen-Shannon差异的平方根代替Bhattacharyya。
主教

5

我很想在这里为您的问题提供一个纯粹的直观答案。换句话说,KL散度是一种衡量两个分布之间的距离的方法,就像您要计算希尔伯特空间中两个数据集之间的距离一样,但应谨慎行事。

为什么?KL散度不是您通常使用的距离,例如范数。的确,当且仅当两个分布相等时(如定义距离的公理),它为正且等于零。但是如上所述,它不是对称的。有许多方法可以避免这种情况,但是使其不对称是有意义的。L2

的确,KL散度定义了模型分布(您实际上知道的)和理论上的之间的距离,因此有意义地处理不同的假设到的“理论”距离)模型)和(假设数据,到的“经验”距离),因为它们表示完全不同的度量。P K L P Q P Q P K L Q P P Q QQPKL(P,Q)PQPKL(Q,P)PQ


4

教科书《信息论要素》为我们提供了一个示例:

例如,如果我们知道随机变量的真实分布p,则可以构造一个平均描述长度为H(p)的代码。相反,如果我们使用代码分配q,则平均需要H(p)+ D(p || q)位来描述随机变量。

为了解释上述说法,我们可以说,如果我们将信息分布(从q更改为p),则平均需要D(p || q)个额外的比特来编码新的分布。

插图

让我使用它在自然语言处理中的一种应用来说明这一点。

考虑到一大批标记为B的人是中介者,每个人都被分配了一个任务,从中选择一个名词turkeyanimal然后将book其传输给C。有一个人名A,他可能会向每个人发送电子邮件以提供他们一些提示。如果小组中没有人收到电子邮件,他们可能会扬起眉头,犹豫一会儿,以考虑C的需求。每个选项被选中的概率为1/3。完全统一的分配(如果不是,则可能与他们自己的偏好有关,我们只是忽略这种情况)。

但是,如果给他们一个动词,例如baste,则可以选择3/4,选择turkey3/16 animal和1/16 book。那么,每个调解人一旦知道了动词,平均可以获得多少比特信息?它是:

ðpñØüñs|b一种sŤË||pñØüñs=X{Ťü[RķËÿ一种ñ一世一种bØØķ}pX|b一种sŤË日志2pX|b一种sŤËpX=34日志2341个3+316日志23161个3+1个16日志21个161个3=0.5709  b一世Ťs

但是,如果给定的动词是read什么呢?我们可以想象他们都会book毫不犹豫地选择,那么每个调解员从动词获得的平均信息收益为read

ðpñØüñs|[RË一种d||pñØüñs=X{bØØķ}pX|[RË一种d日志2pX|[RË一种dpX=1个日志21个1个3=1.5849  b一世Ťs
我们可以看到动词read可以为调解人提供更多信息。这就是相对熵可以衡量的。

让我们继续我们的故事。如果C怀疑该名词可能是错误的,因为A告诉他,他可能通过向中介者发送错误的动词而犯了一个错误。那么,这样的坏消息可以给C提供多少位信息?

1)如果A给定的动词是baste

ðpñØüñs||pñØüñs|b一种sŤË=X{Ťü[RķËÿ一种ñ一世一种bØØķ}pX日志2pXpX|b一种sŤË=1个3日志21个334+1个3日志21个3316+1个3日志21个31个16=0.69172  b一世Ťs

2)但是动词是read什么?

ðpñØüñs||pñØüñs|b一种sŤË=X{bØØķ}pX日志2pXpX|b一种sŤË=1个3日志21个31个+1个3日志21个30+1个3日志21个30=  b一世Ťs

由于C永远不知道其他两个名词是什么,因此词汇表中的任何单词都是可能的。

我们可以看到KL散度是不对称的。

我希望我是对的,否则请发表评论并帮助纠正我。提前致谢。

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.