Un VAE es un codificador–decodificador que aprende a comprimir imágenes (u otros datos) en un espacio latente de pocas dimensiones y, sobre todo, a volver de ese espacio a ejemplares verosímiles. Su diferencia con un autocodificador común es que no codifica cada entrada como un punto sino como una distribución de probabilidad. Lo propusieron Kingma y Welling (2014) en diciembre de 2013; Rezende et al. (2014) llegaron a una idea equivalente de forma independiente (2014, sec. 4).
Cómo funciona
El modelo tiene tres piezas (Kingma y Welling, 2014, sec. 3):
- Un codificador recibe una imagen x y devuelve dos vectores, medias μ y desvíos σ. Juntos describen una campana gaussiana en el espacio latente: la región donde probablemente vive el código de x.
- Se muestrea un código z de esa región. Para que el sorteo no corte el flujo de gradientes se usa el truco de reparametrización: z = μ + σ ⊙ ε, con ε extraído de N(0, I). El azar entra como un insumo externo y la retropropagación puede atravesar μ y σ (2014, sec. 2.4).
- Un decodificador convierte z de nuevo en una imagen.
La función de pérdida (el negativo de la «cota inferior variacional») tiene dos términos: un error de reconstrucción y una divergencia de Kullback–Leibler que castiga que la distribución de cada código se aleje de N(0, I). Los autores leen este segundo término como un regularizador (2014, sec. 2.3). Terminado el entrenamiento, el codificador puede descartarse: se sortea un punto de N(0, I), se lo decodifica y aparece un ejemplar nuevo.
Los experimentos originales eran modestos: perceptrones con una sola capa oculta (500 unidades para MNIST, 200 para unas dos mil fotos de la cara de Brendan Frey) y espacios latentes de 2 a 200 dimensiones (2014, sec. 5).
Qué cambió
Un autocodificador común asigna a cada imagen un punto y deja el resto del espacio sin uso: entre dos códigos hay «agujeros» que se decodifican como basura. El problema no es trivial. Chollet (2021) recuerda que el promedio píxel a píxel de dos dígitos de MNIST casi nunca es un dígito, y que interpolar con sentido exige moverse sobre la variedad latente de los datos (2021, sec. 5.1.2). El término KL obliga a los códigos a solaparse cerca del origen, de modo que el espacio queda lleno: cualquier camino entre dos puntos produce transformaciones graduales y verosímiles. Buckner (2024) lo describe como un espacio latente «más suave», en el que medias y desvíos separan los factores de variación y permiten muestrearlos de manera coherente (2024, pp. 215–217). Chollet dedica una sección a implementarlo en Keras, con «vectores de concepto» para editar imágenes (2021, sec. 12.4).
El otro cambio es de linaje: el VAE unió el aprendizaje profundo con la tradición bayesiana de los modelos de variables latentes. Las GAN, nacidas seis meses después, renunciaron a esa herencia: no representan explícitamente ninguna distribución (Goodfellow et al., 2014, sec. 6).
Formas y descendencia
Su forma más difundida hoy es invisible. Los modelos de difusión latente no trabajan sobre píxeles sino sobre el espacio latente de un autocodificador; una de las variantes estudiadas impone una leve penalización KL «similar a un VAE» y se entrena, además, con una pérdida adversarial para evitar la borrosidad (Rombach et al., 2022, sec. 3.1). En Stable Diffusion, la versión pública de ese trabajo, cada imagen sale al final por un decodificador de ese tipo.
Límites
- Borrosidad: con pérdidas píxel a píxel, las muestras salen suaves y desenfocadas, justo el defecto que la pérdida adversarial de la difusión latente intenta corregir.
- Tensión entre términos: más peso al KL da un espacio más ordenado pero reconstrucciones peores; variantes como β-VAE ajustan ese equilibrio para obtener factores más interpretables (Buckner, 2024, p. 217).
- Ejes opacos: nada garantiza que cada dimensión latente corresponda a un rasgo que un humano sabría nombrar.