Дивергенція 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
— mpiktas

як щодо багатовимірного випадку?

Я щойно бачив у дослідницькій роботі, що 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
є p абоμ1σ1μ2σ2
— Конг

@Kong p - , як зазначено у запитанні. 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.