Las redes generativas adversariales (GAN) son una de las tecnologías modernas que ofrecen un gran potencial en muchos casos de uso, desde la creación de imágenes de su edad y el aumento de su voz hasta diversas aplicaciones en medicina y otras industrias.
Esta avanzada tecnología puede ayudarle a dar forma a sus productos y servicios. También puede utilizarse para mejorar la calidad de las imágenes y preservar los recuerdos.
Aunque las GAN son una bendición para muchos, a algunos les preocupan.
Pero, ¿qué es exactamente esta tecnología?
En este artículo le explicaré qué es un GAN, cómo funciona y sus aplicaciones.
Así que, ¡vamos a sumergirnos de lleno!
¿Qué es una Red Adversarial Generativa?
Una Red Adversarial Generativa (GAN) es un marco de aprendizaje automático formado por dos redes neuronales que compiten para producir predicciones más precisas, como imágenes, música única, dibujos, etc.
Las GAN fueron diseñadas en 2014 por un informático e ingeniero, Ian Goodfellowy algunos de sus colegas. Son redes neuronales profundas únicas capaces de generar nuevos datos similares a aquellos en los que están siendo entrenadas. Compiten en un juego de suma cero que hace que un agente pierda la partida y el otro la gane.

Originalmente, las GAN se propusieron como modelo generativo para el aprendizaje automático, principalmente el aprendizaje no supervisado. Pero los GAN también son útiles para el aprendizaje totalmente supervisado, el aprendizaje semisupervisado y el aprendizaje por refuerzo.
Los dos bloques en liza en un GAN son:
El generador: Es una rojo neuronal convolucional que produce artificialmente salidas similares a los datos reales.
El discriminador: Es una red neuronal deconvolucional que puede identificar esas salidas creadas artificialmente.
Conceptos clave
Para entender mejor el concepto de GAN, comprendamos rápidamente algunos conceptos importantes relacionados.
Aprendizaje automático (ML)

El aprendizaje automático es una parte de la inteligencia artificial (IA) que consiste en aprender y construir modelos aprovechando los datos para mejorar el rendimiento y la precisión al realizar tareas o tomar decisiones o predicciones.
Los algoritmos de ML crean modelos basados en datos de entrenamiento, mejorando con el aprendizaje continuo. Se utilizan en múltiples campos, como la visión por ordenador, la toma de decisiones automatizada, el filtrado de correo electrónico, la medicina, la banca, la calidad de los datos, la ciberseguridad, el reconocimiento de voz y los sistemas de recomendación, entre otros.
Modelo discriminante

En el aprendizaje profundo y el aprendizaje automático, el modelo discriminante funciona como un clasificador para distinguir entre un conjunto de niveles o dos clases.
Por ejemplo, diferenciar entre distintas frutas o animales.
Modelo generativo
En los modelos generativos, se consideran muestras aleatorias para crear nuevas imágenes realistas. Aprende de imágenes reales de algunos objetos o seres vivos para generar sus propias ideas realistas pero mimetizadas. Estos modelos son de dos tipos:
Autocodificadores variacionales: Utilizan codificadores y descodificadores que son redes neuronales separadas. Esto funciona porque una imagen realista dada pasa por un codificador para representar estas imágenes como vectores en un espacio latente.
A continuación, se utiliza un descodificador para tomar estas interpretaciones y producir unas copias realistas de estas imágenes. Al principio, su calidad de imagen podría ser baja, pero mejorará cuando el descodificador sea totalmente funcional, y podrá prescindir del codificador.
Redes generativas adversariales (GAN): Como ya se ha comentado, una GAN es una red neuronal profunda capaz de generar datos nuevos y similares a partir de los datos de entrada que se le proporcionan. Forma parte del aprendizaje automático no supervisado, que es uno de los tipos de aprendizaje automático que se analizan a continuación.
Aprendizaje supervisado

