KL divergence entre deux gaussiennes multivariées

46

Je ne parviens pas à calculer la formule de divergence KL en supposant deux distributions normales multivariées. J'ai résolu le cas univarié assez facilement. Cependant, cela fait un bon moment que je n'ai pas pris les statistiques mathématiques, alors j'ai du mal à les étendre au cas multivarié. Je suis sûr que je manque juste quelque chose de simple.

Voici ce que j'ai ...

Supposons que les deux p et q sont les fdp de distributions normales avec des moyens u 1 et u 2 et les écarts Σ 1 et Σ 2 , respectivement. La distance de Kullback-Leibler de q à p est:pqμ1μ2Σ1Σ2qp

[ log ( p ( x ) ) - log ( q ( x ) ) ] p ( x ) d x   , qui pour deux normales multivariées est:[log(p(x))log(q(x))] p(x) dx

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

Suivant la même logique que cette preuve , j'arrive à peu près ici avant de rester bloqué:

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

= E [ d2 log| Σ2|| Σ 1 | +12 ((x-μ2)TΣ - 1 2 (x-μ2)-(x-μ1)TΣ - 1 2 (x-μ1))]

Je pense que je dois mettre en œuvre le truc de trace , mais je ne suis pas sûr de savoir quoi faire après cela. Toute astuce utile pour me remettre sur la bonne voie serait appréciée!

dmartin
la source
1
stanford.edu/~jduchi/projects/general_notes.pdf . La dernière section donne également la dérivation.
user3540823

Réponses:

47

En commençant par votre point de départ avec quelques légères corrections, nous pouvons écrire

K L= [ 12 log| Σ2|| Σ 1 | -12 (x-μ1)TΣ - 1 1 (x-μ1)+12 (x-μ2)TΣ - 1 2 (x-μ2)]×p(x)dx= 12 log| Σ2|| Σ 1 | -12 tr{E[(X-μ1)(x-μ1)T]Σ - 1 1 }+1  2 E[(x-μ2)TΣ - 1 2 (x-μ2)]= 12 log| Σ2|| Σ 1 | -12 tr{Id}+1 2 (μ1-μ2)TΣ - 1 2 (μ1-μ2)+12 tr{Σ - 1 2 Σ1}= 12 [log | Σ 2 || Σ 1 | -d+tr{Σ - 1 2 Σ1}+(μ2-μ1)TΣ - 1 2 (μ2-μ1)].

Notez que j'ai utilisé quelques propriétés de la section 8.2 du livre de recettes matriciel .

ramhiser
la source
Je vois que vous avez sorti le D que j'avais à l'origine. N'auriez-vous pas un terme D après avoir pris le journal de la gaussienne au cours des premières étapes?
dmartin
Considérons le facteur d'échelle ( 2 π ) - d / 2 | Σ k | - 1 / 2 , k = 1 , 2 de la densité normale multivariée. Lors du calcul de la différence de log, le terme ( 2 π ) - d / 2 disparaît. Il n'y a pas d terme pour les déterminants - simplement, un 1 / 2 , qui est refactorisée.
Ramhiser
Aucun problème du tout. Heureux d'avoir pu aider.
Ramhiser
Bonjour, comment en êtes-vous arrivé à la dernière étape? Comment avez-vous changé le signe de μ 1 - μ 2 en μ 2 - μ 1 ?
acidghost
1
@acidghost L'un ou l'autre fonctionne car nous pouvons en éliminer un négatif des deux côtés. Multiplier les deux négatifs donne un positif.
Ramhiser