En los últimos años, la inteligencia artificial (IA) está viviendo una época dorada en los más diversos ámbitos. Desde la imagen médica, como se ha comentado en cienciacarbonica anteriormente, hasta los automóviles autónomos o la ciberseguridad. Sin embargo, no todas las aplicaciones de la IA son tan “serias” ni tan aburridas como pueden parecer (a primera vista). Muchas de ellas las tenemos delante de los ojos y ni siquiera las vemos. Y muchas otras podemos verlas y todavía nos sorprendemos. En esta entrada he querido dar visibilidad a una técnica que ha comenzado a utilizarse comúnmente en películas e, incluso, alguna aplicación móvil. Son las llamadas Redes Adversarias Generativas o Generative Adversarial Netwoks (GAN) en inglés.
Para que nos hagamos una idea, voy a empezar por algo básico. No voy a explicar qué es una GAN, sino que voy a comenzar a explicar qué hace (o qué vemos que hace) una GAN. ¿Alguien ha visto la última película de Scorsese? Sí, esa que está en Netflix, “El Irlandes”. Robert De Niro, Al Paccino… Joe Pesci. Sí, ya nos va sonando. O bueno, nos ha sonado durante mucho tiempo. Meses incluso. Porque Scorsese ha “rejuvenecido” a los actores digitalmente y, ¡oye!, le ha quedado bastante bien, la verdad sea dicha. Se puede ver a un Robert De Niro que se parece mucho al de «Heat«. O a Al Paccino casi a la edad que tenía cuando interpretaba a Michel Corleone en «El Padrino«. O a Joe Pesci repartiendo como lo hacía en «Uno de los nuestros» o «Casino». Y todo esto se ha conseguido aplicando IA a las imágenes (fotogramas) de la película.
¿Pero esto es algo novedoso en el cine? Pues no, la verdad es que no. Y no me estoy refiriendo a que Hulk se parezca a Mark Ruffalo, es decir, el actor que interpreta a su alter-ego, el Dr. Bruce Banner, sino a un experimento que se hizo hace algunos años en el que aparecía la actriz Kristen Stewart (Sí, sí, la de Crepúsculo) como autora[1]. En este trabajo se utiliza la IA para modificar la textura de los fotogramas, consiguiendo un efecto de cuadros impresionistas en cada imagen.
Bueno, me parece que, a estas alturas, ya podemos imaginar qué hace una GAN, salvando un poco las distancias. Una red generativa o GAN es un modelo de redes neuronales, en particular redes convolucionales, que se utiliza para generar imágenes nuevas, a partir de otros datos, y que parezcan imágenes reales. En principio, una red GAN no es una sola red neuronal. La red GAN está compuesta por dos redes neuronales adversarias de suma cero, es decir, lo que una red gana, la otra lo pierde. De las dos redes neuronales, una actúa como Generador, cuya tarea es crear imágenes que parezcan reales, y la otra actúa como Discriminador, cuya labor es decidir si la imagen es real o no. La tarea del Discriminador, en principio, parece sencilla.
Para entrenar esta red sólo necesitamos proporcionar un conjunto de imágenes de un objeto real y otras obtenidas del Generador, que pretende sintetizar imágenes similares a partir de una entrada aleatorio. Sin embargo, a medida que la red generadora mejora, la tarea de la red Discriminador se vuelve más compleja. De este modo, ambas redes han de ir mejorando simultáneamente. El Discriminador ayuda al generador a crear imágenes cada vez más realistas y, a su vez, la tarea del Discriminador se vuelve cada vez más complicada para diferenciar entre las imágenes reales y sintéticas.
Vale. Vamos a ver. Hemos dicho que se generan imágenes nuevas a partir de números aleatorios de entrada. Pero, ¿y el rejuvenecimiento del rosto? O el envejecimiento, ¿cómo se llega a hacer? Bueno, existe un conjunto de variantes de las redes generativas, como por ejemplo las redes condicionadas. En este caso se establece una condición, como por ejemplo la edad de una persona, tanto en el Discriminador con el Generador[2]. En este caso, la red GAN se alimenta con las imágenes de una persona a una determinada edad y el Generador va proponiendo las modificaciones adecuadas en el rostro para envejecer o rejuvenecer el rostro, de un modo plausible, según la condición proporcionada.
Dentro del Deep Learning, los modelos generativos son muy novedosos, sin embargo, las aplicaciones a las que se está dedicando son asombrosas. No hace falta ir al cine o trabajar en Hollywood para ver cómo actúan estas redes. Directamente desde nuestro teléfono podemos descargar alguna app que utiliza IA para generar transformaciones realistas en las imágenes de rostros, permitiendo no sólo parecer mayor o más joven sino también ver cómo seríamos si fuéramos del otro sexo o cómo serían nuestros hijos con la persona que nos gusta. Sin embargo, obtener una aplicación de calidad puede ser un poco más caro que descargar una app de Google Play Store. Pero por ahora, podemos disfrutar de los actores más clásicos, con el rostro de su juventud y la experiencia de la edad.
[1] Joshi et al., Bringing Impressionism to Life with Neural Style Transfer in Come Swim, 2017 (https://arxiv.org/pdf/1701.04928v1.pdf)
[2] Antipov et al., Face Aging With Conditional Generative Adversarial Networks, 2017 (https://arxiv.org/pdf/1702.01983.pdf)