En el aprendizaje supervisado, una máquina se entrena utilizando datos bien etiquetados. Esto significa que algunos datos ya estarán etiquetados con la respuesta correcta. Aquí, a la máquina se le dan algunos datos o ejemplos para permitir que el algoritmo de aprendizaje supervisado analice los datos de entrenamiento y produzca un resultado preciso a partir de estos datos etiquetados.
Aprendizaje no supervisado
El aprendizaje no supervisado consiste en entrenar una máquina con la ayuda de datos que no están etiquetados ni clasificados. Permite que el algoritmo de aprendizaje automático trabaje con esos datos sin orientación. En este tipo de aprendizaje, la tarea de la máquina consiste en categorizar los datos no clasificados basándose en los patrones, las similitudes y las diferencias sin un entrenamiento previo de los datos.
Así pues, las GAN están asociadas a la realización de aprendizaje no supervisado en ML. Tiene dos modelos que pueden descubrir y aprender automáticamente los patrones a partir de los datos de entrada. Estos dos modelos son el generador y el discriminador.
Entendámoslos un poco más.
Partes de una GAN
El término "adversario" se incluye en GAN porque tiene dos partes: generador y denominador que compiten. Esto se hace para capturar, escudriñar y replicar las variaciones de datos en un conjunto de datos. Comprendamos mejor estas dos partes de un GAN.
Generador

Un generador es una rojo neuronal capaz de aprender y generar puntos de datos falsos como imágenes y audio que parecen realistas. Se utiliza en el entrenamiento y mejora con el aprendizaje continuo.
Los datos generados por el generador se utilizan como ejemplo negativo para la otra parte, el denominador que veremos a continuación. El generador toma como entrada un vector aleatorio de longitud fija para producir una muestra de salida. Su objetivo es presentar la salida ante el discriminador para que éste pueda clasificar si es real o falsa.
El generador se entrena con estos componentes:
- Vectores de entrada ruidosos
- Una red generadora para transformar una entrada aleatoria en la instancia de datos
- Una red discriminadora para clasificar los datos generados
- Una pérdida del generador para penalizarlo cuando no consigue engañar al discriminador
El generador funciona como un ladrón que replica y crea datos realistas para engañar al discriminador. Su objetivo es eludir varias comprobaciones realizadas. Aunque puede fallar terriblemente en las etapas iniciales, sigue mejorando hasta que genera múltiples datos realistas de alta calidad y puede evitar las pruebas. Una vez alcanzada esta capacidad, puede utilizar sólo el generador sin necesidad de un discriminador independiente.
Discriminador

Un discriminador es también una red neuronal que puede diferenciar entre una imagen falsa y una real u otros tipos de datos. Al igual que el generador, desempeña un papel vital durante la fase de entrenamiento.
Actúa como la policía para atrapar al ladrón (datos falsos por el generador). Su objetivo es detectar imágenes falsas y anomalías en una instancia de datos.
Como se ha comentado antes, el generador aprende y sigue mejorando hasta llegar a un punto en el que se vuelve autosuficiente para producir imágenes de alta calidad que no requieren un discriminador. Cuando los datos de alta calidad del generador pasan por el discriminador, éste ya no puede diferenciar entre una imagen real y una falsa. Por lo tanto, ya sólo puede funcionar con el generador.
¿Cómo funciona la GAN?
En una red generativa adversarial (GAN) intervienen tres cosas:
- Un modelo generativo para describir la forma en que se generan los datos.
- Un entorno adversarial en el que se entrena el modelo.
- Redes neuronales profundas como algoritmos de IA para el entrenamiento.
Las dos redes neuronales de GAN -generador y discriminador- se emplean para jugar un juego adversario. El generador toma los datos de entrada, como archivos de audio, imágenes, etc., para generar una instancia de datos similar, mientras que el discriminador valida la autenticidad de esa instancia de datos. Este último determinará si la instancia de datos que ha revisado es real o no.

