¿Qué es una Red Generativa Adversarial? Una guía sencilla

¿Qué es una Red Generativa Adversarial? Una guía sencilla
La inteligencia artificial (IA) está experimentando una especie de explosión cámbrica. Lo que parecía ciencia ficción hace poco tiempo se ha convertido en realidad en los últimos años. Y el interés no hace más que crecer gracias al lanzamiento de herramientas como ChatGPT. Pero al igual que la explosión cámbrica, lo que está surgiendo del salto evolutivo de la IA no es una sola cosa. En realidad, hay muchos frentes en los que estamos haciendo avanzar el software de IA al mismo tiempo.
En este post, vamos a hablar de uno de esos tipos de IA: las redes generativas adversariales, un eficaz modelo de IA utilizado para diversos tipos de tareas.
Discriminativo vs. Generativo
Al igual que clasificamos los fósiles animales en dominios, reinos y filos, también clasificamos las redes de IA. En el nivel más alto, clasificamos las redes de IA en "discriminativas" y "generativas". Una red neuronal generativa es una IA que crea algo nuevo. Esto difiere de una red discriminativa, que clasifica algo que ya existe en categorías particulares. Algo parecido a lo que estamos haciendo ahora, clasificando las redes generativas adversariales (GAN) en categorías apropiadas.
Así, si nos encontráramos en una situación en la que quisiéramos utilizar etiquetas textuales para crear una nueva imagen visual, como con Midjourney, utilizaríamos una red generativa. Sin embargo, si tuviéramos un montón de datos que tuviéramos que clasificar y etiquetar, utilizaríamos un modelo discriminativo.
¿Dónde queda la Red Generativa Adversarial?
El nombre implica que una GAN es generativa. Pero la segunda palabra también es importante. Una GAN es una aplicación inteligente de modelos tanto discriminativos como generativos. Un modelo GAN se entrenará con un grupo inicial de datos de entrenamiento clasificados. A continuación, el modelo generativo intentará generar nuevas instancias que crea que encajan en el modelo. En una segunda ronda, el modelo discriminativo recibirá tanto el contenido generado como el contenido del conjunto de entrenamiento. Intentará clasificar el contenido como generado o como parte del conjunto de entrenamiento.
Esta es la parte adversarial del acrónimo GAN. La parte generativa del modelo sigue intentando crear contenidos cada vez mejor generados hasta que consigue "engañar" de forma fiable al modelo discriminativo. El objetivo fundamental de un GAN es entrenar un modelo generativo que genere contenidos de alta calidad, pero para ello utiliza modelos tanto generativos como discriminativos.
Supervisado frente a no supervisado
Tras nuestra clasificación de dominio de discriminativo frente a generativo, nuestro siguiente cubo de clasificación es si un modelo es "supervisado" o "no supervisado". Esta es una clasificación que puede ser un poco más turbia. Aunque la clasificación supervisado/sin supervisión es instructiva, muchos tipos de modelos de IA utilizarán un enfoque híbrido. Un modelo supervisado, como su nombre indica, generalmente implica la supervisión humana durante la fase de entrenamiento. La fase de entrenamiento de un modelo supervisado implica múltiples rondas de entradas iniciales y salidas deseadas.
Los modelos no supervisados, como su nombre indica, funcionan con menos o ninguna intervención humana. El objetivo es que el modelo tome un conjunto de entrenamiento original y se someta a múltiples rondas de entrenamiento cada vez mejor con el fin de generar mejores contenidos después de cada ronda.
¿Qué tipo es una Red Adversarial Generativa?
Una GAN es un modelo de IA no supervisado. El estilo de ida y vuelta de los ciclos de entrenamiento adversarial está diseñado para mejorar continuamente el contenido generado. Para que un desarrollador trabaje con una GAN, tendrá que proporcionar clasificaciones de alta calidad de su conjunto inicial de datos de entrenamiento, y proporcionar la potencia de cálculo para ejecutar múltiples iteraciones. Pero una vez que haya proporcionado los recursos necesarios, podrá ejecutar el GAN con una interacción humana mínima.
Red Generativa Adversarial vs. Red Neuronal Convolucional
Una pregunta común para los nuevos desarrolladores que trabajan con una GAN es cómo se relacionan con una red neuronal convolucional (CNN). Una CNN es un tipo de modelo discriminativo que se utiliza para clasificar datos basándose en contenido etiquetado existente. Muchas GAN utilizan una CNN como modelo discriminatorio que cuestiona el contenido generado en el primer inicio del ciclo de entrenamiento. Las CNN se utilizan muy a menudo para clasificar imágenes para su uso en arquitecturas de reconocimiento de imágenes por ordenador.
Las CNN también se utilizan a veces como paso generativo en la arquitectura GAN. Utilizar una CNN para generar contenido como salida del paso generativo suele requerir añadir lógica adicional como un autoencoder variacional en lugar de utilizar una CNN tradicional. Cuando se utiliza esta herramienta en combinación con una CNN tradicional, se puede utilizar una CNN tanto para los pasos generacionales como adversariales del proceso de entrenamiento GAN.
Preguntas frecuentes
Ahora que tenemos una idea bastante clara de lo que es un GAN y lo que hace, vamos a abordar un puñado de preguntas frecuentes acerca de los GAN y por qué usted podría elegir uno para su proyecto.
¿Cuáles son algunos de los usos más comunes de los GAN?
Uno de los principales beneficios de un GAN es que puede generar ejemplos realistas de una amplia variedad de contenidos. Con el tipo adecuado de datos de entrenamiento, puede utilizar instrucciones basadas en texto para generar cualquiera de los siguientes tipos de contenido:
- Imágenes
- Contenido de audio (como música)
- Conversión de imágenes en blanco y negro a color
- Conversión de bocetos dibujados a mano a representaciones fotorrealistas
- Predicción de fotogramas futuros de vídeo basándose en fotogramas anteriores
- Crear deepfakes
¿Por qué elegir una red generativa adversarial?
Hemos hablado mucho sobre cómo se clasifican las GAN, cómo funcionan y qué pueden hacer. Pero no hemos respondido a una pregunta sencilla: ¿por qué elegiría utilizar una GAN? Una de las razones por las que se puede utilizar un GAN es cuando se trata de problemas en los que no se dispone de un gran conjunto de datos para el entrenamiento. La naturaleza de un GAN es que se puede trabajar con una cantidad limitada de datos de entrenamiento, luego se puede dejar que el GAN genere más datos que se retroalimentan en la rutina de entrenamiento. Muchos sistemas de aprendizaje automático requieren que se les entrene con una cantidad considerable de datos preetiquetados. Cuando se utiliza un GAN, no se tiene ese requisito.
Además, los GAN son especialmente eficaces en el tratamiento y la generación de imágenes. Tanto si se trata de crear nuevas imágenes a partir de mensajes de texto como de actualizar una imagen de entrada con contenido generado, los GAN son interesantes porque proporcionan resultados visualmente impresionantes.
¿Por qué evitar el uso de una Red Adversarial Generativa?
Si está pensando en adoptar una GAN, hay algunos inconvenientes que debe tener en cuenta. Para empezar, las GAN no son una buena opción si está intentando entrenar su modelo a bajo coste. Los GAN son especialmente caros de entrenar, debido al ciclo de entrenamiento de varios pasos y a la necesidad de someterse a varias rondas de entrenamiento. Por lo tanto, si intenta ceñirse a un presupuesto estricto, adoptar un GAN puede no ser una buena opción.
Además, los GAN a veces sufren lo que se conoce como colapso de modo, en el que el contenido que la salida es un subconjunto limitado de los datos de entrenamiento, y no la gama de variedad que usted espera.
Los GANs Proporcionan Gran Utilidad Cuando Encajan
Para volver a nuestra metáfora evolutiva, un GAN no es un cangrejo o una tortuga. No es un animal que seguirá desempeñando el mismo papel dentro de unos años. Las GAN están evolucionando. Los investigadores siguen descubriendo qué pueden hacer las GAN y cuál es la mejor manera de diseñarlas y entrenarlas. Si está pensando en adoptar el aprendizaje automático para sus flujos de trabajo, investigar las GAN tiene mucho sentido, pero puede que no sean la herramienta adecuada para su trabajo. Si no lo parecen, entonces deberías evitar intentar encajarlos en un trabajo en el que no encajan. Pero si estás haciendo un trabajo que encaja con un GAN, especialmente la manipulación o creación de imágenes, entonces adoptar y entrenar un GAN probablemente proporcionará grandes beneficios para tus flujos de trabajo.
Echa un vistazo a Zilliz, un algoritmo de base de datos vectorial rentable.
- Discriminativo vs. Generativo
- Supervisado frente a no supervisado
- Red Generativa Adversarial vs. Red Neuronal Convolucional
- Preguntas frecuentes
- Los GANs Proporcionan Gran Utilidad Cuando Encajan
Contenido
Comienza Gratis, Escala Fácilmente
Prueba la base de datos vectorial completamente gestionada construida para tus aplicaciones GenAI.
Prueba Zilliz Cloud Gratis