🧮 Computational Mathematics

Inicio · Parte 16 — Matemática de Transformers, modelos generativos, grafos y RL

331 — Variational Autoencoders

experto clase 11 de 20 4 horas demostración variational_autoencoder

No se puede derivar a través de un muestreo, y reparametrizar es la salida.

Fórmulas

codificador: x → (μ, log σ²)
reparametrización: z = μ + σ·ε,  ε ~ N(0,1)
KL en forma cerrada: ½·Σ(σ² + μ² − 1 − log σ²)

Desarrollo

Un autoencoder variacional codifica cada entrada no en un punto sino en una distribución del espacio latente, muestrea de ella y decodifica. Esa aleatoriedad es lo que hace del espacio latente algo continuo y muestreable, y lo que permite generar datos nuevos en vez de solo reconstruir.

El problema técnico es que muestrear no es diferenciable: no hay forma de propagar el gradiente a través de una operación aleatoria. El truco de reparametrización lo resuelve moviendo la aleatoriedad fuera del camino del gradiente: se muestrea ε de una normal estándar —que no depende de ningún parámetro— y se construye z = μ + σ·ε. Ahora z es una función determinista y derivable de μ y σ.

Un detalle de implementación que conviene entender: la red predice log σ², no σ. La razón es doble: el logaritmo puede tomar cualquier valor real, con lo que no hay que restringir la salida, y exponenciarlo garantiza que la varianza sea positiva sin artificios.

El término KL entre la posterior aproximada y el prior normal estándar tiene forma cerrada, lo que evita estimarlo por muestreo y reduce la varianza del gradiente. Ese término empuja las distribuciones latentes hacia el prior, y su tensión con el término de reconstrucción es lo que da al VAE su comportamiento característico: muestras suaves y algo borrosas.

Ejemplo trabajado

Reparametrización en un espacio latente de dimensión 4.

mu      = ( 0,5 ; −0,3 ;  0,8 ;  0,1)
log_var = (−0,5 ; −1,0 ; −0,2 ; −0,8)

sigma = exp(log_var/2)
      = (0,778801 ; 0,606531 ; 0,904837 ; 0,670320)

Muestreando z = mu + sigma·ε muchas veces:
  media empírica    = (0,5108 ; −0,2871 ; 0,7997 ; 0,0878)
  varianza empírica = (0,5910 ;  0,3745 ; 0,8373 ; 0,4378)

comprobación: sigma² = (0,6065 ; 0,3679 ; 0,8187 ; 0,4493)
coinciden con la varianza empírica                   ✓

La aleatoriedad está en ε, fuera del camino
del gradiente respecto de mu y sigma.

Qué calcula el laboratorio

VAE: reparametrización y el término KL en forma cerrada.

python classes/part-16-matematica-de-transformers-modelos-generativos-grafos-y-rl/331-variational-autoencoders/lab.py
compmath run 331

Salidas del laboratorio (12)

Muestra de la ejecución real

{
  "dimension_latente": 4,
  "mu": [
    0.5,
    -0.3,
    0.8,
    0.1
  ],
  "log_var": [
    -0.5,
    -1.0,
    -0.2,
    -0.8
  ],
  "sigma": [
    0.778801,
    0.606531,
    0.904837,
    0.67032
  ],
  "media_empirica": [
    0.5108,
    -0.2871,
    0.7997,
    0.0878
  ],
  "varianza_empirica": [
    0.591,
    0.3745,
    0.8373,
    0.4378
  ]
}

Errores comunes

Dónde se usa

Generación de imágenes, aprendizaje de representaciones, detección de anomalías, compresión con pérdida y espacios latentes para modelos de difusión.

Idea rectora de la parte

La atención es un promedio ponderado por similitud, normalizado con softmax.

Error a evitar

Confundir temperatura alta con mayor calidad en lugar de mayor entropía.

Conexión con IA

Esta parte es la traducción matemática directa de los papers que definen el estado del arte actual.

Bibliografía de la clase

Archivos de la clase