KL расхождение между двумя одномерными гауссианами


79

Мне нужно определить KL-расхождение между двумя гауссианами. Я сравниваю свои результаты с этими , но я не могу воспроизвести их результаты. Мой результат, очевидно, неверен, потому что KL не 0 для KL (p, p).

Интересно, где я делаю ошибку и спрашиваю, может ли кто-нибудь ее заметить.

Пусть и . Из 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
— Смысл в

как насчет многовариантного случая?

Я только что видел в исследовательской работе, что kld должен быть $ KL (p, q) = ½ * ((μ₁-μ₂) ² + σ₁² + σ₂²) * ((1 / σ₁²) + (1 / σ₂²)) - 2
— Skyde

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

Ответы:


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 Хорошо опубликованный исследователь, и я студент. Приятно видеть, что даже умные парни иногда задают вопросы в Интернете :)
— Н. Мака.

3
р илиμ1σ1μ2σ2
— Гонконг

@ Конг р равен , как отмечено в вопросе. N(u1,σ1)
— zplizzi

31

Я не смотрел на ваши расчеты, но вот мой с большим количеством деталей. Предположим, что - плотность нормальной случайной величины со средним значением и дисперсией , а - плотность нормальной случайной величины со средним значением и дисперсией . Расстояние Кульбака-Лейблера от до равно: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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.