两个单变量高斯之间的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)logq(x)dx+p(x)logp(x)dx

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

p(x)logp(x)dx=12(1+log2πσ12),

所以我将自己限制为,我可以写成p(x)logq(x)dx

p(x)log1(2πσ22)(1/2)e(xμ2)22σ22dx,

可以分为

12log(2πσ22)p(x)loge(xμ2)22σ22dx.

拿我得到的日志

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

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

12log(2πσ22)+p(x)x2dxp(x)2xμ2dx+p(x)μ22dx2σ22

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

12log(2πσ22)+x22xμ2+μ222σ22.

我们知道。从而var(x)=x2x2

x2=σ12+μ12

因此

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

我可以把

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

放在一起,我去

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

谁能发现我的错误?

更新资料

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

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


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

多元情况呢?

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

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

Answers:


59

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

KL(p,q)=p(x)logq(x)dx+p(x)logp(x)dx=12log(2πσ22)+σ12+(μ1μ2)22σ2212(1+log2πσ12)=logσ2σ1+σ12+(μ1μ2)22σ2212

请注意缺少的。当和时,最后一行变为零。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σ2212

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.