Los autocodificadores variacionales (VAE) utilizan la arquitectura del autocodificador para codificar el espacio latente de una manera que pueda usarse 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 VAES son modelos "probabilísticos" que codifican el espacio latente como un abanico de posibilidades. Al interpolar dentro de esta gama de posibilidades codificadas, los VAE pueden sintetizar nuevas muestras de datos que, aunque únicas y originales en sí mismos, se parecen 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 presentar dos tipos de regularidad:
- Continuidad: los puntos cercanos en el espacio latente deben producir un contenido similar cuando se descodifican.
- Integridad: cualquier punto muestreado del espacio latente debe producir un contenido significativo cuando se descodifica.
Una forma sencilla de imponer continuidad y completitud en el espacio latente es forzarlo a seguir una distribución normal (gaussiana). Por lo tanto, los VAE codifican dos vectores diferentes para cada atributo latente de los datos de entrenamiento: un vector de medias, "μ ", y un vector de desviaciones estándar, "σ". Básicamente, estos dos vectores representan el rango de posibilidades para cada variable latente y la varianza esperada dentro de cada rango de posibilidades, respectivamente.
Los VAE consiguen esto añadiendo una función de pérdida adicional junto con la pérdida de reconstrucción: la divergencia de Kullback-Leibler (o divergencia KL). Más concretamente, el VAE se entrena para minimizar la divergencia entre una distribución gaussiana estándar y el espacio latente aprendido minimizando la pérdida de reconstrucción.