Redes adversarias generativas (GAN): una introducción

Las redes antagónicas generativas (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 antiguas y el aumento de la voz hasta la provisión de diversas aplicaciones en la industria médica y de otro tipo.

Esta tecnología avanzada puede ayudarlo a dar forma a sus productos y servicios. También se puede utilizar para mejorar la calidad de la imagen para preservar los recuerdos.

Si bien las GAN son una bendición para muchos, a algunos les resulta preocupante.

Pero, ¿qué es esta tecnología exactamente?

En este artículo, analizaré qué es una GAN, cómo funciona y sus aplicaciones.

Entonces, ¡vamos a sumergirnos!

¿Qué es una red adversaria generativa?

Una red adversa generativa (GAN) es un marco de aprendizaje automático que consta de dos redes neuronales que compiten para producir predicciones más precisas, como imágenes, música única, dibujos, etc.

GANs fue diseñado en 2014 por un científico e ingeniero informático, Ian Goodfellow, y algunos de sus colegas. Son redes neuronales profundas únicas capaces de generar nuevos datos similares a los que están siendo entrenados. Compiten en un juego de suma cero en el que un agente pierde el juego y el otro lo gana.

Originalmente, las GAN se propusieron como un modelo generativo para el aprendizaje automático, principalmente el aprendizaje no supervisado. Pero las GAN también son útiles para el aprendizaje totalmente supervisado, el aprendizaje semisupervisado y el aprendizaje por refuerzo.

Los dos bloques en competencia en una GAN son:

El generador: es una red neuronal convolucional que produce resultados similares a los datos reales de forma artificial.

El discriminador: es una red neuronal desconvolucional que puede identificar aquellas salidas que se crean artificialmente.

Conceptos clave

Para comprender mejor el concepto de GAN, comprendamos rápidamente algunos conceptos relacionados importantes.

Aprendizaje automático (ML)

El aprendizaje automático es una parte de la inteligencia artificial (IA) que implica el aprendizaje y la creación de modelos que aprovechan 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, incluida la visión por computadora, 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, los sistemas de recomendación y más.

modelo discriminatorio

En el aprendizaje profundo y el aprendizaje automático, el modelo de discriminación funciona como un clasificador para distinguir entre un conjunto de niveles o dos clases.

Por ejemplo, diferenciar entre diferentes 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 imitadas. Estos modelos son de dos tipos:

Autocodificadores variacionales: utilizan codificadores y decodificadores que son redes neuronales separadas. Esto funciona porque una imagen realista dada pasa a través de un codificador para representar estas imágenes como vectores en un espacio latente.

A continuación, se utiliza un decodificador para tomar estas interpretaciones y producir algunas copias realistas de estas imágenes. Al principio, la calidad de la imagen puede ser baja, pero mejorará una vez que el decodificador sea completamente funcional y pueda ignorar el codificador.

Redes antagónicas generativas (GAN): como se mencionó anteriormente, una GAN es una red neuronal profunda capaz de generar datos nuevos y similares a partir de la entrada de datos que se le proporciona. Se incluye en el 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 entrenamiento supervisado, una máquina se entrena utilizando datos bien etiquetados. Esto significa que algunos datos ya estarán etiquetados con la respuesta correcta. Aquí, la máquina recibe 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 sin supervisión

El aprendizaje no supervisado implica 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 es categorizar datos no clasificados según los patrones, las similitudes y las diferencias sin entrenamiento previo de datos.

Por lo tanto, las GAN están asociadas con la realización de aprendizaje no supervisado en ML. Tiene dos modelos que pueden descubrir y aprender automáticamente los patrones de los datos de entrada. Estos dos modelos son generador y discriminador.

Vamos a entenderlos un poco más.

Partes de una GAN

El término «adversario» se incluye en GAN porque tiene dos partes: generador y denominador en competencia. Esto se hace para capturar, analizar y replicar variaciones de datos en un conjunto de datos. Comprendamos mejor estas dos partes de una GAN.

Generador

Un generador es una red neuronal capaz de aprender y generar puntos de datos falsos, como imágenes y audio que parecen realistas. Se utiliza en la formación y mejora con el aprendizaje continuo.

Los datos generados por el generador se usan como ejemplo negativo para la otra parte, el denominador que veremos a continuación. El generador toma un vector aleatorio de longitud fija como entrada para producir una salida de muestra. Su objetivo es presentar la salida ante el discriminador para que pueda clasificar si es real o falso.

El generador está entrenado 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 penalizar al generador ya que no logra engañar al discriminador

El generador funciona como un ladrón para replicar y crear datos realistas para engañar al discriminador. Su objetivo es eludir varios controles realizados. Aunque puede fallar terriblemente en las etapas iniciales, sigue mejorando hasta que genera múltiples datos realistas y de alta calidad y puede evitar las pruebas. Una vez que se logra esta capacidad, puede utilizar solo el generador sin necesidad de un discriminador por separado.

Discriminado

Un discriminador es también una red neuronal que puede diferenciar entre una imagen falsa y real u otros tipos de datos. Como un generador, juega un papel vital durante la fase de entrenamiento.

Actúa como la policía para atrapar al ladrón (datos falsos por parte del generador). Su objetivo es detectar imágenes falsas y anomalías en una instancia de datos.

Como se discutió anteriormente, 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, ya no puede diferenciar entre una imagen real y una falsa. Entonces, está listo para usar solo el generador.

¿Cómo funciona GAN?

En una red adversarial generativa (GAN), tres cosas involucran:

  • Un modelo generativo para describir la forma en que se generan los datos.
  • Un entorno de confrontación donde se entrena un modelo.
  • Redes neuronales profundas como algoritmos de IA para entrenamiento.

Las dos redes neuronales de GAN, generador y discriminador, se emplean para jugar un juego de confrontación. 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, desea verificar si una imagen determinada es real o falsa. Puede usar entradas de datos generadas a mano para alimentar al generador. Creará imágenes nuevas y 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 atrapado.

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. Funciona negativamente en el generador sin importar cuánto intente imitar; el discriminador ayudará a distinguir los datos reales de los falsos.

El discriminador tomará datos falsos y reales para devolver una probabilidad de 0 o 1. Aquí, 1 representa autenticidad mientras que 0 representa falso.

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á a mejorar la detección. Aquí, 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 imágenes como falsas o reales.

Por otro lado, el generador es como una red convolucional inversa que toma muestras aleatorias de datos para producir imágenes. Pero, el discriminador verifica los datos con la ayuda de técnicas de reducción de muestreo, como la agrupación máxima.

Ambas redes intentan optimizar una función de pérdida u objetivo opuesta y diferente en un juego adversarial. Sus pérdidas les permiten presionarse entre sí aún más.

Tipos de GAN

Las redes antagónicas generativas son de diferentes tipos según la implementación. Estos son los principales tipos de GAN utilizados activamente:

  • GAN condicional (CGAN): es una técnica de aprendizaje profundo que involucra 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 del generador para producir los datos correspondientes. Además, se agregan etiquetas a esta entrada y se alimentan al discriminador para permitirle verificar si los datos son auténticos o falsos.
  • Vanilla GAN: es un tipo de GAN simple donde el discriminador y el generador son perceptrones más simples y de múltiples capas. Sus algoritmos son simples y optimizan 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. Estos ConvNets se aplican sin usar técnicas como max-pooling o conectar completamente las capas.
  • GAN de superresolución (SRGAN): es una implementación de GAN que utiliza una red neuronal profunda junto con una red antagónica para ayudar a producir imágenes de alta calidad. SRGAN es especialmente útil para escalar eficientemente imágenes originales de baja resolución para mejorar sus detalles y minimizar los errores.
  • Pirámide laplaciana GAN (LAPGAN): Es una representación invertible y lineal que incluye múltiples imágenes de paso de banda que se colocan a ocho espacios de distancia con residuos de baja frecuencia. LAPGAN utiliza varias redes discriminadoras y generadoras y múltiples niveles de la Pirámide Laplaciana.

LAPGAN se usa ampliamente ya que produce una calidad de imagen de primer nivel. Estas imágenes se muestrean primero en cada capa de la pirámide y luego se aumentan de escala en cada capa, donde las ideas reciben algo de ruido hasta que adquieren el tamaño original.

Aplicaciones de las GAN

Las redes antagónicas generativas se utilizan en varios campos, tales como:

Ciencias

Los 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 se pueden entrenar para estimar cuellos de botella al realizar simulaciones de física de partículas que consumen muchos recursos.

Las GAN pueden acelerar la simulación y mejorar la fidelidad de la simulación. 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 mejorar los datos bidimensionales de baja resolución utilizados en los videojuegos más antiguos. Le ayudará a recrear dichos datos en resoluciones de 4k o incluso superiores a través del entrenamiento de imágenes. A continuación, puede reducir la resolución de los datos o las imágenes para adaptarlos a la resolución real del videojuego.

Proporcione la capacitación adecuada 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, al tiempo que conservan los detalles de la imagen real, como los colores.

Los videojuegos que han aprovechado las GAN incluyen Resident Evil Remake, Final Fantasy VIII y IX, y más.

Arte y Moda

Puede usar GAN para generar arte, como crear imágenes de personas 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 que generan sombras virtuales y bocetos.

Publicidad

El uso de GAN para crear y producir sus anuncios ahorrará tiempo y recursos. Como se vio anteriormente, si desea vender sus joyas, puede crear un modelo imaginario que parezca un ser humano real con la ayuda de GAN.

De esta manera, puede hacer que la modelo use sus joyas y mostrarlas a sus clientes. Le ahorrará contratar un modelo y pagar por él. Incluso puede eliminar los gastos adicionales, como pagar el transporte, alquilar un estudio, contratar fotógrafos, maquilladores, etc.

Esto será de gran ayuda si usted es un negocio en crecimiento y no puede permitirse el lujo de contratar a un modelo o albergar una infraestructura para sesiones de anuncios.

Síntesis de audio

Puede crear archivos de audio a partir de un conjunto de clips de audio con la ayuda de GAN. Esto también se conoce como audio generativo. No confunda esto con Amazon Alexa, Apple Siri u otras voces de IA donde los fragmentos de voz se unen bien y se producen a pedido.

En cambio, el audio generativo utiliza redes neuronales para estudiar las propiedades estadísticas de una fuente de audio. Luego, reproduce directamente esas propiedades en un contexto dado. Aquí, el modelado representa la forma en que cambia el habla después de cada milisegundo.

Transferencia de aprendizaje

Los estudios avanzados de aprendizaje por transferencia utilizan GAN para alinear los espacios de funciones más recientes, como el aprendizaje por refuerzo profundo. Para esto, las incrustaciones de la fuente y la tarea buscada se alimentan al discriminador para determinar el contexto. A continuación, el resultado se propaga de nuevo a través del codificador. De esta manera, el modelo sigue aprendiendo.

Otras aplicaciones de las GAN incluyen:

  • Diagnóstico de pérdida de visión total o parcial mediante la detección de imágenes glaucomatosas
  • Visualice diseño industrial, diseño de interiores, prendas de vestir, zapatos, bolsos y más
  • reconstruir los rasgos faciales forenses de una persona enferma
  • crear modelos 3D de un elemento a partir de una imagen, producir nuevos objetos como una nube de puntos 3D, modelar patrones de movimiento en un video
  • Mostrar la apariencia de una persona con edad cambiante
  • Aumento de datos, como mejorar el clasificador DNN
  • Vuelva a pintar una característica faltante en un mapa, mejore las vistas de calles, transfiera estilos de mapeo y más
  • Producir imágenes, sustituir un sistema de búsqueda de imágenes, etc.
  • Genere entradas de control a un sistema dinámico no lineal mediante el uso de una variación de GAN
  • Analizar los efectos del cambio climático en una casa
  • Cree la cara de una persona tomando su voz como entrada
  • Crear nuevas moléculas para varios objetivos proteicos en el cáncer, la fibrosis y la inflamación
  • Animar gifs a partir de una imagen normal

Hay muchas más aplicaciones de GAN en varias áreas y su uso se está expandiendo. Sin embargo, también hay múltiples instancias de su mal uso. Las imágenes humanas basadas en GAN se han utilizado para casos de uso siniestros, como la producción de videos e imágenes falsos.

Los GAN también se pueden usar para crear fotos y perfiles realistas de personas en las redes sociales que nunca han existido en la tierra. Otros usos indebidos preocupantes de los GNA son la creación de pornografía falsa sin el consentimiento de las personas destacadas, la distribución de videos falsificados de candidatos políticos, etc.

Aunque los GNA pueden ser de gran ayuda en muchos campos, su mal uso también puede ser desastroso. Por lo tanto, se deben hacer cumplir las pautas adecuadas para su uso.

Conclusión

Las GAN son un ejemplo notable de tecnología moderna. Proporciona una forma única y mejor de generar datos y 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.

También le pueden interesar las plataformas de aprendizaje automático de código bajo y sin código para crear aplicaciones innovadoras.