Normal-Distribution

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

  • February 21, 2011

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

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

讓 $ p(x) = N(\mu_1, \sigma_1) $ 和 $ q(x) = N(\mu_2, \sigma_2) $ . 從 Bishop 的 PRML 我知道

$$ KL(p, q) = - \int p(x) \log q(x) dx + \int p(x) \log p(x) dx $$

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

$$ \int p(x) \log p(x) dx = -\frac{1}{2} (1 + \log 2 \pi \sigma_1^2), $$

所以我限制自己 $ \int p(x) \log q(x) dx $ ,我可以寫成

$$ -\int p(x) \log \frac{1}{(2 \pi \sigma_2^2)^{(1/2)}} e^{-\frac{(x-\mu_2)^2}{2 \sigma_2^2}} dx, $$

可以分為

$$ \frac{1}{2} \log (2 \pi \sigma_2^2) - \int p(x) \log e^{-\frac{(x-\mu_2)^2}{2 \sigma_2^2}} dx. $$

記錄我得到的日誌

$$ \frac{1}{2} \log (2 \pi \sigma_2^2) - \int p(x) \bigg(-\frac{(x-\mu_2)^2}{2 \sigma_2^2} \bigg) dx, $$

我將總和分開並得到 $ \sigma_2^2 $ 出積分。

$$ \frac{1}{2} \log (2 \pi \sigma^2_2) + \frac{\int p(x) x^2 dx - \int p(x) 2x\mu_2 dx + \int p(x) \mu_2^2 dx}{2 \sigma_2^2} $$

讓 $ \langle \rangle $ 表示下面的期望算子 $ p $ ,我可以將其重寫為

$$ \frac{1}{2} \log (2 \pi \sigma_2^2) + \frac{\langle x^2 \rangle - 2 \langle x \rangle \mu_2 + \mu_2^2}{2 \sigma_2^2}. $$

我們知道 $ var(x) = \langle x^2 \rangle - \langle x \rangle ^2 $ . 因此

$$ \langle x^2 \rangle = \sigma_1^2 + \mu_1^2 $$

因此

$$ \frac{1}{2} \log (2 \pi \sigma^2) + \frac{\sigma_1^2 + \mu_1^2 - 2 \mu_1 \mu_2 + \mu_2^2}{2 \sigma_2^2}, $$

我可以說

$$ \frac{1}{2} \log (2 \pi \sigma_2^2) + \frac{\sigma_1^2 + (\mu_1 - \mu_2)^2}{2 \sigma_2^2}. $$

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

$$ \begin{align*} KL(p, q) &= - \int p(x) \log q(x) dx + \int p(x) \log p(x) dx\\ &= \frac{1}{2} \log (2 \pi \sigma_2^2) + \frac{\sigma_1^2 + (\mu_1 - \mu_2)^2}{2 \sigma_2^2} - \frac{1}{2} (1 + \log 2 \pi \sigma_1^2)\\ &= \log \frac{\sigma_2}{\sigma_1} + \frac{\sigma_1^2 + (\mu_1 - \mu_2)^2}{2 \sigma_2^2}. \end{align*} $$ 這是錯誤的,因為它等於 $ 1 $ 對於兩個相同的高斯。

誰能發現我的錯誤?

更新

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

$ KL(p, q) = \log \frac{\sigma_2}{\sigma_1} + \frac{\sigma_1^2 + (\mu_1 - \mu_2)^2}{2 \sigma_2^2} - \frac{1}{2} $

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

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

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

comments powered by Disqus