Los in­creí­bles avances en in­te­li­ge­n­cia ar­ti­fi­cial (IA) están creando máquinas cada vez más listas. Dado que las máquinas pueden mejorar de forma autónoma a partir de los datos recibidos, están creando nuevas formas de ayudarnos a llevar a cabo tareas cada vez más complejas.

Una solución muy pro­me­te­do­ra que ya ofrece in­creí­bles re­su­l­ta­dos en algunos ámbitos son las llamadas redes ge­ne­ra­ti­vas an­ta­gó­ni­cas o Ge­ne­ra­ti­ve Ad­ve­r­sa­rial Networks (GAN), que se utilizan pri­n­ci­pa­l­me­n­te para generar imágenes, pero también permiten la creación au­to­má­ti­ca de textos. ¿Qué son realmente las Ge­ne­ra­ti­ve Ad­ve­r­sa­rial Networks? ¿Cómo funcionan? Y ¿cómo podemos usarlas de manera pro­ve­cho­sa?

¿Qué es una Ge­ne­ra­ti­ve Ad­ve­r­sa­rial Network?

Antes de entrar en lo que las Ge­ne­ra­ti­ve Ad­ve­r­sa­rial Networks pueden hacer por nosotros, veamos lo que son en realidad.

Se trata de un sistema de apre­n­di­za­je au­to­má­ti­co (machine learning) de­sa­rro­lla­do en 2014 por un equipo dirigido por Ian Goo­d­fe­llow. El propósito de una Ge­ne­ra­ti­ve Ad­ve­r­sa­rial Network es crear diseños propios basados en un conjunto de datos reales. El resultado es tan en­ga­ño­sa­me­n­te real que es imposible saber que la imagen no proviene de una mano humana. Para conseguir estos re­su­l­ta­dos, se utilizan dos redes neu­ro­na­les que compiten entre ellas.

La tarea de la red ge­ne­ra­do­ra es crear una fa­l­si­fi­ca­ción. La red se alimenta de datos, por ejemplo, fotos de personas al azar y, a partir de la in­fo­r­ma­ción recibida, crea su propia foto. Para esto, la red tiene que aprender primero cuáles son las ca­ra­c­te­rí­s­ti­cas comunes de todas las fotos mostradas. De este modo, la nueva imagen no es una imitación de los datos ori­gi­na­les, sino una obra co­m­ple­ta­me­n­te nueva, pero similar. En nuestro ejemplo, sería la foto de una persona (que no existe).

Los datos básicos y la in­fo­r­ma­ción que ha generado se entregan juntos a la segunda red. La tarea de la red di­s­cri­mi­na­do­ra es decidir si los datos que recibe son ve­r­da­de­ros o falsos. La imagen no solo se declara falsa si se desvía demasiado de los datos básicos, sino también si es una imitación demasiado perfecta. Si la red ge­ne­ra­do­ra se limita a extraer un promedio de los datos y a crear una nueva obra a partir de este, el resultado tiene un aspecto ar­ti­fi­cial. De este modo, la red di­s­cri­mi­na­do­ra también filtra los datos que no parecen naturales.

Ambas redes compiten entre ellas. Cuando la red di­s­cri­mi­na­do­ra detecta los datos fa­l­si­fi­ca­dos, los devuelve. En este caso, la red ge­ne­ra­do­ra no es lo su­fi­cie­n­te­me­n­te buena todavía y, por lo tanto, tiene que seguir apre­n­die­n­do. Sin embargo, a su vez, la red di­s­cri­mi­na­do­ra aprende también. Como ambas redes neu­ro­na­les se entrenan mu­tua­me­n­te, están re­la­cio­na­das con los sistemas de deep learning. La red ge­ne­ra­do­ra intenta crear conjuntos de datos que tengan una apa­rie­n­cia tan auténtica que engañen a la di­s­cri­mi­na­do­ra. Esta, por su parte, trata de analizar y co­m­pre­n­der los ejemplos reales con tanta precisión que los datos falsos no tengan ninguna po­si­bi­li­dad de ser ide­n­ti­fi­ca­dos como reales.

¿Cómo funcionan las Ge­ne­ra­ti­ve Ad­ve­r­sa­rial Networks?

