KL-Divergenz zwischen zwei multivariaten Gaußschen


46

Ich habe Probleme, die KL-Divergenzformel unter der Annahme von zwei multivariaten Normalverteilungen abzuleiten. Ich habe den univariaten Fall ziemlich leicht gemacht. Es ist jedoch eine Weile her, dass ich Mathe-Statistiken erstellt habe, und daher habe ich einige Probleme, diese auf den multivariaten Fall auszudehnen. Ich bin mir sicher, ich vermisse nur etwas Einfaches.

Folgendes habe ich ...

Angenommen, sowohl als auch sind die pdfs der Normalverteilungen mit den Mitteln und bzw. den Varianzen und . Der Kullback-Leibler-Abstand von zu ist:pqμ1μ2Σ1Σ2qp

[log(p(x))log(q(x))] p(x) dx , was für zwei multivariate Normalen gilt:

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

Nach der gleichen Logik wie dieser Beweis komme ich hierher, bevor ich stecke:

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

Ich glaube, ich muss den Trace-Trick implementieren , bin mir aber nicht sicher, was ich danach tun soll. Alle hilfreichen Tipps, um mich wieder auf den richtigen Weg zu bringen, wären willkommen!


1
stanford.edu/~jduchi/projects/general_notes.pdf . Der letzte Abschnitt gibt auch die Ableitung.
user3540823

Antworten:


47

Angefangen von dem Punkt, an dem Sie mit einigen geringfügigen Korrekturen begonnen haben, können wir schreiben

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

Beachten Sie, dass ich einige Eigenschaften aus Abschnitt 8.2 des Matrix-Kochbuchs verwendet habe .


Ich sehe, Sie haben das D herausgenommen, das ich ursprünglich hatte. Hätten Sie nicht ein D-Semester, nachdem Sie in den ersten Schritten das Protokoll des Gaußschen aufgenommen haben?
dmartin

Betrachten Sie den Skalierungsfaktor , der multivariaten Normaldichte. Bei der Berechnung der log-Differenz Term . Es gibt keinen Term für die Determinanten - einfach eine , die ausgeklammert wird. (2π)d/2|Σk|1/2k=1,2(2π)d/2d1/2
Ramhiser

Überhaupt kein Problem. Froh, dass ich helfen konnte.
Ramhiser

Hallo, wie bist du auf den letzten Schritt gekommen? Wie haben Sie das Vorzeichen von in ? μ1μ2μ2μ1
acidghost

1
@acidghost Entweder funktioniert es, weil wir von beiden Seiten ein negatives herausfiltern können. Multiplizieren der beiden negativen ergibt eine positive.
Ramhiser
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.