Redes Generativas Adversariales (GAN's)
Una de las primeras arquitecturas de redes neuronales que tuvieron un enorme éxito para la generación de imágenes es la llamada red generativa adversarial GAN (o antagónica), está diseñada para resolver un problema no supervisado. Cabe mencionar que, aunque en sentido estricto el modelo es no supervisado, vamos a introducir una idea muy ingeniosa de Ian Goodfellow que hace uso de un modelo supervisado. A tal grado que Yann LeCun mencionó que la idea de Goodfellow era la más original dentro de Machine Learning en los últimos años.
Ian Goodfellow
Ian Goodfellow es reconocido por haber creado las GANs en 2014. Su principal aportación fue proponer un enfoque novedoso en el que dos redes neuronales, el generador (G) y el discriminador (D), compiten entre sí y se retroalimentan en un juego de suma cero. El generador intenta crear muestras realistas (como imágenes), mientras que el discriminador intenta distinguir entre muestras reales y falsas. El generador mejora progresivamente su capacidad para crear datos que el discriminador no puede diferenciar de los reales, generando falsos positivos.
Los modelos generativos y la maldición de la dimensión
Hasta ahora hemos trabajado con modelos matemáticos que buscan modelar la distribución de probabilidad condicional P(y|x), donde x pertenece al espacio de dimensión d y y pertenece a un espacio de dimensión n. Esto es muy claro, por ejemplo, en los modelos que usamos en el primer módulo para generar resúmenes. A estos modelos los llamaremos modelos discriminativos.
En contraste, los modelos generativos buscan modelar la distribución P(x|y). En esta semana, y estará fija y representará un conocimiento previo sobre el tipo de datos que deseamos generar, como pinturas de ciertos estilos artísticos o logotipos de compañías.
Es importante destacar que la cantidad de datos necesarios para calcular correctamente esta distribución puede ser enorme debido a la maldición de la dimensión.
Ejemplo: Imaginemos cuántos parámetros necesita aprender un modelo generativo cuando la distribución Z que se desea aprender es un vector gaussiano de dimensión 4: (X₁, X₂, X₃, X₄). En este caso se necesitan aprender 4 medias (μ₁, μ₂, μ₃, μ₄), 4 desviaciones estándar (σ₁, σ₂, σ₃, σ₄) y las 6 covarianzas cruzadas entre las coordenadas, como Cov(X₁,X₂), Cov(X₁,X₃), etc. En total, 14 parámetros solo para un vector gaussiano de tamaño 4.
El caso de las imágenes es aún más complejo porque las distribuciones no solo no son gaussianas, sino que tienen tantas coordenadas como píxeles, lo que hace que técnicas como la máxima verosimilitud sean imposibles de aplicar directamente.
Prehistoria: máquinas de Boltzmann y MNIST
Uno de los resultados más sorprendentes de las redes neuronales profundas fue la aproximación de la distribución de imágenes en blanco y negro de dígitos escritos a mano, utilizando la base de datos MNIST, una de las más famosas en la historia del aprendizaje profundo. Este logro se consiguió mediante una arquitectura llamada máquina de Boltzmann, que logró generar imágenes increíblemente realistas a pesar de la complejidad de la distribución. Aunque su entrenamiento es muy diferente al de una GAN, que veremos en la siguiente sección, comparten ideas similares.
Modelos generativo y discriminativo
En esta sección discutiremos la función de error utilizada por la regresión logística, aunque existen otras funciones de pérdida que podrían aplicarse.
Definición: Sea f un modelo de clasificación binaria (con etiquetas 0 o 1), y (x, y) un dato supervisado. La función de error llamada entropía cruzada se define así:
Ejercicio: Verifique que este error es pequeño cuando la predicción f(x) es muy parecida a la etiqueta y.
Definición: Supongamos que X es una distribución de datos sobre un espacio de dimensión d, y S es una muestra de esa distribución. Una red generativa adversarial incluye la siguiente información:
Dos funciones G y D, llamadas modelos generativo y discriminativo, respectivamente. Ambas funciones están definidas en el mismo espacio. Generalmente se asume que son redes neuronales profundas sin una arquitectura específica.
Una distribución semilla Z' sobre ese espacio, y su transformación mediante el generador, Z = G(Z').
Una función de pérdida para el discriminador D, usando un dato real x de S y un dato generado z de Z:
Sustituyendo en la fórmula de entropía cruzada obtenemos:
La función de pérdida del generador, usando un vector aleatorio z' de Z':
El objetivo del entrenamiento de una GAN es encontrar funciones G y D, y una distribución Z', que minimicen las funciones de pérdida anteriores. Esta definición es conveniente porque permite alternar entre entrenar D (fijando G) y entrenar G (fijando D).
Esto es útil porque podemos pensar en una GAN como una sola red con dos funciones de pérdida distintas para diferentes parámetros, una idea que ya hemos usado en el curso para trabajar con datos multimodales.
Formulación como un juego de suma cero
Originalmente, el problema de optimización de las GANs no se planteó con funciones de pérdida separadas para el discriminador y el generador. En su lugar, se observó que, al utilizar logaritmos, los errores grandes para el discriminador se traducen en errores pequeños para el generador. Es decir:
Esto implica que el problema puede formularse como:
Esta expresión es bien conocida en Teoría de Juegos y representa un juego de suma cero. En este caso, lo que pierde el discriminador es exactamente lo que gana el generador.
Aunque esta formulación es muy elegante, en la práctica el algoritmo de entrenamiento (basado en el descenso de gradiente estocástico y backpropagation) utiliza ambas funciones de pérdida simultáneamente.
¿Dónde aprender más sobre machine learning?
En el Colegio de Matemáticas Bourbaki enseñamos con detalle las matemáticas y las bases para que nuestros estudiantes estén listos para aprender los modelos más avanzados de Inteligencia Artificial, Ciencia de Datos y Finanzas Cuantitativas. Estos son los dos cursos que están por comenzar y durarán todo el 2025.
Track de Ciencia de Datos (06 de Mayo 2025, 49 semanas).
Les compartimos algunas notas, presentaciones y clases muestra del curso en el siguiente link.
De igual manera los invitamos a conocer el Temario del curso de 49 semanas.
Aquí pueden asistir virtualmente a la sesión informativa con el Director del Track de Ciencia de Datos. En esta sesión se tratan los conocimientos previos necesarios para inscribirse en nuestro curso, las dinámicas de las clases así como los objetivos finales a los que aspiran nuestros estudiantes al graduarse de este programa.
Track de Ciencia de Finanzas Cuantitativas (05 de Mayo 2025, 49 semanas).
Les compartimos algunas notas, presentaciones y clases muestra del curso en el siguiente link.
De igual manera los invitamos a conocer el Temario del curso de 49 semanas.