Como cualquier in­te­li­ge­n­cia ar­ti­fi­cial, las redes ge­ne­ra­ti­vas an­ta­gó­ni­cas deben ser en­tre­na­das para cumplir co­rre­c­ta­me­n­te con su función. Esta modalidad de apre­n­di­za­je au­to­má­ti­co o machine learning tiene lugar en seis pasos:

  1. De­fi­ni­ción del problema: en un primer paso, se debe definir un problema que el sistema debe resolver. Con este propósito, los de­sa­rro­lla­do­res deben recopilar datos reales que el sistema pueda utilizar.
  2. Ar­qui­te­c­tu­ra: di­fe­re­n­tes problemas requieren di­fe­re­n­tes tipos de redes. Por lo tanto, se debe buscar la Ge­ne­ra­ti­ve Ad­ve­r­sa­rial Network con la ar­qui­te­c­tu­ra adecuada para la apli­ca­ción co­rre­s­po­n­die­n­te.
  3. Primer en­tre­na­mie­n­to de la red di­s­cri­mi­na­do­ra: en este paso comienza el en­tre­na­mie­n­to real. La red ge­ne­ra­do­ra se detiene y la red di­s­cri­mi­na­do­ra analiza solo datos ve­r­da­de­ros, para aprender a co­m­pre­n­de­r­los.
  4. Primer en­tre­na­mie­n­to de la red ge­ne­ra­do­ra: la red di­s­cri­mi­na­do­ra se detiene y, a su vez, la red ge­ne­ra­do­ra comienza a generar datos falsos.
  5. Segundo en­tre­na­mie­n­to de la red di­s­cri­mi­na­do­ra: en este paso, la red di­s­cri­mi­na­do­ra se alimenta con los nuevos datos fa­l­si­fi­ca­dos de la ge­ne­ra­do­ra y debe decidir qué datos considera ve­r­da­de­ros y cuáles falsos.
  6. Segundo en­tre­na­mie­n­to de la red ge­ne­ra­do­ra: la red ge­ne­ra­do­ra mejora aún más con el resultado del segundo en­tre­na­mie­n­to de la red di­s­cri­mi­na­do­ra. Aquí la red ge­ne­ra­do­ra aprende sobre los puntos débiles de la di­s­cri­mi­na­do­ra e intenta apro­ve­char­los, generando registros de datos falsos de apa­rie­n­cia aún más real.

Gracias a esta in­ter­ac­ción, ambas redes pe­r­ma­ne­cen en constante evolución y así se vuelven mejores y más efi­cie­n­tes. La red ge­ne­ra­do­ra aprende a de­sa­rro­llar conjuntos de datos cada vez más realistas. La red di­s­cri­mi­na­do­ra aprende a ide­n­ti­fi­car como falsos incluso los conjuntos de datos de apa­rie­n­cia más real.

¿Qué retos tiene que superar el sistema?

Como ocurre con casi todas las te­c­no­lo­gías, los de­sa­rro­lla­do­res de las Ge­ne­ra­ti­ve Ad­ve­r­sa­rial Networks se enfrentan a una serie de retos que se deben abordar para ga­ra­n­ti­zar que el en­tre­na­mie­n­to se de­sa­rro­lle sin problemas.

Una co­m­pe­te­n­cia equi­li­bra­da

Como se ha explicado, las Ge­ne­ra­ti­ve Ad­ve­r­sa­rial Networks se basan en la co­m­pe­ti­ción entre dos redes neu­ro­na­les. Sin embargo, esto solo puede funcionar si ambas redes son igua­l­me­n­te sólidas y eficaces. Si una de las dos redes es más fuerte que la otra, el sistema no funciona. Si, por ejemplo, la red ge­ne­ra­do­ra es superior, la di­s­cri­mi­na­do­ra no podrá di­s­ti­n­guir los datos fa­l­si­fi­ca­dos. En el caso contrario, la red di­s­cri­mi­na­do­ra marcará como falsos todos los datos de la ge­ne­ra­do­ra. En ambos casos, ninguna de las dos redes puede aprender.

Co­m­pre­n­der co­rre­c­ta­me­n­te los objetos