Por ejemplo, usted desea verificar si una imagen dada es real o falsa. Puede utilizar entradas de datos generadas a mano para alimentar al generador. Éste creará nuevas imágenes replicadas como salida.
Al hacerlo, el generador pretende que todas las imágenes que genere se consideren auténticas, a pesar de ser falsas. Quiere crear resultados pasables para mentir y evitar ser descubierto.
A continuación, esta salida irá al discriminador junto con un conjunto de imágenes de datos reales para detectar si estas imágenes son auténticas o no. El generador trabaja de forma adversa por mucho que intente imitar; el discriminador ayudará a distinguir los datos reales de los falsos.
El discriminador tomará tanto los datos falsos como los reales para devolver una probabilidad de 0 ó 1. Aquí, 1 representa la autenticidad mientras que 0 representa la falsedad.
Hay dos bucles de retroalimentación en este proceso:
- El generador se une a un bucle de retroalimentación con un discriminador
- El discriminador se une a otro bucle de retroalimentación con un conjunto de imágenes reales
Un entrenamiento GAN funciona porque tanto el generador como el discriminador están en entrenamiento. El generador aprende continuamente pasando entradas falsas, mientras que el discriminador aprenderá para mejorar la detección. En este caso, ambos son dinámicos.
El discriminador es una red convolucional capaz de categorizar las imágenes que se le suministran. Funciona como un clasificador binomial para etiquetar las imágenes como falsas o reales.
Por otro lado, el generador es como una red convolucional inversa que toma muestras de datos aleatorias para producir imágenes. Pero, el discriminador verifica los datos con la ayuda de técnicas de downsampling como el max-pooling.
Ambas redes intentan optimizar una pérdida o función objetivo opuesta y diferente en un juego adversario. Sus pérdidas les permiten enfrentarse aún más entre sí.
Tipos de GAN

Las redes generativas adversariales son de diferentes tipos en función de su implementación. He aquí los principales tipos de GAN utilizados activamente:
- GAN condicional (CGAN): Es una técnica de aprendizaje profundo que implica parámetros condicionales específicos para ayudar a diferenciar entre datos reales y falsos. También incluye un parámetro adicional "y" en la fase generadora para producir los datos correspondientes. Además, se añaden etiquetas a esta entrada y se alimentan al discriminador para que pueda verificar si los datos son auténticos o falsos.
- GAN vainilla: Es un tipo de GAN simple en el que el discriminador y el generador son perceptrones más simples y multicapa. Sus algoritmos son sencillos, optimizando la ecuación matemática con la ayuda del descenso de gradiente estocástico.
- GAN convolucional profundo (DCGAN): Es popular y se considera la implementación de GAN más exitosa. DCGAN se compone de ConvNets en lugar de perceptrones multicapa. Estas ConvNets se aplican sin utilizar técnicas como el max-pooling o la conexión completa de las capas.
- Super Resolución GAN (SRGAN): Es una implementación de GAN que utiliza una red neuronal profunda junto con una red adversarial para ayudar a producir imágenes de alta calidad. SRGAN es especialmente útil para reescalar eficazmente imágenes originales de baja resolución de modo que se mejoren sus detalles y se minimicen los errores.
- GAN de pirámide laplaciana (LAPGAN): Es una representación invertible y lineal que incluye múltiples imágenes de paso de banda que se colocan a ocho espacios con residuos de baja frecuencia. LAPGAN utiliza varias redes discriminadoras y generadoras y múltiples niveles de pirámide laplaciana.
LAPGAN se utiliza ampliamente porque produce imágenes de gran calidad. Estas imágenes se someten primero a un muestreo descendente en cada capa de la pirámide y, a continuación, a un muestreo ascendente en cada capa, donde las ideas reciben algo de ruido hasta que adquieren el tamaño original.
Aplicaciones de las GAN
Las redes generativas adversariales se utilizan en diversos campos, como:
Ciencia

Las GAN pueden proporcionar una forma precisa y más rápida de modelar la formación de chorros de alta energía y realizar experimentos de física. Estas redes también pueden entrenarse para estimar los cuellos de botella en la realización de simulaciones para la física de partículas que consumen muchos recursos.
Las GAN pueden acelerar la simulación y mejorar su fidelidad. Además, las GAN pueden ayudar a estudiar la materia oscura simulando lentes gravitacionales y mejorando las imágenes astronómicas.
Videojuegos

El mundo de los videojuegos también ha aprovechado las GAN para aumentar la escala de los datos bidimensionales de baja resolución utilizados en videojuegos antiguos. Le ayudará a recrear dichos datos en resoluciones 4k o incluso superiores mediante el entrenamiento de imágenes. A continuación, podrá reducir la resolución de los datos o las imágenes para adecuarlos a la resolución real del videojuego.
Proporcione un entrenamiento adecuado a sus modelos GAN. Pueden ofrecer imágenes 2D más nítidas y claras de una calidad impresionante en comparación con los datos nativos, conservando al mismo tiempo los detalles de la imagen real, como los colores.
Entre los videojuegos que han aprovechado los GAN se encuentran Resident Evil Remake, Final Fantasy VIII y IX, etc.
Arte y moda
Se pueden utilizar GAN para generar arte, como crear imágenes de individuos que nunca han existido, fotografías en pintura, producir imágenes de modelos de moda irreales, y mucho más. También se utiliza en dibujos generando sombras y bocetos virtuales.
Publicidad

