Los flujos normalizantes son una clase de modelos generativos en aprendizaje automático que modelan explícitamente una distribución de probabilidad aplicando una secuencia de transformaciones invertibles a una distribución base simple. El método aprovecha la ley de cambio de variable de probabilidades para convertir una distribución simple, como una gaussiana, en una distribución objetivo compleja. Este modelado directo de la verosimilitud ofrece ventajas: la log-verosimilitud negativa puede calcularse y minimizarse como función de pérdida, y se pueden generar muestras novedosas muestreando de la distribución base y aplicando la transformación del flujo. En contraste, otros métodos de modelado generativo, como los autoencoders variacionales (VAEs), las redes generativas adversariales (GANs) y los modelos de difusión, no representan explícitamente la función de verosimilitud.
El término 'flujo normalizante' refleja dos aspectos: 'normalizante' se refiere al hecho de que las transformaciones producen una densidad de probabilidad normalizada (que integra a uno), y 'flujo' se refiere a la composición secuencial de transformaciones que 'fluyen' la distribución base hacia la objetivo. Los modelos basados en flujos se han aplicado en campos como la generación de imágenes, la estimación de densidad y la detección de anomalías, y forman la base de arquitecturas más avanzadas como RealNVP y Glow.
Método
Sea \( z_0 \) una variable aleatoria (posiblemente multivariada) con distribución \( p_0(z_0) \). Para \( i = 1, \dots, K \), sea \( z_i = f_i(z_{i-1}) \) una secuencia de variables aleatorias transformadas desde \( z_0 \). Las funciones \( f_1, \dots, f_K \) deben ser invertibles, lo que significa que la función inversa \( f_i^{-1} \) existe. La salida final \( z_K \) modela la distribución objetivo.
La log-verosimilitud de \( z_K \) viene dada por:
\[ \log p_K(z_K) = \log p_0(z_0) - \sum_{i=1}^K \log \left| \det \frac{d f_i(z_{i-1})}{d z_{i-1}} \right| \]
Esta fórmula surge de la regla de cambio de variable, que ajusta la densidad mediante el determinante absoluto del jacobiano de cada transformación. Para calcular eficientemente la log-verosimilitud, las funciones \( f_1, \dots, f_K \) deben ser fácilmente invertibles, y los determinantes de sus jacobianos deben ser simples de calcular. En la práctica, estas funciones se modelan utilizando redes neuronales profundas, entrenadas para minimizar la log-verosimilitud negativa de las muestras de datos de la distribución objetivo. Las arquitecturas están diseñadas de modo que solo se requiere el paso forward de la red tanto para la inversa como para los cálculos del determinante jacobiano. Ejemplos incluyen NICE, RealNVP y Glow.
Derivación de la log-verosimilitud
Considérese \( z_1 \) y \( z_0 \). Nótese que \( z_0 = f_1^{-1}(z_1) \). Mediante la fórmula de cambio de variable, la distribución de \( z_1 \) es:
\[ p_1(z_1) = p_0(z_0) \left| \det \frac{d f_1^{-1}(z_1)}{d z_1} \right| \]
Usando el teorema de la función inversa, el determinante del jacobiano de la inversa es el recíproco del determinante del jacobiano de la transformación forward, lo que conduce a la expresión de log-verosimilitud anterior. Esta derivación se extiende a múltiples transformaciones por inducción.
Innovaciones Arquitectónicas
Los primeros modelos basados en flujos se centraron en diseñar transformaciones con jacobianos tratables. NICE (Estimación de Componentes Independientes No Lineales), introducido por Dinh et al. en 2014, utilizó capas de acoplamiento aditivas que particionan la entrada y aplican transformaciones afines simples, haciendo el jacobiano triangular con un determinante de uno. RealNVP (Preservación de Volumen No Real) extendió esto a capas de acoplamiento afines, permitiendo operaciones de escala y desplazamiento, lo que mejoró la expresividad mientras se mantenía la invertibilidad. Glow, introducido por Kingma y Dhariwal en 2018, añadió convoluciones 1x1 invertibles y capas actnorm, permitiendo un entrenamiento eficiente en imágenes de alta resolución.
Estas arquitecturas a menudo se componen de múltiples capas de acoplamiento, cada una con una permutación o convolución para mezclar dimensiones. La invertibilidad está garantizada por construcción, y el determinante jacobiano se calcula como el producto de los elementos diagonales del jacobiano triangular, lo cual es eficiente.
Aplicaciones y Comparaciones
Los flujos normalizantes se utilizan para la estimación de densidad, donde aprenden la distribución de probabilidad de un conjunto de datos, y para el muestreo generativo, donde producen nuevos puntos de datos. Se han aplicado a la generación de imágenes, la síntesis de audio y la generación de conformaciones moleculares. En contraste con las GANs, que son conocidas por muestras nítidas pero carecen de estimación de verosimilitud, los flujos proporcionan log-verosimilitudes exactas, lo que puede ser útil para la comparación de modelos y la detección de valores atípicos. En comparación con los modelos de difusión, los flujos suelen ser más rápidos de muestrear porque requieren solo un paso forward, mientras que los modelos de difusión requieren un denoizado iterativo.
Sin embargo, los flujos pueden ser computacionalmente costosos de entrenar debido a la necesidad de arquitecturas invertibles y cálculos jacobianos. También pueden requerir más parámetros para capturar distribuciones complejas en comparación con otros métodos.
Entrenamiento y Optimización
Entrenar un flujo normalizante implica minimizar la log-verosimilitud negativa de los datos de entrenamiento. La función de pérdida es:
\[ \mathcal{L} = -\frac{1}{N} \sum_{n=1}^N \log p_K(x_n) \]
donde \( x_n \) son muestras de datos. Esto se hace típicamente mediante descenso de gradiente estocástico. La invertibilidad de las transformaciones asegura que la log-verosimilitud esté bien definida, y el determinante jacobiano se calcula como parte del paso forward. Técnicas de regularización, como la decadencia de pesos y el dropout, pueden aplicarse a los parámetros de la red.
Conceptos Relacionados
Los flujos normalizantes forman parte del campo más amplio de la inteligencia artificial y las redes neuronales. A menudo se comparan con otros modelos generativos como las redes generativas adversariales y los autoencoders variacionales. La investigación en esta área ha sido avanzada por instituciones como Stanford AI Lab y Berkeley AI Research, y por investigadores como Daphne Koller y Anima Anandkumar. Los fundamentos teóricos se conectan con el aprendizaje automático y el aprendizaje profundo.