两个单变量高斯之间的KL散度


79

我需要确定两个高斯之间的KL散度。我正在将我的结果与这些结果进行比较,但是我无法复制它们的结果。我的结果显然是错误的,因为KL(p,p)的KL不为0。

我想知道我在哪里做错了,问是否有人可以发现它。

令和。从Bishop的PRML我知道p(x)=N(μ1,σ1)q(x)=N(μ2,σ2)

KL(p,q)=−∫p(x)log⁡q(x)dx+∫p(x)log⁡p(x)dx

在所有实线上完成集成的地方

∫p(x)log⁡p(x)dx=−12(1+log⁡2πσ12),

所以我将自己限制为,我可以写成∫p(x)log⁡q(x)dx

−∫p(x)log⁡1(2πσ22)(1/2)e−(x−μ2)22σ22dx,

可以分为

12log⁡(2πσ22)−∫p(x)log⁡e−(x−μ2)22σ22dx.

拿我得到的日志

12log⁡(2πσ22)−∫p(x)(−(x−μ2)22σ22)dx,

在这里我将总和分开并从积分中得到。σ22

12log⁡(2πσ22)+∫p(x)x2dx−∫p(x)2xμ2dx+∫p(x)μ22dx2σ22

让表示下的期望运算符,我可以将其重写为⟨⟩p

12log⁡(2πσ22)+⟨x2⟩−2⟨x⟩μ2+μ222σ22.

我们知道。从而var(x)=⟨x2⟩−⟨x⟩2

⟨x2⟩=σ12+μ12

因此

12log⁡(2πσ2)+σ12+μ12−2μ1μ2+μ222σ22,

我可以把

12log⁡(2πσ22)+σ12+(μ1−μ2)22σ22.

放在一起,我去

KL(p,q)=−∫p(x)log⁡q(x)dx+∫p(x)log⁡p(x)dx=12log⁡(2πσ22)+σ12+(μ1−μ2)22σ22−12(1+log⁡2πσ12)=log⁡σ2σ1+σ12+(μ1−μ2)22σ22.
这是错误的,因为对于两个相同的高斯,它等于。1

谁能发现我的错误?

更新资料

感谢mpiktas清理了一切。正确答案是:

KL(p,q)=log⁡σ2σ1+σ12+(μ1−μ2)22σ22−12


很抱歉首先发布了错误的答案。我只是看着,立即想到积分是零。它平方的点完全让我忘了:)x−μ1
— mpiktas 2011年

多元情况呢?

我刚刚在研究论文中看到kld应该是$ KL(p,q)=½*(((μ₁-μ²)²+σ₁²+σ²²)*((1 /σ₁²)+(1 /σ²²))-2
— 2013年

1
我认为您的问题中有错别字,因为我无法验证它,而且似乎稍后您在问题中使用了正确的版本:我认为应该是(请注意减号):我试图编辑您的问题并被禁止使用,所以您可以自己做。
∫p(x)log⁡p(x)dx=12(1+log⁡2πσ12)
∫p(x)log⁡p(x)dx=−12(1+log⁡2πσ12)
— y-spreen

Answers:


59

好,我不好 错误在最后一个方程式中:

KL(p,q)=−∫p(x)log⁡q(x)dx+∫p(x)log⁡p(x)dx=12log⁡(2πσ22)+σ12+(μ1−μ2)22σ22−12(1+log⁡2πσ12)=log⁡σ2σ1+σ12+(μ1−μ2)22σ22−12

请注意缺少的。当和时,最后一行变为零。−12μ1=μ2σ1=σ2


@mpiktas我的意思是真正的问题-bayerj是一位知名学者,而且我是本科生。很高兴看到即使是聪明人有时也会回头问互联网:)
— N. McA。

3
是p或μ1σ1μ2σ2
— 孔

如问题中所述,@Kong p为。N(u1,σ1)
— zplizzi

31

我没有查看您的计算结果,但这是我的很多细节。假设是具有均值和方差的正常随机变量的密度,并且是具有均值和方差的正常随机变量的密度。从到的Kullback-Leibler距离为:pμ1σ12qμ2σ22qp

∫[log⁡(p(x))−log(q(x))]p(x)dx

=∫[−12log⁡(2π)−log⁡(σ1)−12(x−μ1σ1)2+12log⁡(2π)+log⁡(σ2)+12(x−μ2σ2)2] ×12πσ1exp⁡[−12(x−μ1σ1)2]dx

=∫{log⁡(σ2σ1)+12[(x−μ2σ2)2−(x−μ1σ1)2]} ×12πσ1exp⁡[−12(x−μ1σ1)2]dx

=E1{log⁡(σ2σ1)+12[(x−μ2σ2)2−(x−μ1σ1)2]}

=log⁡(σ2σ1)+12σ22E1{(X−μ2)2}−12σ12E1{(X−μ1)2}

=log⁡(σ2σ1)+12σ22E1{(X−μ2)2}−12

(现在注意)(X−μ2)2=(X−μ1+μ1−μ2)2=(X−μ1)2+2(X−μ1)(μ1−μ2)+(μ1−μ2)2

=log⁡(σ2σ1)+12σ22[E1{(X−μ1)2}+2(μ1−μ2)E1{X−μ1}+(μ1−μ2)2]−12

=log⁡(σ2σ1)+σ12+(μ1−μ2)22σ22−12

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.