Дивергенція KL між двома багатовимірними гаусівцями


46

У мене виникають проблеми з виведенням формули дивергенції KL, припускаючи два багатоваріантні нормальні розподіли. Я зробив універсальну справу досить легко. Однак минуло досить багато часу, як я взяв статистику з математики, тож у мене виникли певні труднощі з поширенням її на багатоваріантну справу. Я впевнений, що мені просто не вистачає чогось простого.

Ось що я маю ...

Припустимо, і і є pdfs нормальних розподілів із засобами та та дисперсіями та відповідно. Відстань Кулбека-Лейблера від до дорівнює:pqμ1μ2Σ1Σ2qp

∫[log⁡(p(x))−log⁡(q(x))] p(x) dx , що для двох багатоваріантних нормалей дорівнює:

12[log⁡|Σ2||Σ1|−d+Tr(Σ2−1Σ1)+(μ2−μ1)TΣ2−1(μ2−μ1)]

Дотримуючись тієї ж логіки, що і цей доказ , я добираюся тут, перш ніж застрягти:

=∫[d2log⁡|Σ2||Σ1|+12((x−μ2)TΣ2−1(x−μ2)−(x−μ1)TΣ2−1(x−μ1))]×p(x)dx

=E[d2log⁡|Σ2||Σ1|+12((x−μ2)TΣ2−1(x−μ2)−(x−μ1)TΣ2−1(x−μ1))]

Я думаю, що мені потрібно здійснити трюк , але я просто не впевнений, що робити після цього. Будемо вдячні за будь-які корисні підказки щодо повернення мене на правильний шлях!


1
stanford.edu/~jduchi/projects/general_notes.pdf . Останній розділ також дає виведення.
— користувач3540823

Відповіді:


47

Починаючи з того, з чого ви почали деякі невеликі виправлення, ми можемо написати

KL=∫[12log⁡|Σ2||Σ1|−12(x−μ1)TΣ1−1(x−μ1)+12(x−μ2)TΣ2−1(x−μ2)]×p(x)dx=12log⁡|Σ2||Σ1|−12tr {E[(x−μ1)(x−μ1)T] Σ1−1}+12E[(x−μ2)TΣ2−1(x−μ2)]=12log⁡|Σ2||Σ1|−12tr {Id}+12(μ1−μ2)TΣ2−1(μ1−μ2)+12tr{Σ2−1Σ1}=12[log⁡|Σ2||Σ1|−d+tr{Σ2−1Σ1}+(μ2−μ1)TΣ2−1(μ2−μ1)].

Зауважте, що я використав пару властивостей із розділу 8.2 Матричної кулінарної книги .


Я бачу, ти вийняв D, який у мене був спочатку. Чи не було б у вас терміну D після того, як ви зробили журнал Гаусса в перші кілька кроків?
— dmartin

Розглянемо коефіцієнт масштабування , багатоваріантної нормальної щільності. При обчисленні різниці журналів термін відходить. Немає терміна для визначників - просто, , який розраховується. (2π)−d/2|Σk|−1/2k=1,2(2π)−d/2d1/2
— ramhiser

Ніяких проблем взагалі. Радий, що можу допомогти.
— ramhiser

Привіт, як ти придумав останній крок? Як ви змінили знак на ? μ1−μ2μ2−μ1
— acidghost

1
@acidghost Або один працює, тому що ми можемо визначити негативний з обох сторін. Помноження двох негативних дає позитивну.
— ramhiser
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.