Normal-Distribution

兩個單變量高斯之間的 KL 散度

  • February 21, 2011

我需要確定兩個高斯之間的 KL 散度。我正在將我的結果與這些進行比較,但我無法重現他們的結果。我的結果顯然是錯誤的,因為 KL(p, p) 的 KL 不是 0。

我想知道我在哪裡做錯了,並詢問是否有人能發現它。

p(x)=N(μ1,σ1)q(x)=N(μ2,σ2) . 從 Bishop 的 PRML 我知道

KL(p,q)=p(x)logq(x)dx+p(x)logp(x)dx

在所有實線上完成集成,並且

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

所以我限制自己 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=σ21+μ21

因此

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

我可以說

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

把所有東西放在一起,我得到

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

這是錯誤的,因為它等於 1 對於兩個相同的高斯。

誰能發現我的錯誤?

更新

感謝 mpiktas 清理問題。正確答案是:

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

好吧,我的壞。錯誤在最後一個等式中:

注意缺失. 最後一行變為零時和.

引用自:https://stats.stackexchange.com/questions/7440