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


46

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

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

Предположим, что и и являются PDF- нормальных распределений со средними и и дисперсиями и соответственно. Расстояние Кульбака-Лейблера от до равно:pqμ1μ2Σ1Σ2qp

[log(p(x))log(q(x))] p(x) dx , что для двух многомерных нормалей равно:

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

Следуя той же логике, что и это доказательство , я доберусь до здесь, прежде чем застряну:

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

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

Я думаю, что я должен реализовать трюк трассировки , но я просто не уверен, что делать после этого. Будем благодарны за любые полезные советы, чтобы вернуть меня на правильный путь!


1
stanford.edu/~jduchi/projects/general_notes.pdf . Последний раздел также дает вывод.
user3540823

Ответы:


47

Начнем с того, что вы начали с некоторых небольших исправлений, мы можем написать

KL=[12log|Σ2||Σ1|12(xμ1)TΣ11(xμ1)+12(xμ2)TΣ21(xμ2)]×p(x)dx=12log|Σ2||Σ1|12tr {E[(xμ1)(xμ1)T] Σ11}+12E[(xμ2)TΣ21(xμ2)]=12log|Σ2||Σ1|12tr {Id}+12(μ1μ2)TΣ21(μ1μ2)+12tr{Σ21Σ1}=12[log|Σ2||Σ1|d+tr{Σ21Σ1}+(μ2μ1)TΣ21(μ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.