Muchos habréis escuchado hablar alguna vez sobre que la IA es capaz de generar imágenes. Imágenes tan reales, que un humano sería incapaz de diferenciar si es falsa o no. Esto ocurre gracias a las GAN (Generative Adversarial Net, o en castellano, Red Generativa Antagónica). En una serie de publicaciones, explicaré el origen de estas redes y el estado del arte actual.

Imágenes generadas por una BigGAN

Imágenes generadas por BigGAN

Fuente: Large Scale GAN Training for High Fidelity Natural Image Synthesis

Antes de empezar, en la figura anterior, ¿qué imágenes han sido generadas por una GAN? Parecen reales a simple vista, pero no, todas han sido generadas por esa red. A continuación, contaré cuál fue el origen de este modelo. También explicaré su funcionamiento, de forma que todo el mundo pueda entenderlo, tenga experiencia en redes neuronales o no.

Introducción a las GAN

Esta nueva arquitectura fue creada por Ian J. Goodfellow en 2014 (ver el artículo). Las GAN son un framework que estima modelos generativos a través de un proceso antagónico, en el cual se entrenan dos modelos. Uno de esos modelos, es el generativo G, que captura la distribución de los datos. El otro, es el discriminativo D, que estima la probabilidad de que una muestra venga del conjunto de datos de entrenamiento y no de G. El objetivo de entrenar G es maximizar la probabilidad de que D cometa un error.

Si esto no lo habéis entendido, tranquilos, que el siguiente ejemplo seguro que os saca de dudas.

El policía y el falsificador

Imaginad que hay un policía y un falsificador de billetes están juntos en una misma habitación. El falsificador, es un principiante que nunca ha falsificado dinero. El policía, un experto en detectar billetes falsos. El primer día que se reúnen, el falsificador le enseña al policía el dinero falso que ha creado. El policía, le dice que es dinero falso, y a continuación le enseña al falsificador como son los billetes reales. Ambos se reúnen todos los días, repitiendo este proceso. El falsificador aprende cada día a mejorar su técnica gracias a que el policía le enseña billetes reales. A los meses, el falsificador es capaz de crear billetes falsos sin que el policía se dé cuenta.

En el ejemplo anterior, el falsificador genera dinero falso, es el modelo generativo G. El policía, selecciona los billetes falsos, es el discriminativo D.

Arquitectura de una GAN

Fuente: Skymind

Modelos Generativo y Discriminativo

En el machine learning hay dos enfoques principales. Estos enfoques son el generativo y el discriminativo.

Los algoritmos generativos aprenden el modelo de distribución conjunta p(x,y) de unas entradas x y unas etiquetas y. Por ejemplo, si y son clases de animales, el algoritmo generativo modela cómo se distribuyen las características (datos de entrada) de cada tipo de animal. El modelo oculto de Markov pertenece a este tipo de algoritmos.

Por otra parte, el modelo discriminativo modela la distribución de probabilidad condicional p(y|x). Aprenden la dependencia de etiquetas y a partir de variables x previamente observadas. Algunos ejemplos de modelos discretos pueden ser SVM o algoritmos de regresión.

Entrenamiento de ambos conjuntos

Como hemos visto, en las GAN ambos modelos funcionan de manera conjunta. Para conseguir resultados buenos, los dos modelos tienen que maximizar el acierto en su tarea.

Entendiendo el ejemplo del policía y el falsificador, las GAN se pueden ver como un juego de uno contra uno entre los dos modelos.

Minimax en las GAN

Al enfocar las GAN como un juego de suma cero (cada movimiento tiene una pérdida o una ganancia), se puede utilizar el algoritmo minimax. Minimax es un algoritmo de decisión para minimizar la pérdida máxima aplicada en juegos. Este método elige el mejor movimiento para cada jugador suponiendo que el contrincante escogerá el peor. El espacio de estados se representa mediante árboles.

De esta forma se entrenan los modelos. Maximiza la probabilidad de que D (el policía) etiquete bien los datos que recibe (los billetes, tanto falsos como no) y G (el falsificador) genere mejores muestras (billetes falsos).

Algoritmo Minimax

Fuente: Wikipedia

Experimentación

Por último, veremos un ejemplo de como funciona una GAN. Los datos reales que se han utilizado han sido extraídos de la base de datos MNIST

 

Entrenamiento de una GAN

Fuente: Medium

Como se puede ver, a medida que el entrenamiento avanza, las imágenes generadas son más parecidas a las reales, comprobando así que el funcionamiento de la red es el correcto. Con el paso del tiempo, se ha mejorado esta arquitectura, teniendo cada vez mejores resultados. En próximas publicaciones, hablaré de estas técnicas más actuales y en que aspectos han mejorado este modelo inicial.

 

Sigue leyendo: