Los autocodificadores variacionales (VAE) utilizan la arquitectura de autocodificador para codificar el espacio latente de una manera que pueda utilizarse para tareas generativas, como la generación de imágenes.
A diferencia de la mayoría de los autocodificadores, que son modelos "deterministas" que codifican un único vector de valores discretos para cada variable latente de los datos de entrenamiento, los VAE son modelos "probabilísticos" que codifican el espacio latente como una gama de posibilidades. Al interpolar dentro de esta gama de posibilidades codificadas, los VAE pueden sintetizar nuevas muestras de datos que, aunque son únicas y originales en sí mismas, se asemejan a los datos de entrenamiento originales.
Para permitir la generación de muestras de datos completamente nuevas (en lugar de simplemente recrear o combinar muestras de datos de entrenamiento), el espacio latente debe exhibir 2 tipos de regularidad:
- Continuidad: los puntos cercanos en el espacio latente deben producir contenido similar cuando se decodifican.
- Totalidad: cualquier punto muestreado del espacio latente debe producir contenido significativo al decodificarse.
Una forma sencilla de imponer la continuidad y la integridad en el espacio latente es forzarlo a seguir una distribución normal (gaussiana). Por lo tanto, los VAE codifican 2 vectores diferentes para cada atributo latente de los datos de entrenamiento: un vector de medias, “μ”, y un vector de desviaciones estándar, “σ”. En esencia, estos 2 vectores representan, respectivamente, la gama de posibilidades para cada variable latente y la variación esperada dentro de cada gama de posibilidades.
Los VAE logran esto agregando una función de pérdida adicional junto con la pérdida de reconstrucción: divergencia Kullback-Leibler (o divergencia KL). Más específicamente, el VAE está entrenado para minimizar la divergencia entre una distribución gaussiana estándar y el espacio latente aprendido al minimizar la pérdida de reconstrucción.