3 votos

¿Por qué la divergencia KL entre una normal estándar y una distribución normal es 0 si la desviación estándar es 0,37?

Quería ver un gráfico sobre cómo la divergencia KL entre una distribución normal estándar, y cualquier otra distribución normal con media 0, y desviación estándar siendo xx varía.

Lo necesito sobre todo para el cálculo de las pérdidas del autoencoder variacional, y hasta ahora he aprendido que hay que calcularlo así:

DKL=0.5(σ2+μ21log σ2)DKL=0.5(σ2+μ21log σ2)

Si pretendemos que sabemos que μμ es 0, asumo que podemos simplemente saltarnos ese paso, así que terminamos con

DKL=0.5(σ21log σ2)DKL=0.5(σ21log σ2)

En este gráfico se puede ver que la divergencia KL es 0 si xx es -1, 1, -0,37, 0,37. Si mi ecuación es correcta, debería significar la diferencia de una distribución normal con xx desviación estándar de una distribución normal estándar. No entiendo los valores negativos, pero desde luego no entiendo el valor de 0,37.

¿Me he equivocado en la ecuación o es lo esperado?

4voto

user777 Puntos 10934

La fórmula es correcta. Sólo hay que recordar que la divergencia KL se define en términos de la logaritmo natural .

El programa informático que ha utilizado para realizar el trazado parece utilizar la convención log=log10log=log10 . Si aplica la fórmula de cambio de base, o utiliza lnln Entonces se obtiene el gráfico correcto. Así que, o bien

  • 0.5(1+2log10(x)log10ex2)0.5(1+2log10(x)log10ex2) o
  • 0.5(1+2ln(x)x2)0.5(1+2ln(x)x2) funciona correctamente.

La lección aquí es saber qué convención utiliza su software, porque puede ser inconsistente entre el software. Si lo trazas en Wolfram Alpha, por ejemplo, la convención log=logelog=loge se utiliza.

https://www.wolframalpha.com/input/?i=-0.5*%281%2B+2+log%28x%29+-+x%5E2%29

2voto

KL divergencia entre dos RV normales es DKL(N1,N2)=logσ2σ1+σ21+(μ1μ2)22σ2212DKL(N1,N2)=logσ2σ1+σ21+(μ1μ2)22σ2212

La divergencia KL no es simétrica, por lo que si se toma μ2=0,σ2=1μ2=0,σ2=1 la expresión se reduce a DKL=logσ1+σ21+μ21212DKL=logσ1+σ21+μ21212

Si se toma lo contrario, es decir μ1=0,σ1=1μ1=0,σ1=1 : DKL=logσ2+1+μ222σ212DKL=logσ2+1+μ222σ212

La primera es efectivamente la misma que la tuya. Como ha señalado @Sycorax (+1), si sólo utilizas 0.5(x21lnx2)0.5(x21lnx2) en lugar de 0.5(x21logx2)0.5(x21logx2) en el servicio de trazado.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X