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!

dmartin
quelle
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 .

Ramhiser
quelle
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