Una red generativa antagónica (GAN, por generative adversarial network) es un par de redes entrenadas una contra la otra: un generador que convierte ruido aleatorio en datos (típicamente imágenes) y un discriminador que intenta distinguir los datos reales de las falsificaciones. Goodfellow et al. (2014) la presentaron con una analogía que se volvió canónica: el generador es una banda de falsificadores que intenta hacer circular billetes falsos, el discriminador es la policía que intenta detectarlos, y la competencia mejora a ambos hasta que las copias son indistinguibles de los originales (2014, sec. 1).
Cómo funciona
El generador G toma un vector z sorteado de una distribución simple (su espacio latente) y lo transforma en una imagen G(z). El discriminador D recibe imágenes y devuelve la probabilidad de que sean reales. Ambos se entrenan con descenso por gradiente sobre un mismo valor, en un juego minimax (Goodfellow et al., 2014, sec. 3):
V(D, G) = E[log D(x)] + E[log(1 − D(G(z)))]
D intenta maximizarlo (acertar); G, minimizarlo (engañar). En la práctica se alternan unos pasos de D y uno de G. Como al principio D rechaza las falsificaciones con facilidad y el gradiente de G se apaga, los autores recomiendan que G maximice log D(G(z)) en su lugar. En el óptimo teórico, la distribución del generador coincide con la de los datos y D responde ½ en todas partes (2014, sec. 4).
Un detalle filosóficamente curioso: el generador nunca ve una imagen real. Solo recibe los gradientes que le llegan a través del discriminador, de modo que ningún ejemplo se copia directamente en sus parámetros (2014, sec. 6).
Qué cambió
Respecto de su ancestro, el perceptrón multicapa, la novedad no está en la arquitectura (en 2014, G y D eran simples MLP entrenados sobre MNIST, una base de rostros de Toronto y CIFAR-10 (2014, sec. 5)) sino en el entrenamiento adversarial: la función de pérdida del generador es otra red que también aprende. Los modelos generativos anteriores tropezaban con cálculos probabilísticos intratables y cadenas de Markov; la GAN solo necesita retropropagación. A diferencia del VAE, no tiene codificador ni representa explícitamente la distribución que aprende (2014, sec. 6); a cambio, sus muestras suelen ser más nítidas.
La evolución fue rápida. DCGAN (Radford et al., 2016) hizo convolucional al generador: según Buckner (2024), sus capas ejecutan operaciones casi inversas de las de una red como AlexNet, con convoluciones transpuestas que van de la abstracción al detalle (2024, pp. 58, 207–209). Con DCGAN apareció la aritmética latente: el vector de «hombre con anteojos», menos el de «hombre», más el de «mujer», produce mujeres con anteojos (2024, p. 213). StyleGAN (Karras et al., 2019) se entrenó con 70 000 rostros de Flickr a 1024 × 1024, y un descendiente suyo alimenta sitios como This Person Does Not Exist (2024, p. 212). Chollet dedica una sección a implementar una GAN sencilla sobre caras de celebridades, con una «bolsa de trucos» para estabilizarla (Chollet, 2021, sec. 12.5).
Límites
- Colapso de modos: si G se entrena demasiado sin actualizar D, termina enviando muchos valores de z a la misma imagen. Goodfellow y colegas lo llamaron «el escenario Helvetica» (Goodfellow et al., 2014, sec. 6).
- Inestabilidad: el equilibrio entre ambas redes es frágil, y no hay una verosimilitud que permita medir el progreso con claridad.
- Artefactos: las convoluciones transpuestas dejan patrones de tablero de ajedrez (Buckner, 2024, p. 210).
- Falsificación: Buckner (2024) asocia las GAN con los deepfakes (2024, p. 58), aunque los primeros intercambios de caras, en 2017, usaban autocodificadores con un codificador compartido (Afchar et al., 2018).
Desde comienzos de la década de 2020, los modelos de difusión la desplazaron en buena parte de la generación de imágenes. La idea sobrevive como pérdida auxiliar: el autocodificador de la difusión latente se entrena con un objetivo adversarial para evitar la borrosidad (Rombach et al., 2022, sec. 3.1).