La Inteligencia Artificial ha ido evolucionando a lo largo de los años. Los científicos han sido capaces de desarrollar programas inteligentes capaces de reconocer imágenes y de destripar las reglas de distintos juegos a base de jugar a él miles de veces. Sin embargo, el hecho de que estos programas puedan crear algo nuevo es reciente y, en ello, tienen algo que decir las redes antagónicas generadoras o redes generativas antagónicas (GANs).
Las redes generativas antagónicas son un modelo, un algoritmo que emplea un enfoque de aprendizaje no supervisado que emplea los datos para que el programa de IA pueda generar nuevos ejemplos a partir de ellos. Se trata de una especie de manera de crear una inteligencia artificial con “imaginación”.
En este artículo vamos a explicar qué son las redes antagónicas generadoras, como funcionan y para que sirven. Una serie de algoritmos y programas desarrollados por especialistas formados y cualificados para el trabajo con sistemas de IA.
En este sentido, también hablaremos de las ventajas que puede tener un curso de Programador Python con especialización en Inteligencia Artificial, ya que es el código por antonomasia para el trabajo en aprendizaje automático e inteligencia artificial.
¿Qué son las redes antagónicas generadoras?
Las redes antagónicas generadoras son una forma inteligente de entrenar un modelo de aprendizaje no supervisado. Se trata de un modelo generativo que se basa en el Deep Learning y que, como decíamos, se emplea para crear programas de IA que sean capaces de generar algo a partir de un conjunto de datos determinado.
Uno de los problemas en el desarrollo de la inteligencia artificial es que estas son incapaces de crear cosas nuevas por si mismas, no tienen, por así decirlo, imaginación. Esto empezó a cambiar en 2014, cuando Ian Goodfellow describió la arquitectura GAN en un artículo títulado “Generative Adversarial Networks.”
Actualmente Goodfellow es uno de los investigadores de IA más importantes y mejor pagados del mundo.
El trabajo de Goodfellow y sus colegas de la Universidad de Montreal se basaba en trabajos publicados en la década de los 90 sobre previsibilidad, minimización y curiosidad artificial, así como en las teorías sobre aprendizaje de Alan Turing, uno de los padres de la IA y la computación.
Posteriormente, un año después en “Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks“, Alec Radford y otros autores volvían sobre el tema y se empezaban a asentar las bases de las redes antagónicas generadoras.
¿Cómo funcionan las redes generativas antagónicas?
Las redes generativas antagónicas funcionan a partir de una idea muy sencilla pero ingeniosa. Así, lo que se hace en este modelo de aprendizaje para inteligencia artificial es enfrentar a dos redes neuronales entre ellas. Estas dos redes compiten entre ellas para producir los resultados deseados.
Por una parte, tenemos la red generativa que es la que se encarga de crear nuevos resultados, la que produce o “imagina”. Por otro lado, tenemos a la red discriminadora, que es la que va identificando si lo generado por la primera se adapta a los resultados esperados.
De esta manera, una de las redes o modelos empieza a crear aquello que se quiera conseguir, ya sean textos, imágenes o sonidos. Sin embargo, como decíamos, las IA no son buenas en la creación de nuevos materiales. Por eso, para obtener lo que se desea, entra en juego la segunda red neuronal, que básicamente se dedica a identificar si lo creado se ajusta lo esperado, descartando todo aquello que no vale hasta dar con el resultado esperado.
Esto se produce mediante una especie de juego, las dos redes van compitiendo, cuando una gana la otra pierde. Así, hasta que se consigue el objetivo deseado y la red generativa crea lo que se espera de ella.
Por ejemplo, se puede intentar conseguir que se generen fotos de gatos y, al principio, la red generativa dará imágenes aleatorias, incluso ruido estático, hasta que empiece a intervenir la red discriminatoria, y, entonces, la generativa empiece a acercarse poco a poco al resultado deseado: fotos de gatos.
Mediante el entrenamiento, la red generativa va creando imágenes que pueden engañar a la red discriminatoria, por ejemplo, usando bien los colores, pero, en un momento dado, la discriminatoria empezará a distinguir las formas y entonces la que perderá será la generativa hasta que aprenda a crearlas. “Es un proceso donde cada una de las redes va mejorando y aprende de su oponente" (Goodfellow)
Redes generativas antagónicas: aplicaciones, ventajas y desventajas
Seguro que has escuchado hablar de los generadores de caras humanas que son falsas. Esta es una de las aplicaciones que han tenido las redes antagónicas generadoras en los últimos años. Hasta el punto de poder crear imágenes hiperrealistas de rostros humanos que no pertenecen a ninguna persona que exista en la realidad.
Esto ha llevado a la creación de multitud de páginas web que generan imágenes de todo tipo gracias a las redes antagónicas generadoras. Desde habitaciones y personajes de anime, hasta animales. Pero esto no se queda solo ahí, ya que este tipo de modelos de aprendizaje también son responsables de los vídeos deepfakes.
“Una de las razones por las cuales quise dedicarme a las GANs es que estos modelos tienen el potencial de generar objetos que podemos usar en el mundo real” (Ian Goodfellow)
Sin embargo, la idea es que las redes antagónicas generadoras tengan mayores aplicaciones en el futuro. Al menos así lo ha expresado en varias ocasiones Goodfellow. De esta manera la esperanza es que este tipo de modelos se implementen en distintas industrias. Algunas de ellas podrían ser la automoción, farmacéutica o electrónica, entre otras.
¡Aprende a programar para IA!
¿Te interesa sumergirte en el campo de la Inteligencia Artificial? Una buena manera de conseguirlo es formarte en programación para este tipo de sistemas. Como hemos dicho al principio, una de las claves para conseguirlo es dominar Python. Un lenguaje de programación muy usado para la creación de algoritmos de IA y machine learning.
En Tokio somos especialistas en formación para programación y nuevas tecnologías y contamos con un curso de Programador Python con especialización en Inteligencia Artificial. Con esta formación aprenderás todo lo necesario sobre redes neuronales artificiales y distintos modelos de aprendizaje para IA, como las redes antagónicas generadoras.
¿Quieres saber más sobre nuestra formación y sobre nosotros? ¡No te cortes! Ponte en contacto, rellena el formulario y ¡resuelve todas tus dudas! ¡Te esperamos, conviértete en tokier!