Flujos de normalización

Flujos de normalización#

En este curso, te presentamos los flujos de normalización, modelos generativos de aprendizaje de representaciones. Aunque son menos conocidos que los VAE, GAN o modelos de difusión, ofrecen varias ventajas significativas.

Tanto los GAN como los VAE tienen limitaciones para evaluar con precisión la distribución de probabilidad. Los GAN no lo hacen en absoluto, mientras que los VAE emplean la cota inferior variacional (ELBO). Esto genera problemas durante el entrenamiento: los VAE suelen producir imágenes borrosas, y los GAN pueden caer en el colapso de modos (mode collapse).

Los flujos de normalización proporcionan una solución a estos inconvenientes.

¿Cómo funcionan?#

Un flujo de normalización es una serie de transformaciones biyectivas. Estas se utilizan para modelar distribuciones complejas, como las de las imágenes, transformándolas en una distribución simple, como una gaussiana estándar (media \(0\) y varianza \(1\)).

Para entrenarlos, se maximiza la verosimilitud de los datos. En la práctica, esto implica minimizar la log-verosimilitud negativa (\(-\log p(x)\)) con respecto a la densidad de probabilidad real de los datos. Al ajustar los parámetros de las transformaciones, se logra que la distribución generada por el flujo se aproxime lo más posible a la distribución objetivo.

Esquema de un flujo de normalización

Imagen extraída del artículo.

Ventajas y desventajas#

Ventajas principales de los flujos de normalización:

  • Su entrenamiento es muy estable.

  • Convergen más fácilmente que los GAN o los VAE.

  • No requieren generar ruido para crear datos (a diferencia de los GAN o los VAE).

Desventajas:

  • Son menos expresivos que los GAN o los VAE.

  • El espacio latente está limitado por la necesidad de funciones biyectivas y la preservación del volumen, lo que lo hace:

    • Difícil de interpretar.

    • De alta dimensionalidad.

  • Los resultados generados suelen ser de menor calidad que los de los GAN o los VAE.

Nota: Los flujos de normalización tienen un fundamento teórico profundo, pero no entraremos en detalles aquí. Si deseas profundizar, puedes consultar el curso CS236 de Stanford, disponible en este enlace.