Las Ge­ne­ra­ti­ve Ad­ve­r­sa­rial Networks suelen tener problemas para reconocer y co­m­pre­n­der co­rre­c­ta­me­n­te los objetos. Esto es es­pe­cia­l­me­n­te marcado en el caso de las imágenes. Por ejemplo, una foto real puede mostrar dos gatos con dos ojos cada uno. Si el generador no comprende co­m­ple­ta­me­n­te la es­tru­c­tu­ra y el po­si­cio­na­mie­n­to de los elementos de la imagen, podría generar un gato con cuatro ojos. Las pe­r­s­pe­c­ti­vas pueden ser también pro­ble­má­ti­cas para estas redes, que pueden no entender que dos imágenes re­pre­se­n­ten el mismo objeto desde di­fe­re­n­tes puntos de vista.

¿Para qué se usan las GAN?

Las Ge­ne­ra­ti­ve Ad­ve­r­sa­rial Networks re­ci­bie­ron especial atención, también fuera del ámbito de la in­fo­r­má­ti­ca, después de que el colectivo de artistas Obvious utilizara la técnica para crear una obra de arte. Este cuadro se vendió en una subasta por 432 500 dólares. Sin embargo, las Ge­ne­ra­ti­ve Ad­ve­r­sa­rial Networks pueden también hacer cosas aso­m­bro­sas más allá del arte.

Pre­di­c­ción de vídeo

Las Ge­ne­ra­ti­ve Ad­ve­r­sa­rial Networks pueden usar los fo­to­gra­mas de un vídeo para predecir cómo co­n­ti­nua­rá y así pro­lo­n­gar­lo de forma in­de­pe­n­die­n­te más allá de la grabación real. Se incluyen todos los elementos del vídeo, por ejemplo, mo­vi­mie­n­tos y acciones, pero también cambios de fondo como la lluvia o la niebla.

Ge­ne­ra­ción de imágenes basada en textos

A partir de una de­s­cri­p­ción, las Ge­ne­ra­ti­ve Ad­ve­r­sa­rial Networks pueden generar imágenes. Por ejemplo, pueden de­sa­rro­llar un sto­r­y­boa­rd in­de­pe­n­die­n­te basado en un guion.

Ge­ne­ra­ción de objetos complejos

Las GAN permiten tra­n­s­fo­r­mar incluso los bocetos más simples en objetos tri­di­me­n­sio­na­les complejos en muy poco tiempo. Por ejemplo, uti­li­za­n­do una Ge­ne­ra­ti­ve Ad­ve­r­sa­rial Network, un dibujo muy tosco de un árbol puede tra­n­s­fo­r­mar­se en un objeto de gran co­m­ple­ji­dad y lleno de detalles, como hojas que tiemblan o una copa que se balancea con el viento.

Mejora de detalles de imágenes

Las GAN pueden añadir nuevos detalles a una imagen pixelada o con baja re­so­lu­ción, uti­li­za­n­do in­fo­r­ma­ción de imágenes similares para añadir la in­fo­r­ma­ción que falta.

De­sa­rro­llo de nuevos productos

Algunas empresas están ex­pe­ri­me­n­ta­n­do con Ge­ne­ra­ti­ve Ad­ve­r­sa­rial Networks en la fase de de­sa­rro­llo de productos, uti­li­zá­n­do­las para crear diseños y gamas de productos co­m­ple­ta­me­n­te nuevos.

Ge­ne­ra­ción de texto de productos

Las Ge­ne­ra­ti­ve Ad­ve­r­sa­rial Networks tienen también capacidad de redacción de textos y ya se utilizan para generar textos de productos, que de­sem­pe­ñan un papel cada vez más im­po­r­ta­n­te en las de­ci­sio­nes de compra de los clientes. Estas redes no solo permiten crear estas de­s­cri­p­cio­nes rá­pi­da­me­n­te, sino que pueden también analizar qué textos de productos han tenido más éxito en el pasado y, a partir de ellos, generar textos nuevos.

Las Ge­ne­ra­ti­ve Ad­ve­r­sa­rial Networks ya se utilizan con éxito en todos estos ámbitos. Las empresas y los de­sa­rro­lla­do­res están tra­ba­ja­n­do co­n­s­ta­n­te­me­n­te en nuevas apli­ca­cio­nes, por lo que se espera que estas redes ge­ne­ra­ti­vas an­ta­gó­ni­cas estén muy presentes en muchas áreas de nuestra vida y nuestro trabajo a medio plazo.

Ir al menú principal