KL Pérdida con una unidad Gaussiana


10

He estado implementando un VAE y he notado dos implementaciones diferentes en línea de la divergencia KL gaussiana univariada simplificada. La divergencia original según aquí es Si suponemos que nuestro anterior es una unidad gaussiana, es decir,μ2=0yσ2=1, esto se simplifica a KLloss=-log(σ1)+σ 2 1 +μ 2 1

KLloss=log⁡(σ2σ1)+σ12+(μ1−μ2)22σ22−12
μ2=0σ2=1 KLloss=-1
KLloss=−log⁡(σ1)+σ12+μ122−12
Y aquí es donde descansa mi confusión. Aunque he encontrado algunos repositorios oscuros de github con la implementación anterior, lo que más comúnmente encuentro usado es:
KLloss=−12(2log⁡(σ1)−σ12−μ12+1)

Por ejemplo, en eltutorialoficial deautoencoder Keras. Mi pregunta es entonces, ¿qué me estoy perdiendo entre estos dos? La principal diferencia es dejar caer el factor de 2 en el término logarítmico y no cuadrar la varianza. Analíticamente he usado este último con éxito, por lo que vale. ¡Gracias de antemano por cualquier ayuda!

=−12(log⁡(σ1)−σ1−μ12+1)

Respuestas:


7

σ1σ12log⁡(σ1)−σ1→2log⁡(σ1)−σ12

Ambas formulaciones son equivalentes y el objetivo no cambia.


μσσμσ

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.