La Inteligencia Artificial no deja de sorprendernos cada vez más con su capacidad para resolver problemas que hasta hace poco estaban solo al alcance del cerebro humano. De todos estos hitos, los que más suelen llamar la atención son aquellos relacionados con el campo de la visión artificial, pues sus resultados son fácilmente interpretables y no dejan indiferente a ningún público, tenga una formación técnica o no. Este puede ser, por ejemplo, el caso de la interpretación automática de imágenes médicas (radiografías, escáneres, etc.) o la clasificación de objetos o personas dentro de una fotografía.

Pero dentro de este campo hay otro cuyos resultados llaman incluso más la atención: las Redes Generativas Antagónicas (comúnmente conocidas como GAN, por sus siglas en inglés). Estas son un tipo de redes neuronales con un funcionamiento muy particular capaz de generar datos sintéticos de cualquier índole que se parezcan a los que se han usado para entrenarlas.

Las Redes Generativas Antagónicas (más conocidas como GAN) son un tipo de redes neuronales con un funcionamiento muy particular capaz de generar datos sintéticos de cualquier índole que se parezcan a los que se han  usado para entrenarlas

Probablemente, este nombre resulte desconocido para el gran público. No obstante, es muy probable que mucha gente se haya topado con imágenes como las siguientes.

Corresponden a un artículo publicado por el departamento de IA de NVIDIA hace unos años y fueron generadas artificialmente por una red de este tipo. Es decir, no existe ninguna persona en el mundo que tenga ninguna de esas caras, sino que han sido generadas desde cero todas ellas con un realismo que llega a asustar.

¿Y como funciona una GAN?

Normalmente, una red neuronal se entrena con unos datos que tienen unas variables de entrada y unas de salida (en la mayoría de los casos solamente hay una variable de salida). Durante el proceso de entrenamiento, la red neuronal trata de predecir lo mejor posible ese valor de salida en base a los datos que recibe de entrada.

Pero en este caso es diferente. Una GAN realmente no consta de una única red neuronal, sino de dos, conocidas como generador y discriminador. El generador hace el papel de un falsificador de obras de arte que trata de pintar un cuadro que pueda hacerse pasar por real, engañando así al discriminador. Por otro lado, el objetivo del discriminador es aprender a diferenciar un cuadro real de uno creado por el generador.

Tras un proceso de aprendizaje durante el cual cada red va optimizándose para lograr su objetivo, acabaremos obteniendo una red generadora que puede utilizarse para crear nuevas muestras de datos.

Aplicaciones de las GAN en el mundo real

Este tipo de modelos tiene multitud de aplicaciones que van más allá de la generación de caras nuevas. Algunos ejemplos son:

 

Aunque estos casos resultan muy vistosos para la mayoría de la gente, la realidad es que no suelen tener tanta presencia en proyectos basados en datos. No obstante, sí que hay dos principales formas de aplicar las GAN en problemas de Ciencia de Datos.

Imaginemos el siguiente escenario: nuestro equipo de Data Scientists tiene entre manos un dataset cuyas muestras quiere clasificar en dos clases, A y B. La mala noticia es que la gran mayoría de las muestras corresponden a la clase A, habiendo muy pocas de la clase B, (lo cual es un escenario muy común) y nuestros modelos no funcionan bien cuando las clases están desbalanceadas, por lo que suele ser conveniente entrenar con un número más o menos parejo de ejemplos de cada clase. En este caso, lo que podemos hacer, entre otras cosas, es entrenar una GAN que genere nuevas muestras de la clase B para equiparar el volumen de ambas.

Existen, por supuesto, otras técnicas que se aplican en estos casos, pero dependiendo del tipo de datos al que nos enfrentemos, es posible que el uso de estas redes nos aporte una buena mejora en el rendimiento de nuestros modelos.

Por otro lado, la otra principal aplicación de las GAN que mencionábamos aparece en casos en los que no es posible compartir datos entre empresas u organizaciones, por tener estos carácter sensible. Esto sucede con los datos de tipo clínico, que no pueden distribuirse libremente, o con empresas que quieren colaborar de alguna forma pero no pueden compartir entre ellos datos de su cartera de clientes.

Una posible solución a su problema es entrenar una red generativa sobre estos datos de carácter sensible, generar un nuevo dataset totalmente sintético y compartirlo con sus colaboradores (ya sean investigadores o empresas) para que puedan trabajar con él. Esta técnica está respaldada por trabajos de investigación que han demostrado que, para ciertos problemas, el rendimiento de los modelos entrenados únicamente con datos sintéticos casi no empeora.

 

Categories: Datos / Tags: , /