Si utiliza GAN para crear y producir sus anuncios, ahorrará tiempo y recursos. Como se ha visto anteriormente, si quiere vender sus joyas, puede crear un modelo imaginario con el aspecto de un ser humano real con la ayuda de GAN.
De este modo, podrá hacer que la modelo lleve sus joyas y mostrarlas a sus clientes. Se ahorrará contratar a una modelo y pagar por ello. Incluso podrá eliminar los gastos adicionales como pagar el transporte, alquilar un estudio, contratar fotógrafos, maquilladores, etc.
Esto le ayudará significativamente si tiene un negocio en crecimiento y no puede permitirse contratar a una modelo o disponer de una infraestructura para las sesiones fotográficas publicitarias.
Síntesis de audio
Puede crear archivos de audio a partir de un conjunto de clips de audio con la ayuda de los GAN. Esto también se conoce como audio generativo. Por favor, no confunda esto con Amazon Alexa, Apple Siri u otras voces de IA en las que los fragmentos de voz se cosen bien y se producen bajo demanda.
En su lugar, el generador de audio utiliza redes neuronales para estudiar las propiedades estadísticas de una fuente de audio. A continuación, reproduce directamente esas propiedades en un contexto determinado. Aquí, el modelado representa la forma en que el habla cambia después de cada milisegundo.
Aprendizaje por transferencia

Los estudios avanzados de aprendizaje de transferencia utilizan las GAN para alinear los últimos espacios de características como el aprendizaje profundo por refuerzo. Para ello, las incrustaciones de la fuente y la tarea apuntada se alimentan al discriminador para determinar el contexto. A continuación, el resultado se retropropaga a través del codificador. De este modo, el modelo sigue aprendiendo.
Otras aplicaciones de las GAN son
- Diagnóstico de la pérdida total o parcial de visión mediante la detección de imágenes glaucomatosas
- Visualice el diseño industrial, el diseño de interiores, prendas de vestir, zapatos, bolsos, etc.
- reconstruir los rasgos faciales forenses de una persona enferma
- cree modelos 3D de un artículo a partir de una imagen, producir nuevos objetos como una nube de puntos 3D, modelar patrones de movimiento en un vídeo
- Mostrar el aspecto de una persona con el cambio de edad
- Aumento de datos, como mejorar el clasificador DNN
- Repintar una característica que falta en un mapa, mejorar vistas de calles, transferir estilos cartográficos, etc.
- Producir imágenes, sustituir un sistema de búsqueda de imágenes, etc.
- Generar entradas de control para un sistema dinámico no lineal utilizando una variación GAN
- Analizar los efectos del cambio climático en una casa
- Crear el rostro de una persona tomando su voz como entrada
- Crear nuevas moléculas para varias dianas proteínicas en el cáncer, la fibrosis y la inflamación
- Animar gifs a partir de una imagen normal
Existen muchas más aplicaciones de las GAN en diversos ámbitos, y su uso está en expansión. Sin embargo, también hay múltiples casos de su uso indebido. Se han utilizado imágenes humanas basadas en GAN para casos de uso siniestros, como la producción de vídeos e imágenes falsas.
Las GAN también pueden utilizarse para crear fotos y perfiles realistas de personas en las redes sociales que nunca han existido en la Tierra. Otros usos indebidos preocupantes de las GNA son la creación de pornografía falsa sin el consentimiento de las personas que aparecen, la distribución de vídeos falsos de candidatos políticos, etc.
Aunque las GNA pueden ser una bendición en muchos campos, su uso indebido también puede ser desastroso. De ahí que deban aplicarse unas directrices adecuadas para su uso.
Conclusión
Las GAN son un ejemplo notable de la tecnología moderna. Proporcionan una forma única y mejor de generar datos y de ayudar en funciones como el diagnóstico visual, la síntesis de imágenes, la investigación, el aumento de datos, las artes y las ciencias, y muchas más.
Puede que también le interese Plataformas de aprendizaje automático de bajo código y sin códigopara crear aplicaciones innovadoras.