KL divergencia entre dos gaussianos multivariados

46

Tengo problemas para derivar la fórmula de divergencia KL suponiendo dos distribuciones normales multivariadas. He hecho el caso univariado con bastante facilidad. Sin embargo, ha pasado bastante tiempo desde que tomé las estadísticas de matemáticas, por lo que tengo algunos problemas para extenderlo al caso multivariante. Estoy seguro de que solo me falta algo simple.

Esto es lo que tengo ...

Suponga que y q son los pdf de distribuciones normales con medias μ 1 y μ 2 y varianzas Σ 1 y Σ 2 , respectivamente. La distancia Kullback-Leibler de q a p es:pqμ1μ2Σ1Σ2qp

, que para dos normales multivariantes es:[log(p(x))log(q(x))] p(x) dx

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

Siguiendo la misma lógica que esta prueba , llego aquí antes de quedar atrapado:

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

Creo que tengo que implementar el truco de rastreo , pero no estoy seguro de qué hacer después de eso. Cualquier sugerencia útil para volver a ponerme en el camino correcto sería apreciada.

dmartin
fuente
1
stanford.edu/~jduchi/projects/general_notes.pdf . La última sección también da la derivación.
usuario3540823

Respuestas:

47

Comenzando por donde comenzó con algunas correcciones leves, podemos escribir

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

Tenga en cuenta que he usado un par de propiedades de la Sección 8.2 del Matrix Cookbook .

ramhiser
fuente
Veo que sacaste la D que tenía originalmente. ¿No tendrías un término D después de tomar el registro del gaussiano en los primeros pasos?
dmartin
(2π)d/2|Σk|1/2k=1,2(2π)d/2d1/2
No hay problema. Me alegro de poder ayudar.
ramhiser
μ1μ2μ2μ1
1
@acidghost Cualquiera de los dos funciona porque podemos factorizar uno negativo de ambos lados. Multiplicar los dos negativos produce uno positivo.
ramhiser