Las Redes Generativas Adversariales (GAN) representan una potente clase de marcos de aprendizaje automático (ML), introducidos por primera vez por Ian Goodfellow y sus colegas en 2014. Pertenecen al campo de la IA Generativa, y se centran en crear nuevos datos que se parezcan a un conjunto de datos de entrenamiento dado. La idea central de las GAN implica a dos redes neuronales (NN), el Generador y el Discriminador, que participan en un juego competitivo. Este proceso contradictorio lleva al sistema a producir resultados sintéticos muy realistas, como imágenes, música o texto.
Cómo funcionan los GANS
Una arquitectura GAN consta de dos componentes principales que se entrenan simultáneamente:
- El Generador: Esta red toma como entrada ruido aleatorio (un vector de números aleatorios, a menudo muestreados a partir de una distribución gaussiana) e intenta transformarlo en datos que imiten la distribución real de los datos. Por ejemplo, puede generar una imagen sintética de un gato que se parezca a las imágenes del conjunto de datos de entrenamiento. Su objetivo es producir resultados que no se distingan de los datos reales, engañando al Discriminador.
- El Discriminador: Esta red actúa como un clasificador binario. Recibe muestras de datos reales (del conjunto de datos real) y muestras de datos falsos (creados por el Generador). Su tarea consiste en determinar si cada muestra de entrada es real o falsa. Lo aprende mediante técnicas estándar de aprendizaje supervisado, con el objetivo de clasificar correctamente las muestras reales y las generadas.
Aplicaciones clave
Las GAN han permitido avances significativos en diversos dominios:
- Generación de imágenes: Creación de imágenes fotorrealistas, como rostros humanos(StyleGAN de NVIDIA Research), animales u objetos que no existen. Esto tiene aplicaciones en el arte, el diseño y el entretenimiento, pero también plantea problemas éticos en relación con los deepfakes.
- Aumento de Datos Sintéticos: Generación de datos sintéticos realistas para complementar los conjuntos de datos reales. Esto es especialmente útil en campos como el análisis de imágenes médicas, donde los datos reales pueden ser escasos o tener limitaciones de privacidad. Por ejemplo, las GAN pueden crear imágenes sintéticas de rayos X que muestren afecciones poco frecuentes para mejorar la solidez de los modelos de visión por ordenador (CV) de diagnóstico utilizados para tareas como la detección o segmentación de objetos. Este aumento puede mejorar el entrenamiento de modelos como Ultralytics YOLO11.
- Traducción de imagen a imagen: Transformar imágenes de un dominio a otro (por ejemplo, convertir bocetos en fotos, cambiar las estaciones de un paisaje o realizar una transferencia de estilo neuronal).
- Superresolución: Mejora la resolución de las imágenes de baja calidad.
- Síntesis de texto a imagen: Generación de imágenes a partir de descripciones textuales (aunque a menudo superada por arquitecturas más recientes, como los Modelos de Difusión).
GANS frente a otros modelos
Es importante distinguir las GAN de otros tipos de modelos:
- Modelos Discriminativos: La mayoría de los modelos estándar de clasificación y regresión (como los utilizados para la clasificación de imágenes o la detección de objetos estándar) son discriminativos. Aprenden los límites de decisión para separar las distintas clases o predecir un valor basándose en las características de entrada. En cambio, las GAN son generativas: aprenden la distribución de probabilidad subyacente de los propios datos para crear nuevas muestras.
- Modelos de difusión: Los Modelos de Difusión son otra potente clase de modelos generativos que han ganado protagonismo recientemente, consiguiendo a menudo resultados de vanguardia en la generación de imágenes. Funcionan añadiendo gradualmente ruido a los datos y aprendiendo después a invertir este proceso. Aunque a veces producen imágenes de mayor fidelidad y ofrecen un entrenamiento más estable que los GAN, pueden ser computacionalmente más intensivos durante la inferencia.
Retos y avances
Entrenar GANs puede ser notoriamente difícil debido a cuestiones como:
Los investigadores han desarrollado numerosas variantes de GAN para abordar estos retos, como las GAN de Wasserstein(WGAN) para mejorar la estabilidad y las GAN condicionales(cGAN) que permiten generar datos condicionados a atributos específicos (por ejemplo, generar una imagen de un dígito concreto). Frameworks como PyTorch y TensorFlow proporcionan herramientas y bibliotecas que facilitan la implementación y el entrenamiento de GANs.