Rozbieżność KL między dwoma wielowymiarowymi gaussami


46

Mam problem z wyprowadzeniem formuły dywergencji KL przy założeniu dwóch normalnych rozkładów wielowymiarowych. Zrobiłem przypadek jednoznaczny dość łatwo. Minęło jednak sporo czasu, odkąd wziąłem statystyki matematyczne, więc mam problem z rozszerzeniem go na przypadek wielowymiarowy. Jestem pewien, że brakuje mi czegoś prostego.

Oto co mam ...

Załóżmy, że zarówno jak i są plikami pdf normalnych rozkładów odpowiednio ze średnimi i i wariancjami i . Odległość Kullbacka-Leiblera od do wynosi:pqμ1μ2Σ1Σ2qp

[log(p(x))log(q(x))] p(x) dx , co dla dwóch normalnych zmiennych wielowymiarowych to:

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

Kierując się tą samą logiką, co ten dowód , zajmę się tym zanim utknę:

=[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))]

Myślę, że muszę wdrożyć trik śledzenia , ale po prostu nie jestem pewien, co robić później. Będziemy wdzięczni za wszelkie pomocne wskazówki, które pozwolą mi wrócić na właściwy tor!


1
stanford.edu/~jduchi/projects/general_notes.pdf . Ostatnia sekcja zawiera również wyprowadzenie.
user3540823,

Odpowiedzi:


47

Poczynając od miejsca, w którym zacząłeś od drobnych poprawek, możemy pisać

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)].

Zauważ, że skorzystałem z kilku właściwości z Sekcji 8.2 Matrix Cookbook .


Widzę, że wyjąłeś D, które pierwotnie miałem. Czy nie miałbyś pojęcia D po przejściu dziennika Gaussa w pierwszych kilku krokach?
dmartin

Rozważ współczynnik skalowania , normalnej gęstości wielowymiarowej. Podczas obliczania różnicy logarytmicznej znika. Nie ma terminu na wyznaczniki - po prostu , który jest uwzględniony. (2π)d/2|Σk|1/2k=1,2(2π)d/2d1/2
ramhiser

Żaden problem. Cieszę się, że mogłem pomóc.
ramhiser

Cześć, jak wymyśliłeś ostatni krok? Jak zmieniłeś znak na ? μ1μ2μ2μ1
acidghost 11.04.16

1
@acidghost Każdy z nich działa, ponieważ możemy wyróżnić negatywny z obu stron. Pomnożenie dwóch ujemnych daje wynik dodatni.
ramhiser
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.