GANs: Generación de Imágenes y Contenido Sintético
Entrenar una GAN es frustrante. El generador y discriminador luchan constantemente, uno domina al otro, nada converge. Este curso te muestra cómo hacer que funcione.
Empiezas con la teoría de juegos detrás de GANs: minimax, equilibrio de Nash. Por qué el entrenamiento es inherentemente inestable. Implementas una GAN básica que probablemente fallará, después aprendes por qué y cómo arreglarlo.
De DCGAN a arquitecturas modernas
DCGAN introdujo convoluciones y estabilizó el entrenamiento. Batch normalization en el generador pero no en todas las capas del discriminador. LeakyReLU versus ReLU y por qué importa. Aprenderás estas decisiones de diseño implementándolas.
Progressive GAN genera imágenes de alta resolución empezando pequeño y creciendo. StyleGAN lleva esto más lejos con style injection y adaptive instance normalization. Entenderás el latent space y cómo interpolarlo para generar variaciones.
Problemas reales de entrenamiento
Mode collapse: el generador produce solo unas pocas imágenes diferentes. Vanishing gradients cuando el discriminador es demasiado bueno. Oscillation sin convergencia. Técnicas para diagnosticar y resolver cada uno.
Spectral normalization, Wasserstein loss, gradient penalty. No son solo nombres fancy, cada uno resuelve problemas específicos que verás aparecer en tus experimentos.
El proyecto final genera rostros sintéticos con control sobre atributos: edad, género, expresión. Usarás conditional GANs y aprenderás disentanglement en el espacio latente. Incluye evaluación con FID score y análisis cualitativo.
Programa del masterclass
- Fase 1: Fundamentos de GANs
- Teoría de juegos y función objetivo minimax
- Implementación de GAN vanilla en MNIST
- Análisis de failure modes comunes
- Fase 2: DCGAN y convoluciones
- Arquitectura con convoluciones transpuestas
- Batch normalization y técnicas de estabilización
- Generación de imágenes CIFAR-10 y CelebA
- Fase 3: Técnicas avanzadas de entrenamiento
- Wasserstein GAN y gradient penalty
- Spectral normalization en el discriminador
- Two-timescale update rule
- Fase 4: Progressive y StyleGAN
- Growing progresivo de resolución
- Style-based generator y AdaIN
- Exploración del espacio latente
- Fase 5: Conditional GANs y control
- Class-conditional generation
- Pix2Pix y CycleGAN para traducción de imágenes
- Proyecto: generación de rostros con control de atributos