
Generative adversarial networks are a machine learning method where two neural networks compete to generate realistic synthetic data.GAN es una arquitectura de dos redes neuronales que juegan un juego minimax: el generador G intenta engañar al discriminador D creando datos plausibles, mientras que D aprende a distinguir la falsificación. El equilibrio se alcanza cuando G reproduce la distribución de los datos reales con tal precisión que D ya no puede distinguir: su precisión cae al nivel de una suposición aleatoria (50%). Como en una carrera armamentista entre un fabricante de billetes falsos y un experto bancario, cada parte eleva el listón.
Propuestas por Ian Goodfellow y coautores (2014) como un método para entrenar modelos generativos sin modelar explícitamente la distribución de los datos. La idea se remonta a los juegos adversariales y la teoría del minimax. Rápidamente se popularizaron gracias a su capacidad de generar imágenes, sonido y video realistas. Modificaciones posteriores — DCGAN, StyleGAN, CycleGAN — resolvieron problemas de inestabilidad en el entrenamiento y mejoraron la calidad.
Durante el entrenamiento, G y D se actualizan por turnos. El discriminador recibe una muestra real y la salida del generador, y calcula su pérdida (función de error logístico). El generador ajusta sus pesos para maximizar el error del discriminador, es decir, para que la falsificación parezca real. Los gradientes de D fluyen a través de G, formando una representación latente. Problema: gradientes que se desvanecen si D es demasiado fuerte, por lo que a menudo se utilizan funciones de pérdida no estándar (Wasserstein GAN).
Generación de rostros fotorrealistas, diseño de prendas de vestir, mejora de imágenes médicas: en cualquier lugar donde sea necesario completar detalles de manera plausible.
Los deepfakes más impactantes y la restauración de películas antiguas se deben precisamente a las GAN.
| x | variable | data sample — sample |
| z | variable | latent variable sample — latent variable |
| D(x) | variable | discriminator output for real data — discriminator output |
| G(z) | variable | generator output for latent variable — generator output |
| V(D,G) | variable | value function of the game — value function |
| min_G | operador | minimize with respect to generator parameters — minimization over generator |
| max_D | operador | maximize with respect to discriminator parameters — maximization over discriminator |
| E_{x~p_data} | operador | expectation over the empirical data distribution — expectation over data distribution |
| E_{z~p_z} | operador | expectation over the latent prior distribution — expectation over latent distribution |
| log | operador | natural logarithm — logaritmo |



















