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


46

У меня проблемы с выводом формулы дивергенции KL, предполагающей два многомерных нормальных распределения. Я сделал одномерный случай довольно легко. Тем не менее, прошло довольно много времени с тех пор, как я взял статистику по математике, поэтому у меня возникли некоторые проблемы с распространением ее на многовариантный вариант. Я уверен, что мне просто не хватает чего-то простого.

Вот что у меня есть ...

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

Ответы:


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.