Una Red Generativa Antagónica (GAN) es un modelo de aprendizaje automático que se utiliza para generar datos falsos que se parecen a datos reales. Desde su creación en 2014 con el artículo de Ian Goodfellow sobre “Redes Generativas Antagónicas”, el progreso de las GAN ha sido impresionante, produciendo resultados cada vez más realistas que imitan el conjunto de datos con el que fueron entrenadas.
Las GAN tienen múltiples aplicaciones en diversas industrias. Actualmente, se utilizan para crear todo tipo de contenido, incluyendo texto, imágenes, audio e incluso video. Pueden hacerlo a través de indicaciones basadas en texto o modificando contenido existente. Un ejemplo de sus creaciones es el sitio web thispersondoesnotexist.com, que genera fotos de rostros humanos aleatorios que no pertenecen a ninguna persona real.
Además de crear contenido, las GAN también pueden editar imágenes. Por ejemplo, pueden ayudar a convertir una imagen de baja resolución en una de alta resolución o añadir color a una imagen en blanco y negro.
Un tema importante en la inteligencia artificial hoy en día es el uso de datos sintéticos, que son datos falsos que pueden ser utilizados para entrenar modelos de IA cuando no se dispone de suficientes datos reales. Según Stefan Leichenauer, vicepresidente de Ingeniería en SandboxAQ, una GAN puede crear un conjunto de datos sintéticos que se asemejan a los datos reales, los cuales pueden ser utilizados para entrenar otro modelo de IA.
Las GAN son “antagónicas” porque entrenan dos redes neuronales diferentes que compiten entre sí en un juego de suma cero. Una red genera nuevos datos modificando una muestra de datos de entrada, mientras que la otra intenta predecir si los datos generados pertenecen al conjunto de datos original. Las dos redes neuronales en una GAN se conocen como el generador y el discriminador. Dependiendo de su uso, una de estas redes se implementa típicamente como una red neuronal convolucional (CNN), y la otra como una red neuronal deconvolucional (DNN), que funciona en un proceso inverso al de una CNN.
El generador toma una entrada y genera nuevas muestras de datos que intentan imitar los datos de entrenamiento. Actúa como la fuerza creativa detrás de la GAN, transformando una colección aleatoria de números en datos que se asemejan a los tipos de entrada con los que ha sido entrenado. Esto podría ser una imagen realista, un fragmento de música o incluso un texto. Los expertos a menudo ven al generador como un artista talentoso que experimenta constantemente con diferentes combinaciones para crear algo nuevo.
El discriminador, por otro lado, evalúa las muestras de datos generadas y predice si son reales o falsas, basándose en su similitud con los datos de entrenamiento. Este papel es similar al de un crítico exigente que analiza dos tipos de datos: las muestras de datos reales, como imágenes de aves, y los datos generados por el generador. Su trabajo es analizar ambos y determinar su autenticidad.
Las GAN funcionan mediante un proceso en el que el generador y el discriminador se entrenan juntos, mejorando en una especie de carrera armamentista. El generador produce muestras y el discriminador las evalúa. El generador ajusta su salida para crear muestras que sean más propensas a engañar al discriminador, mientras que el discriminador se vuelve más hábil en distinguir entre muestras reales y sintéticas.
Un aspecto crucial de las GAN es una técnica llamada retropropagación, que permite que el generador aprenda de la retroalimentación del discriminador. Este proceso permite que los errores identificados por el discriminador se propaguen hacia atrás a través de las capas del generador, ajustando así los pesos y sesgos en su red. Esto ayuda al generador a producir datos más realistas en la siguiente iteración.
El proceso de entrenamiento termina cuando el discriminador ya no puede reconocer los datos sintetizados.
Existen varios tipos de GAN, cada una utilizada para diferentes tareas, dependiendo de cómo interactúan el generador y el discriminador. Una GAN básica es la forma más simple. También está la GAN Condicional (cGAN), que permite generar imágenes basadas en una etiqueta, como “gato” o “perro”. Otra variante es la CycleGAN, que aprende a transformar un tipo de dato en otro, como convertir una fotografía en un dibujo a lápiz.
Otros tipos de GAN útiles para la generación de imágenes incluyen las GAN de convolución profunda, que utilizan una red neuronal convolucional profunda para generar imágenes, y las GAN de superresolución, que se centran en mejorar imágenes de baja resolución a alta resolución. También se han desarrollado GAN para generar música que capture la esencia de composiciones humanas y para imitar movimientos y comportamientos humanos en videos, incluyendo los deepfakes.