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(Σ2−1Σ1)+(μ2−μ1)TΣ2−1(μ2−μ1)]

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

=∫[d2log⁡|Σ2||Σ1|+12((x−μ2)TΣ2−1(x−μ2)−(x−μ1)TΣ2−1(x−μ1))]×p(x)dx

=E[d2log⁡|Σ2||Σ1|+12((x−μ2)TΣ2−1(x−μ2)−(x−μ1)TΣ2−1(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.


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Σ1−1(x−μ1)+12(x−μ2)TΣ2−1(x−μ2)]×p(x)dx=12log⁡|Σ2||Σ1|−12tr {E[(x−μ1)(x−μ1)T] Σ1−1}+12E[(x−μ2)TΣ2−1(x−μ2)]=12log⁡|Σ2||Σ1|−12tr {Id}+12(μ1−μ2)TΣ2−1(μ1−μ2)+12tr{Σ2−1Σ1}=12[log⁡|Σ2||Σ1|−d+tr{Σ2−1Σ1}+(μ2−μ1)TΣ2−1(μ2−μ1)].

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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.