Full text
Aspectos matemáticos de las Redes Generativas Antagónicas Javier Santos Montero
Aspectos matemáticos de las Redes Generativas Antagónicas Javier Santos Montero Memoria presentada como parte de los requisitos para la obtención del título de Grado en Matemáticas por la Universidad de Sevilla. Tutorizada por: Prof. Miguel Ángel Gutiérrez Naranjo
Índice general English Abstract 1 Introducción 3 1. Definiciones básicas 5 1.1. Inteligencia Artificial (IA) . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2. ¿Qué es el aprendizaje? El machine learning .............. 8 1.2.1. Latarea,T............................. 9 1.2.2. La medida de rendimiento, P . . . . . . . . . . . . . . . . . . . 10 1.2.3. La experiencia, E: Tipos de machine learning . . . . . . . . . 11 1.3. Redes Neuronales y Deep Learning . . . . . . . . . . . . . . . . . . . 12 1.3.1. Neuronas artificiales . . . . . . . . . . . . . . . . . . . . . . . 12 1.3.2. Redes neuronales . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.3.3. Algoritmo de aprendizaje . . . . . . . . . . . . . . . . . . . . 15 1.3.4. DeepLearning .......................... 17 2. Presentación de las GANs 21 2.1. ¿Qué buscamos en un modelo generador? . . . . . . . . . . . . . . . . 21
ii aspectos matemáticos de las redes generativas antagónicas 2.2. Utilidad de los modelos generadores y las GANs . . . . . . . . . . . . 22 2.3. Fundamentos de las GANs . . . . . . . . . . . . . . . . . . . . . . . . 24 2.3.1. TeoríadeJuegos ......................... 24 2.3.2. Juegos de suma cero con dos jugadores . . . . . . . . . . . . . 25 2.4. Funcionamiento de las GANs, algoritmo general . . . . . . . . . . . . 26 2.4.1. Algoritmo de aprendizaje . . . . . . . . . . . . . . . . . . . . 27 3. Problemas en el entrenamiento de las GANs. Posibles soluciones 31 3.1. Primera aproximación, estrategia MinMax . . . . . . . . . . . . . . . 31 3.1.1. Propiedades matemáticas . . . . . . . . . . . . . . . . . . . . 32 3.2. Segunda aproximación, método heurístico . . . . . . . . . . . . . . . 36 3.3. Problemas en el entrenamiento de las GANs . . . . . . . . . . . . . . 38 3.3.1. Oscilación de la función de costes . . . . . . . . . . . . . . . . 38 3.3.2. Falta de información de la función de costes . . . . . . . . . . 39 3.3.3. Colapso del generador . . . . . . . . . . . . . . . . . . . . . . 39 3.3.4. Elección de parámetros . . . . . . . . . . . . . . . . . . . . . . 40 3.4. Posibles soluciones, Wassertein GAN . . . . . . . . . . . . . . . . . . 40 3.4.1. La métrica de de Wassertein . . . . . . . . . . . . . . . . . . . 40 3.4.2. Aplicación práctica, algoritmo WGAN . . . . . . . . . . . . . 46 3.4.3. Algoritmo computacional . . . . . . . . . . . . . . . . . . . . 48 3.4.4. Observaciones del algoritmo . . . . . . . . . . . . . . . . . . . 49 3.5. Penalización del gradiente WGAN-GP . . . . . . . . . . . . . . . . . 50 3.5.1. Fundamento teórico . . . . . . . . . . . . . . . . . . . . . . . 50 3.5.2. Algoritmo de penalización del gradiente . . . . . . . . . . . . 52
ÍNDICE GENERAL iii 3.5.3. Observaciones del algoritmo . . . . . . . . . . . . . . . . . . . 53 4. Implementación y experimentos 55 4.1. Primerexperimento............................ 55 4.2. Segundoexperimento........................... 59 4.3. Tercerexperimento ............................ 63 5. Conclusiones y trabajo futuro 67
English Abstract Machine learning, and neural networks in particular, have become a very useful resource for solving problems such as decision making, where a model is trained using the information from a database (images or individuals data, for example) to predict future decisions. Thanks to enormous progress in this field, new aspirations have arisen, in our case, the industry desire to design data. In fact, we do not want to know how to react to training information, our objective is to infer the intrinsic qualities in order to generate new observations that appear so real that we are not able to distinguish them from the originals. In this relatively new approach, there are several ways of dealing with this problem. A possible solution will be GANs, generative adversarial networks, the central object of our study. We will see how they work and their mathematical foundations. Finally, due to the convergence problems that may arise during their learning process, we will make a literature review of different solutions that have been proposed to solve it, and following this, we will perform several experiments to test them.
8aspectos matemáticos de las redes generativas antagónicas correctas, algo que a veces es básico en un agente racional, sin embargo, solo dar con decisiones correctas no es una política acertada, hay situaciones donde, o no existe una decisión 100 % correcta, o no hay suficiente tiempo para realizar una deliberación exhaustiva, y aún así, hay que tomar una decisión. En el caso del modelo cognitivo, es demasiado exigente, pues necesitamos conocer de forma muy exhaustiva la mente humana, algo que tiene en sí mismo muchísimo interés, pero el gran trabajo que conlleva dificulta su desarrollo científico. Y por último, en el Test de Turing, todas las habilidades necesarias para la prueba también permiten que el agente actúe racionalmente y sea capaz de desenvolverse en una sociedad compleja, luego por todo esto, el enfoque de agente racional será el que usemos para entender la Inteligencia Artificial. 1.2 ¿Qué es el aprendizaje? El machine learning Después de tener una idea general de Inteligencia Artificial, nos vamos a centrar en un campo más específico del mismo, el aprendizaje automático o machine learning. Por tanto, necesitamos definir qué es aprender, según Thomas M. Mitchell [15]: Definición 1.1. Se dice que un programa de computadora aprende de la experiencia E con respecto a alguna clase de tareas T y medida de rendimiento P, si su desempeño en tareas de T, medido por P, mejora con la experiencia E. Un ejemplo de esto puede ser transcribir textos escritos a mano desde imágenes: Tarea T: Reconocer las palabras escritas a mano de la imagen. Medida de rendimiento P: Porcentaje de palabras bien reconocidas. Experiencia E: base de datos de imágenes y sus correspondientes textos. Gracias al aprendizaje automático, seremos capaces de obtener programas que puedan resolver problemas complejos como estos, pues serían muy difíciles de resolver mediante programación convencional, diseñando y escribiendo el código. Como hay una gran variedad de tareas, experiencias y medidas de rendimiento, veremos una idea general, siguiendo los contenidos descritos en [5] y [17].
1. definiciones básicas 9 1.2.1 La tarea, T Cuando hablamos de tarea, nos referimos a la habilidad que queremos que desarrolle la máquina a través del aprendizaje. Para ello, usualmente, las tareas se describen a través de cómo la máquina debe procesar cada observación . Definición 1.2. Una observación es un conjunto de características que son medidas sobre los objetos de nuestro estudio . Esto suele representarse en forma de vector x∈ℝ𝑛, donde cada coordenada x𝑖corresponderá al valor de la característica i-ésima. En la tarea anterior, las observaciones serán las imágenes con palabras manuscritas, y las características de cada una serán los valores de color cada píxel. Ahora bien, dado que existe gran variedad de tareas, veamos algunos ejemplos: Clasificación, queremos obtener una función 𝑓∶ℝ𝑛→{1..., 𝑘}que dado un vector de datos de entrada x, lo identifique con una de las 𝑘categorías distintas, es decir, encuentre una serie de patrones en la observación que nos haga designarlo a una categoría. Este sería nuestro ejemplo anterior, dada una imagen de un carácter, le asigne un valor entre las posibles 27 categorías (la letra del alfabe- to que corresponde). A este y otros problemas similares como el reconocimiento de voz se les denominan problemas de transcripción. Regresión, en este caso la función es 𝑓∶ℝ𝑛→ℝ, pues dado un dato de entrada xlo que queremos predecir un valor numérico 𝑦. Un ejemplo son los modelos lineales, en los que queremos estimar la variable respuestas 𝑦, a través de las covariables descritas en el vector x. Detección de anomalías, donde el objetivo es que el programa nos avise ante un comportamiento inusual, muy útil en el campo de la seguridad y ciberseguridad. Síntesis y generación, en esta tarea se tiene como objetivo generar nuevas observaciones, es decir, vectores xque sean similares a los procedentes de los datos de entrenamiento. Esta tarea será en la que nos centraremos pues, como su propio nombre lo indica, las GANs son redes neuronales generativas, luego más adelante las desarrollaremos.
10 aspectos matemáticos de las redes generativas antagónicas 1.2.2 La medida de rendimiento, P Después de tener clara nuestra tarea a realizar, tendremos que dar una forma de medir si el aprendizaje es adecuado, la medida de rendimiento. Esta se usa, una vez terminado el entrenamiento, para ver cómo se comporta nuestro modelo ante datos nunca vistos en el aprendizaje, denominados conjunto de datos de test, test set en inglés, y con esto, poder evaluar la máquina en una situación más realista e inferir como se comportaría en el mundo real. Otra medida que también tendremos en cuenta es la medida de error, una función que toma como punto de partida la diferencia entre la salida del modelo y la salida esperada que aparece en la base de datos. Por tanto, a lo largo del proceso de aprendizaje, modificaremos el modelo para que esa medida sea cada vez menor, y finalmente, para ver si el proceso ha sido satisfactorio, lo evaluaremos midiendo el rendimiento en ejemplos del conjunto de datos test. Según la tarea, tomaremos una medida u otra, adaptándolo al contexto y al comportamiento que deseamos. Dado que existen muchas medidas posibles, veamos algunos ejemplos de posibles elecciones. En problemas de clasificación podemos tomar la exactitud del modelo, es decir, la proporción de de observaciones que nuestro modelo clasifica correctamente, y equivalentemente, la tasa de error, la proporción de observaciones mal clasificadas. En el caso de modelos de regresión suele usarse el error cuadrático medio MSE, del inglés mean square error, donde tomamos el valor medio del cuadrado de la distancia entre 𝑦𝑖, el valor verdadero, y 𝑝𝑖, el estimado por el modelo: 𝑀𝑆𝐸 =1 𝑛 𝑛 ∑ 𝑖=1 (𝑦𝑖−𝑝𝑖)2(1.1) Sin embargo estas elecciones no son únicas, en el caso del modelo de regresión nos podemos plantear preguntas como: ¿qué es mejor, un modelo con muchos errores medianos u otro con errores muy pequeños salvo unos pocos casos con error más grande? Esta, y muchas otras preguntas de este tipo, hará que la elección de la medida de rendimiento pueda ser distinta en cualquiera de las tareas que nos planteemos.
1. definiciones básicas 11 1.2.3 La experiencia, E: Tipos de machine learning El último elemento fundamental del aprendizaje será la experiencia que usemos para mejorar nuestro desempeño, esta experiencia serán un conjunto de observaciones, llamado datos de entrenamiento, y según la forma del mismo, obtenemos la clasificación en dos tipos fundamentales de machine learning: El aprendizaje automático supervisado o predictivo. El objetivo final es obtener una función que, dado un dato de entrada 𝑥, obtenga una salida 𝑦. Para ello, utiliza un conjunto de pares (observación, salida) = {(𝑥𝑖, 𝑦𝑖) ∶ 𝑖∈ {1...𝑁}} como datos de entrenamiento. En su definición 𝑁es el número de elementos del mismo, cada 𝑥𝑖es una observación e 𝑦𝑖la salida o variable respuesta. Usualmente cada 𝑦𝑖suele ser una variable categórica, es decir, 𝑦𝑖∈ {1, ..., 𝐶} con C el número de clases (tareas de clasificación) o un escalar (regresión), aunque en realidad puede ser cualquier cosa, por ejemplo, si queremos entrenar el reconocimiento de voz, 𝑦𝑖sería la frase escrita correspondiente a la grabación de audio dada en 𝑥𝑖. El aprendizaje descriptivo o no supervisado. En él solamente tenemos como datos de entrenamiento un conjunto = {𝑥𝑖∶𝑖∈ {1...𝑁}}, pues el objetivo es encontrar "patrones" o propiedades interesantes en los datos. Por tanto, este problema está "peor definido" que el anterior, pues no se nos suministran los patrones a buscar en las observaciones, y tampoco tenemos una forma de medir el error obvia (Pues en el aprendizaje supervisado basta comparar la predicción obtenida y la verdaderamente observada), uno de los avances en este campo serán las GANs, que nos permitirán resolver situaciones de esta rama de aprendizaje. Aún así, más allá de la separación entre supervisado y no supervisado, se pueden considerar otros paradigmas, como el "reinforcement learning", que podríamos traducir como aprendizaje por refuerzo, que no utiliza solo como experiencia un conjunto fijado de datos, u otras situaciones como el aprendizaje semi-supervisado, donde algunas observaciones incluyen etiquetas y otras no. Con todo lo anterior, ya tenemos los conceptos básicos en el aprendizaje, solo nos faltaría conocer un detalle fundamental, el algoritmo de aprendizaje, es decir, cómo vamos a utilizar los datos y la medida de rendimiento para solucionar la tarea. En el caso que nos ocupa, las GANs, esto se realizará mediante redes neuronales.
12 aspectos matemáticos de las redes generativas antagónicas 1.3 Redes Neuronales y Deep Learning 1.3.1 Neuronas artificiales Figura 1.1: Esquema de una neurona biológica tomado de Quasar Jarosz, en Wikimedia Commons, url: https://commons.wikimedia.org/wiki/File:Neuron_Hand-tuned.svg En el modelo de una neurona biológica, esquematizada en la figura 1.1, vamos a centrarnos en tres partes de la misma: Axón: parte terminal de la neurona que se puede conectar a otras enviando la respuesta generada por el núcleo. Dendritas: fibras que se conectan con otras neuronas, transportando la información del exterior al núcleo. Núcleo: procesa las señales recibidas y produce una respuesta. De forma muy básica, en la neurona biológica, el aprendizaje se realiza mediante los cambios que se producen en la respuesta que genera el núcleo ante la información que obtiene de otras neuronas por las dendritas. Matemáticamente, se modelizará con funciones reales siguiendo la analogía con la neurona biológica: Axón: el valor resultante de la operación realizada por el núcleo, que estará disponible para otras neuronas concretas.
1. definiciones básicas 13 Dendritas: serán los datos de entrada a la neurona, un vector 𝐷-dimensional x= (𝑥1, 𝑥2, ...𝑥𝐷). Cada componente tendrá un peso asociado 𝑤𝑖∈ℝ, 𝑖 = 1..𝐷. Estos pesos serán los valores que irán cambiando a lo largo del aprendizaje, haciendo que la neurona pueda adaptarse a los tipos de entrada que tenga. Núcleo: obtiene la la respuesta 𝑦al realizar una operación sobre los datos de entrada, esta consiste en una operación, normalmente la suma, pero se pueden usar otras como el producto, el máximo,... ponderada por los pesos 𝑤𝑖, y al resultado aplicarle una función de activación 𝜎∶ℝ→ℝ: 𝑦=𝜎( 𝐷 ∑ 𝑖=1 𝑥𝑖𝑤𝑖) La función de activación determinará el comportamiento de la neurona y será crítica para asegurar el aprendizaje, pues sin ella, el núcleo sólo podría ser una combinación lineal de la entrada. Entre las más usadas [3] destacamos: •Softmax, pensando en un grupo de 𝐽neuronas, esta función de activación tiene como objetivo transformar el resultado a priori de estas, cada valor real 𝑦𝑖en otros, 𝑦𝑖cuya suma total de las 𝐽salidas sea 1. Esto puede usarse, por ejemplo, si entendemos los resultados de cada una como probabilidades de estar en una entre 𝐽categorías. Se define como: 𝑦𝑖=𝑒𝑦𝑖 ∑𝐽 𝑗=1 𝑒𝑦𝑗 •ReLU, del inglés rectified linear unit, se define como: 𝜎(𝑥) = {0𝑠𝑖 𝑥 < 0 𝑥 𝑒𝑛 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜 •LeakyReLU, al igual que ReLU, es la identidad para valores positivos, pero para valores negativos, en vez de devolver 0 obtiene como resultado un número negativo pequeño y proporcional (𝑎es una contante real) al valor de x: 𝜎(𝑥) = {𝑎𝑥 𝑠𝑖 𝑥 < 0 𝑥 𝑒𝑛 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜 Se usa para evitar la "muerte de la neurona" en caso de tener valores negativos, pues al usar ReLU la neurona siempre nos dará como resultado 0 (no aportará nada para las siguientes neuronas conectadas a esta), haciendo que, en el aprendizaje, los cambios que se puedan dar en los pesos (normalmente pequeños) no hagan que su valor deje de ser nulo.
14 aspectos matemáticos de las redes generativas antagónicas •Sigmoide, obtiene como salida de la neurona un valor escalado entre 0 y 1, útil , por ejemplo, en estimaciones de una probabilidad: 𝜎(𝑥) = 1 1 + 𝑒−𝑥 Figura 1.2: Imagen gráfica de las funciones de activación ReLU, LeakyReLU y sigmoide. 1.3.2 Redes neuronales Una neurona artificial es una representación de una función matemática simple, por tanto, dado que las funciones que querremos aproximar serán muy complejas, usaremos grandes conjuntos de neuronas interconectadas entre sí, es decir, redes neuronales. Con ellas se pretende simular el procesamiento de la información que realiza el sistema nervioso. En nuestro modelo, esto equivaldrá a estimar o aproximar funciones que dependen de una gran cantidad de variables. Una red neuronal puede tomar una gran variedad de arquitecturas. Si entendemos las neuronas como nodos y las dendritas como aristas dirigidas, para un conjunto finito de neuronas, sabemos que existe una gran variedad de grafos, es decir, redes neuronales, posibles. Por tanto, vamos a centrarnos en el caso más usual, la estructura multicapa, esquematizada en la figura 1.3. Según [14] las neuronas dentro de la red siguen una distribución en forma de capas o estratos, con un número determinado de neuronas en cada una, y las conexiones entre neuronas sólo están permitidas entre aquellas que estén en capas adyacentes. Un ejemplo de esto es el perceptrón multicapa, conocido por sus sílabas MLP (del inglés multilayer perceptron), donde cada neurona recibe información de todas las neuronas de la capa anterior, y no hay conexiones entre neuronas de la misma capa. De esta forma, según las conexiones de las neuronas se clasifica en tres tipos de capas:
1. definiciones básicas 15 Figura 1.3: Imagen esquemática de la estructura de una red neuronal. Fuente: https://abdatum.com/machine-learning/redes-neuronales-artificiales Capa de entrada: las neuronas reciben directamente la información del exterior. Capa de salida: transfiere la información de la red hacia el exterior. Capas ocultas: si existen, están formadas por neuronas cuyas conexiones sólo se dan con otras neuronas. Las neuronas de las capas ocultas pueden estar interconectadas de distintas maneras, lo que determina, junto con su número, las distintas topologías de redes neuronales. 1.3.3 Algoritmo de aprendizaje Una vez sabemos la estructura que tendrá nuestra red, ¿qué algoritmo vamos a usar para el aprendizaje? Es decir, ¿de qué forma vamos a cambiar los pesos para que la red se comporte como deseamos? Entre todos los algoritmos posibles, vamos a ver el más usado en la literatura, el algoritmo de retropropagación del error, conocido como backpropagation. Aunque existen generalizaciones, para nuestro estudio vamos a verlo siguiendo las ideas de [16], aplicado a redes multicapa, en el contexto del aprendizaje supervisado y usando como medida de rendimiento, conocida como función de coste, el error cuadrático medio (1.1), que además tiene la propiedad de ser derivable.
16 aspectos matemáticos de las redes generativas antagónicas Este algoritmo está basado en el conocido método de optimización del descenso del gradiente, formulado en la siguiente ecuación: 𝑥𝑡+1 =𝑥𝑡−𝛼𝑡∇𝐶(𝑥𝑡) En él, buscamos la convergencia de los puntos 𝑥𝑡hacia un mínimo de una función dada 𝐶. En el caso del algoritmo de retropropagación, buscaremos un mínimo de la función de costes en función de los pesos. Esto se realiza mediante las siguientes etapas: 1. Fijar como pesos iniciales valores aleatorios pequeños, generalmente en el intervalo [−0.5,0.5] porque en la práctica se obtienen mejores resultados. 2. Elegir aleatoriamente una observación (𝑥𝑖, 𝑦𝑖)y calculamos el paso de 𝑥𝑖por la red, es decir, el resultado de cada una de las neuronas. Llamémosle 𝛾𝑙 𝑖al resultado de la operación de la neurona i-ésima en la capa l-ésima. Por ejemplo, para l=0 corresponde con los datos de entrada 𝑥𝑖y para 𝑙=𝐿(la capa final) corresponderá a los valores 𝑝𝑖de salida de la red . 3. Calcular 𝛿𝑙 𝑖=𝜎𝑖𝑙′(𝑖𝑛𝑙 𝑖)(𝑦𝑖−𝛾𝑙 𝑖). Donde 𝑖𝑛𝑙 𝑖representa la entrada de la i-esima neurona en la l-ésima capa (aplicando los pesos) y 𝜎𝑖𝑙′la derivada de la función de activación de dicha neurona respecto a los pesos. Es decir, las derivadas parciales multiplicadas por la diferencia entre el valor verdadero 𝑦𝑖y el aproximado 𝑝𝑖. 4. Actualizar los pesos usando el algoritmo del gradiente, usando las derivadas parciales respecto a los pesos calculadas antes. A la constante 𝛼del método se la conoce como tasa de aprendizaje, pues nos indica cuanto se actualizan los pesos. Este proceso se continúa iterando volviendo al segundo paso hasta alcanzar una condición de parada, ya sea, en caso de convergencia, cuando el gradiente esté próximo a 0 o la variación de los pesos sea muy pequeñas.
1. definiciones básicas 17 1.3.4 Deep Learning Los datos de trabajo de las GANs suelen contener una gran cantidad de variables, por ejemplo, si nuestro problema es generar imágenes de personas, ver ejemplo en la figura 1.4, cada imagen (observación) está formada por una lista de tuplas que describen el color de cada píxel (características), si por ejemplo usamos la escala RGB, cada píxel tendrá asignado 3 valores, correspondiente a la cantidad de rojo verde y azul que hay en su color. Figura 1.4: Ejemplo observación, en este caso una imagen, cuyas características son los valores RGB de cada píxel. Fuente: https://pythoneyes.wordpress.com/2017/05/22/extraccion-de-datos-valores- de-pixel-de-una-imagen Por tanto, es obvio que si un píxel determinado tiene un color u otro, esto no implica que estemos ante una persona o no, sino que tenemos que entender la imagen de forma más general, buscar las características intrínsecas que hacen que una foto sea de un ser humano. Este enfoque de machine learning tan abstracto es lo que se conoce como Deep Learning. Generalmente, un algoritmo de Deep Learning tienen múltiples etapas de procesamiento, con una estructura normalmente compleja y transformaciones no lineales. En nuestro caso, esta tarea la realizaremos usando como herramienta las redes neuronales, que como vimos anteriormente pueden presentar múltiples arquitecturas. En obras como [11], y ejemplificado con la figura 1.8, podemos ver la gran variedad de
24 aspectos matemáticos de las redes generativas antagónicas 2.3 Fundamentos de las GANs Las GANs tienen como base los juegos de suma cero, un elemento de la Teoría de Juegos donde, dos jugadores se enfrentan, en este caso el discriminador y el generador, con el objetivo de maximizar sus beneficios, o análogamente, minimizar sus costes. Veamos en qué consiste: 2.3.1 Teoría de Juegos La teoría de juegos es un área de la matemática aplicada de gran utilidad en la economía o, en nuestro caso, en la inteligencia artificial, pues nos ayuda a comprender la conducta humana frente a la toma de decisiones. Las ideas de esta sección están tomadas de [20], donde vamos a ver varios conceptos de la teoría de juegos aplicada a nuestra situación, en primer lugar, el concepto de juego: Definición 2.2. Un juego consiste en un problema de decisión conformado por los siguientes elementos: 𝑁: agentes decisores (𝑁≥2para no estar en un caso trivial). 𝑅: conjunto de resultados posibles. = {(𝑠1, ..𝑠𝑁)} Conjuntos de estrategias posibles, 𝑠𝑖es la política seguida por el jugador i-ésimo. Para cada 𝑘∈ {1..𝑁},𝜙𝑘∶→ℝfunciones que asocian a cada posible estrategia de los jugadores, el coste o beneficio que repercute en cada jugador. Así, cada jugador escoge de manera independiente su política a seguir, con el objetivo de obtener el mayor beneficio (o menor coste). De esta forma, entenderemos un juego como un "conflicto de intereses", es decir, los agentes tienen como único objetivo maximizar sus propios beneficios. Tradicionalmente existen dos clases de juegos, cooperativos y no cooperativos, donde la diferencia se da en las posibilidades de comunicación y acuerdos con otros jugadores, así, en el caso de las GANs estamos ante un juego no cooperativo, pues cada agente actúa siguiendo exclusivamente su propio interés. Ahora bien, dado un juego cualquiera, como no tiene que existir una "solución" que beneficie a todos los jugadores, el concepto más cercano a este serán los equilibrios:
2. presentación de las gans 25 Definición 2.3. Decimos que las estrategia (𝑠1, ..𝑠𝑁) ∈ es un punto de equilibrio de Nash si para todo jugador 𝑘∈ {1..𝑁}y cada política 𝑡𝑘que pueda seleccionar, se cumple que 𝜙𝑘((𝑠1, .., 𝑠𝑘, .., 𝑠𝑁)>=𝜙𝑘((𝑠1, .., 𝑡𝑘, ..𝑠𝑁). La conducción anterior está definida pensando en 𝜙𝑘como función de beneficio, pero el caso de ser el coste la desigualdad sería la opuesta. En resumen, si estamos en un equilibrio de Nash, ningún jugador podrá obtener más beneficios realizando un cambio unilateral en su política. 2.3.2 Juegos de suma cero con dos jugadores Un juego de suma cero es un tipo especial de juego, entre los que encontramos las GANs, en el que el conflicto de intereses entre los jugadores es total, pues el beneficio de uno supone la pérdida de otro. Formalmente (en el caso de dos jugadores) se define como: Definición 2.4. Un juego de suma cero (𝑁= 2) se representa por dos conjuntos de políticas 𝑆1y𝑆2respectivas a cada jugador, donde las funciones de coste o beneficio cumplen que 𝜙1= −𝜙2. De esta forma, si entendemos 𝜙𝑘como el dinero que recibe de (positivo) o paga a (negativo) el otro jugador, el jugador 1 desea maximizar 𝜙1mientras que el jugador 2 trata de minimizarlo. Dado que 𝜙1= −𝜙2lo denotaremos simplemente por 𝜙. Estrategia Maximin y Minimax Supongamos que el jugador 1 razona de forma pesimista, poniéndose en el peor caso posible, es decir, cuando el jugador 2 escoja aquella política 𝑠2que minimice el valor de 𝜙. Por tanto, el mejor resultado que puede obtener el jugador 1 será escoger la política que maximice dicho mínimo. De forma análoga, supondremos que actúa el jugador 2 dando lugar a las correspondientes problemas Maximin y Minimax: Política Maximin para el jugador 1: 𝑣1= m ax 𝑠1∈𝑆1m ın 𝑠2∈𝑆2𝜙(𝑠1, 𝑠2) 𝑠1=𝑎𝑟𝑔 m ax 𝑠1∈𝑆1m ın 𝑠2∈𝑆2𝜙(𝑠1, 𝑠2) (2.1)
26 aspectos matemáticos de las redes generativas antagónicas Política Minimax para el jugador 2: 𝑣2= m ın 𝑠2∈𝑆2m ax 𝑠1∈𝑆1𝜙(𝑠1, 𝑠2) 𝑠2=𝑎𝑟𝑔 m ın 𝑠2∈𝑆2m ax 𝑠1∈𝑆1𝜙(𝑠1, 𝑠2) (2.2) Gracias a que estamos en un juego de suma cero podemos realizar las siguiente afirmación sobre las estrategias anteriores: Proposición 2.1.El valor obtenido en la política Maximin es menor o igual al Minimax, es decir, 𝑣1≤𝑣2. Demostración. Sea 𝐹(𝑠2)=m ax𝑠1∈𝑆1𝜙(𝑠1, 𝑠2)y𝑠2la política Minimax que minimiza 𝐹(𝑠2), luego: 𝜙(𝑠1, 𝑠2)≤𝐹(𝑠2) ∀(𝑠1, 𝑠2) ∈ 𝑆1×𝑆2 Minimizando en 𝑠2en ambos lados de la ecuación: m ın 𝑠2𝜙(𝑠1, 𝑠2)≤m ın 𝑠2𝐹(𝑠2) = 𝐹(𝑠2) = 𝑣2∀𝑠1∈𝑆1 Si ahora maximizamos en 𝑠1tenemos el resultado: 𝑣1= m ax 𝑠1m ın 𝑠2𝜙(𝑠1, 𝑠2)≤𝑣2 En caso de juegos de suma cero con estrategias finitas, es decir, el cardinal de 𝑆1y 𝑆2están acotados, gracias a la proposición anterior podremos hablar de resultados de existencia de equilibrios de Nash y de igualdad en los valores 𝑣1y𝑣2. Pero dado que, en general, las GANs utilizarán como parámetros a controlar (las posibles políticas) valores reales, no podremos asegurar la existencia de dichos equilibrios. 2.4 Funcionamiento de las GANs, algoritmo general Aplicando lo anterior a las GANs, veamos como actúan los dos jugadores: El generador, actúa creando observaciones ficticias e intentando que estas sigan la misma distribución que los datos de entrenamiento. Está representado por una función 𝐺𝜔, la cual toma un dato de entrada 𝑧(un vector o escalar aleatorio) y usando como parámetros 𝜔obtiene como resultado un vector x=𝐺𝜔(𝑧), que tendrá la misma estructura que una observación de nuestro conjunto de datos.
2. presentación de las gans 27 El discriminador, examina observaciones y determina si estas son reales o falsas. Está representado por una función 𝐷𝜃, la cual toma un dato de entrada x(una observación) y usando como parámetros 𝜃obtiene como resultado un valor real entre 0 y 1 (corresponde con la estimación de la probabilidad de que xsea una observación real). Las funciones 𝐺𝜔y𝐷𝜃anteriores vendrán dadas por redes neuronales, ambas asociadas a una función de costes definida en término de los parámetros anteriores, 𝐽𝐺(𝜃, 𝜔) y𝐽𝐷(𝜃, 𝜔)respectivamente. De esta forma, cada una trata de minimizar su función de coste variando sus parámetros correspondientes mediante algún algoritmo de aprendizaje, como puede ser el anteriormente visto de backpropagation. Sin embargo, este proceso de mejora de resultados se hace únicamente cambiando sus propios parámetros, por ejemplo, el generador trata de minimizar 𝐽𝐺(𝜃, 𝜔)controlando únicamente sus parámetros, es decir, los valores de 𝜔. Este planteamiento hace que no estemos ante un problema de optimización, sino ante un juego, las políticas son los parámetros 𝜔y𝜃, y las funciones de coste 𝜙𝑘las correspondientes 𝐽𝐺y𝐽𝐷. De esta forma, como vimos antes, en lugar de encontrar un mínimo local buscamos un equilibrio de Nash, es decir, el par (𝜃, 𝜔)tal que 𝐽𝐷alcance un mínimo local respecto a 𝜃y análogamente 𝐽𝐺respecto a 𝜔. 2.4.1 Algoritmo de aprendizaje El aprendizaje de una GAN se realizará según el siguiente proceso, el cual esquematizaremos en las figuras 2.2 y 2.3 en un ejemplo de generación de imágenes de árboles: 1. El generador crea una serie de observaciones, en principio totalmente aleatorias, pues aún no ha recibido ninguna experiencia de la que aprender. 2. Las observaciones creadas en el paso anterior se mezclan con otras "reales", es decir, provenientes del conjunto de datos de entrenamiento de la GAN. 3. Las observaciones anteriores se etiquetan, las generadas recibirán una etiqueta, por ejemplo "0", mientras que las provenientes de los datos la etiqueta "1". 4. Este conjunto de datos etiquetado se le suministra al discriminador, que tratará de clasificar las observaciones, asignando a cada una la probabilidad de recibir la etiqueta "1". 5. Tras la clasificación, el discriminador usará sus errores (el valor de 𝐽𝐷(𝜃, 𝜔), obtenido de las predicciones dadas frente al resultado correcto en cada obser-
28 aspectos matemáticos de las redes generativas antagónicas vación) como experiencia para mejorar su algoritmo adaptando sus parámetros 𝜃. Es decir, tratará de que la probabilidad calculada sobre las observaciones se acerque a 1 en las provenientes de datos reales y a 0 en las generadas. Figura 2.2: Algoritmo general de una GAN, optimización del discriminador. 6. El generador crea otra nueva ronda de observaciones y se las suministrará al discriminador para que las clasifique. 7. Las clasificaciones dadas por el discriminador será la experiencia (y la correspondiente 𝐽𝐺(𝜃, 𝜔)) que utilice el generador para mejorar su algoritmo cambiando sus parámetros 𝜔. Es decir, que sus observaciones tengan una mayor probabilidad de recibir la etiqueta "1". Y volvemos al paso 1. En este proceso, fijándonos en el generador, pues es el agente que nos interesa, al principio no obtendrá experiencias útiles del discriminador, ya que inicialmente este actúa de forma aleatoria, pero a medida que se realicen iteraciones, el discriminador mejorará su criterio, haciendo que la experiencia suministrada al generador le sea útil para su aprendizaje. De esta forma, a medida que el discriminador mejore, las observaciones generadas por el generador también lo harán, pues para reducir su
2. presentación de las gans 29 función de coste (es decir, conseguir que el discriminador tome sus observaciones como reales) estas tendrán que mejorar. Figura 2.3: Algoritmo general de una GAN, optimización del generador. Finalmente, la situación deseada tras una serie de iteraciones será un equilibrio de Nash, donde el generador produzca observaciones tan buenas que el discriminador no sea capaz de distinguirlas de las originales (su probabilidad asignada sea aproximadamente 1 2), y por tanto realizar cambios en los parámetros 𝜃y𝜔no produzca ningún beneficio. Este es el marco general del aprendizaje, en el capítulo siguiente trataremos posibles elecciones de las funciones descritas anteriormente y situaciones problemáticas que pueden suceder, viendo casos prácticos de esto en el capítulo 4, realizando experimentos con diversas redes neuronales, cuyo código he tomado de [3].
3 Problemas en el entrenamiento de las GANs. Posibles soluciones Supongamos el caso general de una GAN basada en dos redes neuronales, 𝐷con un conjunto de pesos 𝜃y𝐺con pesos 𝜔, correspondientes al discriminador y generador respectivamente. A la hora del entrenamiento, cada una ajustará dichos parámetros para minimizar su función de costes usando algún algoritmo de aprendizaje propio de redes neuronales, como puede ser el de backpropagation. Luego la pregunta fundamental será qué funciones de coste podemos tomar, o como vimos en la sección 1.2.2, qué medida de error usaremos. 3.1 Primera aproximación, estrategia MinMax Dado que en en su concepción entendemos las GANs como un juego de suma cero, una primera selección natural de la función de costes será aquella donde 𝐽𝐷(𝜃, 𝜔) = −𝐽𝐺(𝜃, 𝜔). Como la función del discriminador será clasificar las observaciones entre dos categorías, reales o generadas, usaremos la función de costes para el discriminador más usada [4] en problemas de clasificación, conocida en inglés como binary cross entropy, es decir, entropía cruzada binaria: 𝐽𝐷(𝜃, 𝜔)=−1 𝑛 𝑛 ∑ 𝑖=1 𝑦𝑖log(𝑝𝑖) + (1 − 𝑦𝑖) log(1 − 𝑝𝑖)(3.1) En esta expresión, 𝑛, denominado en inglés batch size, es el número de observaciones que suministramos en cada ronda de entrenamiento, 𝑦𝑖la etiqueta de las mismas, y 𝑝𝑖 la estimación de la probabilidad de tener la etiqueta 1 por el discriminador, es decir, 𝑝𝑖=𝐷(𝑥𝑖).
32 aspectos matemáticos de las redes generativas antagónicas Comprobemos que esta elección de función de costes dada en (3.1) es acertada para el discriminador analizando los correspondientes sumandos uno a uno: ·Si 𝑦𝑖= 1 (la observación proviene del conjunto de datos de entrenamiento), el correspondiente sumando será − log(𝑝𝑖), luego minimizar supondrá incrementar el valor de 𝑝𝑖(la estimación de la probabilidad de proceder de los datos de entrenamien- to). ·Si 𝑦𝑖= 0 la observación ha sido generada, luego 𝑝𝑖=𝐷(𝐺(𝑧𝑖)), minimizar − log(1 − 𝑝𝑖)supone hacer que la probabilidad asignada 𝑝𝑖sea más cercano a 0. Por tanto esta elección de función de coste es acertada para el discriminador, pues minimizar en ella supondrá disminuir el error cometido por este. Ahora bien, siguiendo la notación de la definición 2.4, el generador tendrá como función de costes: 𝐽𝐺(𝜃, 𝜔) = 1 𝑛 𝑛 ∑ 𝑖=1 𝑦𝑖log(𝑝𝑖) + (1 − 𝑦𝑖) log(1 − 𝑝𝑖) = 𝜙(3.2) Es decir, el generador tendrá como objetivo aumentar el error cometido por el discriminador. Dado que el discriminador desea minimizar el valor de −𝜙, esto equivaldrá a maximizar el valor de 𝜙. Por tanto, el discriminador corresponderá al jugador 1 del juego de suma cero y aplicará la política Maximin (2.1). Análogamente, el generador corresponderá al jugador 2 y la política Minimax (2.2). 3.1.1 Propiedades matemáticas Como vimos en la definición de las GANs, el generador usa como argumento de entrada una variable 𝑧∈ℝ𝑘, el cual será un vector aleatorio 𝑘−𝑑𝑖𝑚𝑒𝑛𝑠𝑖𝑜𝑛𝑎𝑙 que seguirá una distribución de probabilidad que denotaremos por 𝑧. De esta forma, dado que la red neuronal dada por 𝐺es en definitiva una función de dicha variable, podremos decir que esta también seguirá una distribución de probabilidad 𝐺(𝑧) ∼ 𝐺. Así, como vimos en la definición 2.1, nuestro objetivo será que esta última siga la distribución del conjunto de datos, es decir, 𝐺∼𝐷. Sustituyendo lo anterior en la expresión de 𝜙en (3.2) tenemos que: 𝜙=1 𝑛(∑ 𝑦𝑖=1 log(𝐷(𝑥𝑖)) + ∑ 𝑦𝑖=0 log(1 − 𝐷(𝐺(𝑧𝑖)))(3.3)
3. problemas en el entrenamiento de las gans. posibles soluciones 33 Siguiendo las ideas del artículo publicado por Ian Goodfellow [6], veamos ahora las propiedades matemáticas que motivan esta elección de 𝜙: Sea la siguiente función de costes teórica, dada por la suma de esperanzas en 𝐷 y𝑧: Φ = 𝔼𝑥∼𝐷[log 𝐷(𝑥)] + 𝔼𝑧∼𝑧[log(1 − 𝐷(𝐺(𝑧))] (3.4) Por tanto, la solución del juego de suma cero siguiendo las políticas Minmax, cuyos pesos denotaremos por (𝜃∗, 𝜔∗), será: (𝜃∗, 𝜔∗) = 𝑎𝑟𝑔 (m ın 𝜔m ax 𝜃 𝔼𝑥∼𝐷[log 𝐷(𝑥)] + 𝔼𝑧∼𝑧[log(1 − 𝐷(𝐺(𝑧))])(3.5) Como en la práctica no podremos realizar los cálculos de estas esperanzas, realizamos una aproximación numérica, obteniendo como resultado la función 𝜙que vimos anteriormente: 𝔼𝑥∼𝐷[log 𝐷(𝑥)] ⏟⏞⏞⏞⏞⏞⏞⏞⏞⏟⏞⏞⏞⏞⏞⏞⏞⏞⏟ ∑𝑦𝑖=1 log(𝐷(𝑥𝑖)) +𝔼𝑧∼𝑧[log(1 − 𝐷(𝐺(𝑧))] ⏟⏞⏞⏞⏞⏞⏞⏞⏞⏞⏞⏞⏞⏞⏞⏟⏞⏞⏞⏞⏞⏞⏞⏞⏞⏞⏞⏞⏞⏞⏟ ∑𝑦𝑖=0 log(1−𝐷(𝐺(𝑧𝑖)) (3.6) Observación 3.1.Para poder desarrollar los siguientes resultados teóricos tendremos que suponer que estamos ante un problema no paramétrico, es decir, D y G tienen una capacidad infinita de aprendizaje, por tanto, Φen lugar de depender de 𝜃y𝜔, dependerá directamente de las funciones D y G elegidas (Φ(𝐷, 𝐺)). Con esto y asumiendo la continuidad de las variables, podremos estudiar el modelo en el espacio de probabilidades, el cual vendrá dado por las funciones de densidad que denotaremos por 𝑝. Proposición 3.1.Supongamos fijado el generador G, el discriminador óptimo vendrá dado por: 𝐷∗ 𝐺(𝑥) = 𝑝𝐷(𝑥) 𝑝𝐷(𝑥) + 𝑝𝐺(𝑥)∀𝑥∈𝑆𝑢𝑝𝑝(𝑝𝐷) ∪ 𝑆𝑢𝑝𝑝(𝑝𝐺) Donde denotamos por 𝑆𝑢𝑝𝑝 el soporte de las funciones, es decir, dada una función 𝑓∶→ℝ,𝑆𝑢𝑝𝑝(𝑓)={𝑥∈∶𝑓(𝑥)≠0}. Demostración. El criterio de entrenamiento del discriminador D es maximizar Φ, desarrollando las esperanzas usando las funciones de densidad correspondientes: Φ = ∫𝑥 𝑝𝐷(𝑥) log(𝐷(𝑥)) 𝑑𝑥 +∫𝑧 𝑝𝑧(𝑧) log(1 − 𝐷(𝐺(𝑧)) 𝑑𝑥
40 aspectos matemáticos de las redes generativas antagónicas 3.3.4 Elección de parámetros Al comienzo en la introducción a redes neuronales vemos que además de la propia arquitectura de las mismas, existen una gran cantidad de parámetros que podemos cambiar, ya sea las funciones de activación que usemos, la tasa de aprendizaje del algoritmo, el tamaño de las muestras de aprendizaje de cada iteración (batch size), el vector aleatorio 𝑧del que parte el generador y muchos otros parámetros más que no hemos visto. Sin embargo, la elección de estos parámetros afecta muchísimo al aprendizaje de la GANs, haciendo que sea fundamental elegirlos correctamente, a pesar de que no tengamos ningún criterio más que pruebas heurísticas de ensayo y error. 3.4 Posibles soluciones, Wassertein GAN La Wassertein GAN, abreviado como WGAN es una de las primeras soluciones a los problemas de estabilidad en el entrenamiento de las GANs, presentado el 26 de enero de 2017 [2], veamos a continuación las ideas presentadas por sus autores, donde en palabras de los mismos, introduciendo unos pequeños cambios en el algoritmo de las GANs, conseguiremos mejorar la estabilidad del algoritmo, deshacernos de problemas como el colapso del generador y obtener una función de costes que nos informe de la evolución del aprendizaje. 3.4.1 La métrica de de Wassertein Como vimos en la demostración del teorema 3.1, la primera aproximación Minimax está relacionada con las funciones 𝐾𝐿 y𝐽𝑆𝐷, usadas para cuantificar la similitud entre distribuciones probabilísticas, en este caso, nuestra función de costes tendrá relación con la siguiente medida: Definición 3.2. Se define la métrica de Wassertein 𝑊(,)para dos distribuciones ysobre un espacio de probabilidad como: 𝑊(,) = ınf 𝛾∈Γ ∫×∥𝑥−𝑦∥𝑑𝛾(𝑥, 𝑦) = ınf 𝛾∈Γ 𝔼(𝑥,𝑦)∼𝛾[∥𝑥−𝑦∥] Donde Γes el conjunto de posibles vectores aleatorios en ×que tienen como distribuciones marginales yrespectivamente.
3. problemas en el entrenamiento de las gans. posibles soluciones 41 Definición 3.3. Antes de adentrarnos en los resultados teóricos, recordemos el concepto de funciones Lipschitz: Se dice que una función 𝑓∶→entre dos espacios métricos (,‖‖)y (,‖‖)es 𝐾-lipschitziana (o simplemente lipschitziana si no es necesario especificar dicho valor) si existe una constante 𝐾 > 0tal que ‖𝑓(𝑥) − 𝑓(𝑦)‖≤ 𝐾‖𝑥−𝑦‖∀𝑥, 𝑦 ∈. Se dice que una función 𝑓∶→entre dos espacios métricos (,‖‖)y (,‖‖)es localmente lipschitziana si para todo 𝑧∈existe un entorno abierto 𝑈𝑧y una constante 𝐾(𝑧)>0tal que ‖𝑓(𝑥)−𝑓(𝑦)‖≤𝐾(𝑥)‖𝑥−𝑦‖∀𝑥, 𝑦 ∈𝑈𝑧. Veamos ahora el siguiente teorema, tomado de [1], el cual es fundamental para entender el interés de la elección de esta medida: Teorema 3.2. Sea 𝑟una distribución sobre un espacio compacto . Sea una variable aleatoria continua sobre otro espacio . Sea 𝑔∶×ℝ𝑑→una función, la cual denotaremos por 𝑔𝜔(𝑧)donde 𝑧es el primer argumento y 𝜔el segundo. Denotando por 𝜔la distribución dada por 𝑔𝜔(), entonces: 1. Si 𝑔es continua en 𝜔, también lo es 𝑊(𝑟,𝜔). 2. Si g es localmente Lipschitz, y cuya constante de Lipschitzianidad verifica que 𝔼[𝐿(𝜔, 𝑧)] ≤∞, entonces 𝑊(𝑟,𝜔)es continua y diferenciable casi por doquier, es decir, salvo en un conjunto de puntos de medida nula. 3. Las afirmaciones anteriores son falsas para la divergencia de Kullback-Leibler y Jensen–Shannon. Demostración. Sea 𝜔y𝜔′dos vectores de parámetros en ℝ𝑑. Tratemos primeramente de acotar 𝑊(𝜔,′ 𝜔). Usando que el acople 𝛾dado por (𝑔𝜔(), 𝑔𝜔′()) está claramente en Γy usando la definición de 𝑊dada en 3.2 obtenemos la siguiente cota: 𝑊(𝜔,′ 𝜔)≤∫×‖𝑥−𝑦‖𝑑𝛾 (3.14) =𝔼(𝑥,𝑦)∼𝛾[∥𝑥−𝑦∥](3.15) =𝔼[‖(𝑔𝜔(𝑧) − 𝑔𝜔′(𝑧))‖](3.16) Si 𝑔es continua en 𝜔, entonces ‖(𝑔𝜔(𝑧)−𝑔𝜔′(𝑧))‖𝜔→𝜔′ ←←←←←←←←←←←←←←←←←←←←→ 0punto a punto como función de 𝑧. Ahora bien, usando que es un espacio compacto, existirá una constante 𝑀tal que ‖(𝑔𝜔(𝑧) − 𝑔𝜔′(𝑧))‖≤𝑀para cualquier elección de 𝜔, 𝜔′y𝑧. Por tanto podremos
42 aspectos matemáticos de las redes generativas antagónicas aplicar el teorema de la convergencia dominada de Lebesgue para la función ‖(𝑔𝜔(𝑧)− 𝑔𝜔′(𝑧))‖en el cálculo de la esperanza dado en (3.16): l ım 𝜔→𝜔′ 𝔼[‖(𝑔𝜔(𝑧) − 𝑔𝜔′(𝑧))‖]= l ım 𝜔→𝜔′∫‖(𝑔𝜔(𝑧) − 𝑔𝜔′(𝑧))‖𝑑𝑧 =∫l ım 𝜔→𝜔′(‖(𝑔𝜔(𝑧) − 𝑔𝜔′(𝑧))‖)𝑑𝑧 =∫0𝑑𝑧 = 0 Por último, usando que la medida de Wassertein es una métrica, podemos usar la desigualdad triangular y obtener el primer resultado: |𝑊(𝑟,𝜔) − 𝑊(𝑟,′ 𝜔)|≤𝑊(𝜔,𝜔′)𝜔→𝜔′ ←←←←←←←←←←←←←←←←←←←←→ 0(3.17) Continuemos con el segundo apartado, si g es localmente Lipschitz, entonces dado un par (𝜔, 𝑧)existe una constante 𝐿(𝜔, 𝑧)y un abierto 𝑈 ⊂ ×ℝ𝑑que contiene a (𝜔, 𝑧) tal que para todo (𝜔′, 𝑧′) ∈ 𝑈se verifica que: ‖(𝑔𝜔(𝑧) − 𝑔𝜔′(𝑧′))‖≤𝐿(𝜔, 𝑧)(‖𝜔−𝜔′‖+‖𝑧−𝑧′‖) Escogiendo 𝑧=𝑧′y tomando esperanza a ambos lados de la desigualdad tenemos: 𝔼[‖(𝑔𝜔(𝑧) − 𝑔𝜔′(𝑧))]‖≤‖𝜔−𝜔′‖𝔼[𝐿(𝜔, 𝑧)]∀ (𝜔′, 𝑧) ∈ 𝑈(3.18) Definamos ahora 𝑈𝜔= {𝜔′|(𝜔′, 𝑧) ∈ 𝑈}, como U es abierto, por tanto 𝑈𝜔también lo es. Usando ahora que 𝔼[𝐿(𝜔, 𝑧)] ≤∞, podemos definir 𝐿(𝜔) = 𝔼[𝐿(𝜔, 𝑧)]. Usando las desigualdades dadas en (3.17) y (3.18) tenemos por tanto que 𝑊(𝑟,𝜔) es localmente Lipschitz. Por tanto continua y diferenciable casi por doquier por el teorema de Rademacher, cuya demostración podemos consultar en la página 18 de [8]: |𝑊(𝑟,𝜔) − 𝑊(𝑟,′ 𝜔)|≤𝑊(𝜔,𝜔′)≤𝐿(𝜔)‖𝜔−𝜔′‖∀𝜔′∈𝑈𝜔 Para el tercer punto basta ver un contraejemplo, como el dado por [2]: Sea 𝑍∼𝑈[0,1] la distribución uniforme en el intervalo unidad. Definamos la función 𝑔∶×ℝ→[0,1]2como 𝑔𝜔(𝑧) = (arctan 𝜔, 𝑧). Por tanto, para cada 𝜔∈ℝ obtenemos 𝜔, la distribución uniforme a lo largo de la línea vertical {(𝑥, 𝑦)|𝑥= arctan 𝜔, 𝑦 ∈ [0,1]}. Tomando 𝑟=0, calculemos las métricas anteriores en cada caso para ver que no se verifican ni la continuidad ni la lipchitzianidad a pesar de que
3. problemas en el entrenamiento de las gans. posibles soluciones 43 g cumple las condiciones impuestas. ∙𝐽𝑆𝐷(0,𝜔) = ⎧ ⎪ ⎨ ⎪ ⎩ log 2 𝑠𝑖 𝜔 ≠0 0𝑠𝑖 𝜔 = 0 ∙𝐾𝐿(0,𝜔) = 𝐾𝐿(𝜔,0) = ⎧ ⎪ ⎨ ⎪ ⎩ +∞ 𝑠𝑖 𝜔 ≠0 0𝑠𝑖 𝜔 = 0 ∙𝑊(0,𝜔) = |arctan 𝜔| Gracias a esto tenemos el siguiente resultado fundamental: Corolario 3.1.Sea 𝑔𝜔una red neuronal parametrizada por 𝜔y𝑧∼𝑧un vector aleatorio tal que 𝔼𝑧∼𝑧[‖𝑧‖]≤∞. Si denotamos por 𝜔a la distribución obtenida a partir de 𝑔𝜔(𝑧), entonces se verifica que 𝑊(𝑟,𝜔)es continua y diferenciable casi por doquier, es decir, salvo en un conjunto de puntos de medida nula. Demostración. Para demostrar este resultado basta verificar las afirmaciones realizadas sobre 𝑔𝜔del segundo apartado del teorema. Para ello basta ver que 𝑔𝜔es Lipschitz, y por tanto se tiene el resultado. Al ser 𝑔𝜔una red neuronal, es una composición de transformaciones afines (la suma y multiplicación por los pesos de las neuronas) y funciones no lineales (las funciones de activación como ReLu, sigmoide,...) las cuales son todas Lipschitz, por tanto la función resultante es Lipschitz y tenemos el resultado. A razón de este último resultado, vemos que resulta muy interesante basar nuestra función de costes en esta métrica gracias a su mayor regularidad, sin embargo, a pesar de las buenas propiedades de la métrica de Wassertein, esta no puede aplicarse tal cual, pues en su definición 3.2, calcular el ínfimo en el conjunto de posibles vectores aleatorios Γes intratable computacionalmente. Por ello haremos uso del siguiente resultado fundamental sobre esta métrica, cuya demostración es conocida y podemos consultar en [23]:
44 aspectos matemáticos de las redes generativas antagónicas Teorema 3.3 (Kantorovich-Rubinstein). 𝑊(,) = ınf 𝛾∈Γ 𝔼(𝑥,𝑦)∼𝛾[∥𝑥−𝑦∥]= sup ‖ℎ‖𝐿≤1[𝔼𝑥∼[ℎ(𝑥)] − 𝔼𝑦∼[ℎ(𝑦)]] Donde en el supremo denotamos por ‖ℎ‖𝐿≤1a las funciones ℎ∶→ℝque son 1-Lipschitz, es decir, contractivas. Observación 3.4.Observando esta última expresión, dados 𝑟y𝜔como en el enunciado del teorema 3.2, tenemos la siguiente forma de calcular su métrica de Wassertein: 𝑊(𝑟,𝜔) = sup ‖ℎ‖𝐿≤1[𝔼𝑥∼𝑟[ℎ(𝑥)] − 𝔼𝑧∼𝑧[ℎ(𝑔𝜔(𝑧))]] En el siguiente teorema veremos un resultado fundamental de existencia de solución y una propiedad sobre el gradiente, que nos será útil en el cálculo de dicha solución: Teorema 3.4. Sea 𝑟una distribución cualquiera, 𝑧una variable aleatoria de distribución 𝑧y𝜔la distribución obtenida de 𝑔𝜔(𝑧), una función que satisface la segunda condición del teorema 3.2, entonces existe una solución 𝑓∶→ℝdel problema: m ax ‖𝑓‖𝐿≤1[𝔼𝑥∼𝑟[𝑓(𝑥)] − 𝔼𝑥∼𝜔[𝑓(𝑥)]] Y además el siguiente gradiente está bien definido: ∇𝜔𝑊(𝑟,𝜔)=−𝔼𝑧∼𝑧[∇𝜔𝑓(𝑔𝜔(𝑧))] Demostración. Definamos la siguiente función: 𝑉( 𝑓, 𝜔) = 𝔼𝑥∼𝑟[ 𝑓(𝑥)] − 𝔼𝑥∼𝜔[ 𝑓(𝑥)] (3.19) =𝔼𝑥∼𝑟[ 𝑓(𝑥)] − 𝔼𝑧∼𝑧[ 𝑓(𝑔𝜔(𝑧))] (3.20) Donde 𝑓∈= { 𝑓∶→ℝ𝑡𝑎𝑙 𝑞𝑢𝑒 𝑓∈0() ∩ ∞()𝑦‖ 𝑓‖𝐿≤1}. El conjunto de funciones continuas, acotadas y contractivas. Gracias al teorema 3.3 tenemos la primera afirmación del teorema pues sabemos que existe una función 𝑓∈tal que: 𝑊(𝑟,𝜔) = sup 𝑓∈𝑉( 𝑓, 𝜔) = 𝑉(𝑓, 𝜔) Definamos ahora ∗(𝜔) = {𝑓∈∶𝑉(𝑓, 𝜔) = 𝑊(𝑟,𝜔)}. Por lo anterior ∗(𝜔) es un conjunto no vacío para todo 𝜔, luego tomando 𝑓∈∗(𝜔)obtenemos: ∇𝜔𝑊(𝑟,𝜔)=∇𝜔𝑉(𝑓, 𝜔)(3.21) = ∇𝜔[𝔼𝑥∼𝑟[𝑓(𝑥)] − 𝔼𝑧∼𝑧[𝑓(𝑔𝜔(𝑧))]](3.22) = −∇𝜔𝔼𝑧∼𝑧[𝑓(𝑔𝜔(𝑧))] (3.23)
3. problemas en el entrenamiento de las gans. posibles soluciones 45 Bajo la condición de que los términos anteriores estén bien definidos, el resto de la prueba consistirá en demostrar que la siguiente igualdad es cierta cuando el miembro de la derecha esté bien definido: −∇𝜔𝔼𝑧∼𝑧[𝑓(𝑔𝜔(𝑧))] = −𝔼𝑧∼𝑧[∇𝜔𝑓(𝑔𝜔(𝑧))] Dado que 𝑓∈, por tanto 1-Lipschitz y 𝑔𝜔es una función localmente contractiva, la composición 𝑓(𝑔𝜔(𝑧)) también será localmente Lipschitz respecto a (𝜔, 𝑧), con constante de lipschitzianidad 𝐿(𝜔, 𝑧), la misma constante que 𝑔𝜔. Volviendo a usar el teorema de Rademacher como en la demostración del teorema 3.2, 𝑓(𝑔𝜔(𝑧)) también será diferenciable casi por doquier, por tanto, el conjunto 𝐴= {(𝜔, 𝑧) ∶ 𝑓(𝑔𝜔(𝑧)) 𝑛𝑜 𝑒𝑠 𝑑𝑖𝑓𝑒𝑟𝑒𝑛𝑐𝑖𝑎𝑏𝑙𝑒}es de medida nula, luego el conjunto 𝐴𝜔= {𝑧∶ (𝜔, 𝑧) ∈ 𝐴}también. Por tanto, dado un 𝜔 tal que 𝐴𝜔 sea de medida nula, entonces ∇𝜔𝑓(𝑔𝜔(𝑧))|𝜔 está bien definido para casi todo z. Aplicando esto y la condición sobre 𝑔𝜔tenemos la siguiente desigualdad: 𝔼𝑧∼𝑧[‖∇𝜔𝑓(𝑔𝜔(𝑧))|𝜔‖]≤𝔼𝑧∼𝑧[𝐿(𝜔, 𝑧)] <∞ Luego 𝔼𝑧∼𝑧[‖∇𝜔𝑓(𝑔𝜔(𝑧))|𝜔‖]está bien definido para casi todo 𝜔. Ahora, gracias a la linealidad de la esperanza, tenemos la siguiente igualdad para el cociente de incrementos: 𝔼𝑧∼𝑧[𝑓(𝑔𝜔(𝑧))] − 𝔼𝑧∼𝑧[𝑓(𝑔𝜔(𝑧))] − ⟨(𝜔−𝜔),𝔼𝑧∼𝑧[∇𝜔𝑓(𝑔𝜔(𝑧))|𝜔]⟩ ‖𝜔−𝜔‖ =𝔼𝑧∼𝑧[𝑓(𝑔𝜔(𝑧)) − 𝑓(𝑔𝜔(𝑧)) − ⟨(𝜔−𝜔),∇𝜔𝑓(𝑔𝜔(𝑧))|𝜔⟩ ‖𝜔−𝜔‖](3.24) Por ser 𝑓(𝑔𝜔(𝑧)) diferenciable casi por doquier, el integrando en la esperanza tiende a 0 si 𝜔→𝜔. Y además está acotado: ∥𝑓(𝑔𝜔(𝑧)) − 𝑓(𝑔𝜔(𝑧)) − ⟨(𝜔−𝜔),∇𝜔𝑓(𝑔𝜔(𝑧))|𝜔⟩ ‖𝜔−𝜔‖∥ ≤∥𝑓(𝑔𝜔(𝑧)) − 𝑓(𝑔𝜔(𝑧)) ∥ + ∥ ⟨(𝜔−𝜔),∇𝜔𝑓(𝑔𝜔(𝑧))|𝜔⟩∥ ‖𝜔−𝜔‖ ≤‖𝜔−𝜔‖𝐿(𝜔, 𝑧) + ‖𝜔−𝜔‖‖∇𝜔𝑓(𝑔𝜔(𝑧))|𝜔‖ ‖𝜔−𝜔‖≤2𝐿(𝜔, 𝑧) Esto se tiene gracias a la aplicación de la desigualdad triangular, la lipschitzianidad de 𝑓(𝑔𝜔(𝑧)) y la desigualdad de Cauchy-Schwarz. Por tanto, como 𝔼𝑧∼𝑧[2𝐿(𝜔, 𝑧)] <∞,
46 aspectos matemáticos de las redes generativas antagónicas podremos aplicar el teorema de la convergencia dominada de Lebesgue en el segundo miembro de la ecuación (3.24) tomando límite 𝜔→𝜔 en la integral de la esperanza. Así, debido a que por tanto existe el cociente de incrementos y la unicidad de la derivada podemos concluir con el resultado final: ∇𝜔𝑊(𝑟,𝜔) = −∇𝜔𝔼𝑧∼𝑧[𝑓(𝑔𝜔(𝑧)] = −𝔼𝑧∼𝑧[∇𝜔𝑓(𝑔𝜔(𝑧))] 3.4.2 Aplicación práctica, algoritmo WGAN En el algoritmo WGAN, en analogía a las GANs, tendremos que entrenar dos redes neuronales alternativamente, denominadas crítico y generador, veamos cada una: Crítico Después del desarrollo teórico anterior tenemos que dar una forma de encontrar la función 𝑓que resuelva el problema de maximización dado en la observación 3.4, el correspondiente crítico del algoritmo. Denotando 𝑔𝜔simplemente por G(z), pues a continuación veremos que corresponde a la red neuronal de parámetro 𝜔que determina el generador. Y considerando una familia de funciones parametrizadas {𝑓𝑤}𝑤∈ tal que todas sean 1-Lipschitz, podemos plantearnos el problema simplificado: 𝑊(𝑟,𝜔)=m ax 𝑤∈[𝔼𝑥∼𝑟[𝑓𝑤(𝑥)] − 𝔼𝑧∼𝑧[𝑓𝑤(𝐺(𝑧))]] Gracias al teorema 3.4 sabemos que dicho máximo se alcanza, luego si suponemos que la familia {𝑓𝑤}𝑤∈es lo suficientemente grande, podremos asumir que la solución obtenida en este problema simplificado es muy próxima a la del problema original. De esta forma, la familia que consideraremos vendrá dada a través de una red neuronal D determinada por sus pesos 𝜃, los cuales tendrán que verificar alguna condición para que la red neuronal sea 1-Lipschitz, dicho conjunto de pesos lo denotaremos por . De esta forma, el problema resultante es: 𝑊(𝑟,𝜔)=m ax 𝜃∈[𝔼𝑥∼𝑟[𝐷(𝑥)] − 𝔼𝑧∼𝑧[𝐷(𝐺(𝑧))]] Esta red se denomina crítico, pues en lugar de clasificar (o discriminar) las observaciones asignándoles una probabilidad, este les asigna una puntuación en [−∞,∞].
3. problemas en el entrenamiento de las gans. posibles soluciones 47 Aún así, dado que su papel es análogo al del discriminador, también lo denotaremos por D. Por tanto, la función de costes que el crítico minimizará será: 𝐽𝐷(𝜃, 𝜔)=−(𝔼𝑥∼𝐷[𝐷(𝑥)] − 𝔼𝑧∼𝑧[𝐷(𝐺(𝑥))]) Observando esta expresión podemos ver como el crítico tratar de maximizar la diferencia entre las valoraciones dadas a las observaciones provenientes del conjunto de datos, a las cuales les asignará un valor más alto, y la valoración se las generadas. Por último, para asegurarnos que los pesos 𝜃estén dentro del conjunto , la alternativa propuesta por el autor es acotarlos, es decir, que cada peso esté dentro del intervalo [−𝑐, 𝑐]con c una constante. Usualmente se suelen tomar valores pequeños como 𝑐= 0.01. Generador Veamos ahora como obtendremos el generador. Sea 𝜔la distribución obtenida de la red neuronal dada por el generador, una vez obtenida una aproximación de la distancia de Wasserstein gracias al desarrollo del crítico, esta vendrá dada por: 𝑊(𝐷,𝜔) = 𝔼𝑥∼𝐷[𝐷(𝑥)] − 𝔼𝑧∼𝑧[𝐷(𝐺(𝑥))] Dado que el objetivo del generador es minimizar esta distancia para que sus observaciones generadas sigan la distribución 𝐷, al minimizarla vemos como la variación de los parámetros de 𝜔solo afecta al segundo sumando, luego el problema de minimización correspondiente es: m ın 𝜔−(𝔼𝑧∼𝑧[𝐷(𝐺(𝑥))]) Es decir, el objetivo del generador será obtener la mejor valoración posible, de forma análoga, su función de coste a minimizar como: 𝐽𝐺(𝜃, 𝜔)=−(𝔼𝑧∼𝑧[𝐷(𝐺(𝑥))]) Por último cabe destacar que a la hora del proceso de aprendizaje, el cálculo del gradiente de 𝐽𝐺(𝜃, 𝜔)está dado por el teorema 3.4: ∇𝜔𝐽𝐺(𝜃, 𝜔)=−𝔼𝑧∼𝑧[∇𝜔𝐷(𝐺(𝑧))]
48 aspectos matemáticos de las redes generativas antagónicas 3.4.3 Algoritmo computacional Por último, como hicimos anteriormente, el cálculo de estas esperanzas no es abarcable computacionalmente, y por ello realizamos las siguientes aproximaciones numéricas a cada una. Etiquetando las observaciones 𝑥𝑖como 𝑦𝑖= 1 si proviene del conjunto de datos y 𝑦𝑖= −1 en caso de ser generadas, las funciones de coste en cada caso son: 𝐽𝐷(𝜃, 𝜔)=−1 𝑛 𝑛 ∑ 𝑖=1 𝑦𝑖𝐷(𝑥𝑖) 𝐽𝐺(𝜃, 𝜔)=−1 𝑛 𝑛 ∑ 𝑖=1 𝐷(𝐺(𝑧𝑖)) Donde n corresponderá al número de observaciones que se procesan en cada iteración. De esta forma, el algoritmo de una WGAN resulta en: Sea 𝜃0el valor inicial de los pesos del crítico y 𝜔0el del generador, dada una tasa de aprendizaje 𝛼, una cota de los pesos 𝑐,𝑛el número de observaciones que se procesan en cada iteración y 𝑘el número de iteraciones de entrenamiento del crítico: 1. Durante 𝑘iteraciones aplicar el algoritmo de optimización del error al crítico de la siguiente manera: a) Tomar una muestra {𝑥𝑖}𝑖=𝑛 𝑖=1 del conjunto de datos de entrenamiento. b) Tomar una muestra {𝑧𝑖}𝑖=𝑛 𝑖=1 de la variable aleatoria z. c) Calcular el gradiente ∇𝜃𝐽𝐷(𝜃, 𝜔)=∇𝜃[−1 𝑛∑𝑛 𝑖=1 𝐷(𝑥𝑖) + 1 𝑛∑𝑛 𝑖=1 𝐷(𝐺(𝑧𝑖)]. Cabe notar que aquí ya hemos sustituido el valor de 𝑦𝑖como definimos anteriormente. d) Actualizar los pesos 𝜃utilizando un algoritmo de optimización de redes neuronales, como el de retropropagación, usando el gradiente anteriormente calculado y la tasa de aprendizaje 𝛼. Si alguno de los pesos 𝜃𝑗tiene valor absoluto mayor que 𝑐, su valor se sustituirá por 𝑐si 𝜃𝑗> 𝑐 y análogamente por −𝑐si 𝜃𝑗<−𝑐. 2. Tomar una muestra {𝑧𝑖}𝑖=𝑛 𝑖=1 de la variable aleatoria z. 3. Calcular el gradiente ∇𝜔𝐽𝐺(𝜃, 𝜔)=∇𝜔[−1 𝑛∑𝑛 𝑖=1 𝐷(𝐺(𝑧𝑖))] 4. Actualizar los pesos 𝜔utilizando un algoritmo de optimización de redes neuronales, usando el gradiente anteriormente calculado y la tasa de aprendizaje 𝛼.
3. problemas en el entrenamiento de las gans. posibles soluciones 49 5. Si 𝜔no ha convergido, volvamos al primer paso. En el siguiente capítulo de experimentos veremos un ejemplo del funcionamiento de una WGAN. 3.4.4 Observaciones del algoritmo Cuando estamos entrenando la WGAN vemos como, en general, entrenamos el crítico y generador de forma asimétrica, pues el crítico realiza 𝑘iteraciones del algoritmo de aprendizaje, mientras que el generador solo 1. Aparentemente podría parecer que esto empeoraría más el problema del colapso del generador, sin embargo, gracias a la propiedad de continuidad y diferenciabilicad casi por doquier de la distancia de Wassertein, ocurre todo lo contrario, necesitamos que el crítico esté suficientemente entrenado para que el calculo de la distancia de Wassertein sea adecuado y por tanto, también lo sea el gradiente que usaremos en el aprendizaje del generador. Por otro lado, esta elección de métrica más regular, también mejora la estabilidad de la curva de aprendizaje, ayudando a evitar el fenómeno de oscilación de la función de costes, y gracias a que en cada actualización de costes del generador estamos usando como función de costes una aproximación a la distancia de Wassertein, obtenemos por tanto una buena medida de la evolución del algoritmo, luego estamos ante una función de costes que facilita más información. Por último, en cuanto a la elección de parámetros este algoritmo no es del todo satisfactorio, en palabras del propio autor [2], la cota de los pesos es claramente una forma terrible de asegurar la condición Lipschitz, pues la elección de este parámetro puede afectar enormemente a la convergencia del algoritmo, por ejemplo, acotar los pesos del crítico supone limitar el posible aprendizaje del mismo, y por tanto, la métrica que le suministraremos al generador no podría ser lo suficiente precisa para dar con un aprendizaje adecuado.
56 aspectos matemáticos de las redes generativas antagónicas Figura 4.2: A continuación se define la GAN, como vemos cada red neuronal está formada por una serie de capas, en la que tenemos que destacar conceptos que ya vimos anteriormente como son la tasa de aprendizaje, denotado en el programa por learning_rate y la función de activación usada, en este caso ReLu. Figura 4.3: Tras esto ya podremos realizar el aprendizaje, para este hemos seleccionado que se realicen iteraciones con 64 observaciones en cada una (BATCH_SIZE) y que se realicen un total de 3000 ciclos (EPOCH).
4. implementación y experimentos 57 Una vez realizado el entrenamiento, veamos la evolución de la función de costes, figura 4.4, donde podemos observar como se está estabilizando, entorno a 0.60 para el discriminador y 1.25 para el generador, es decir, estamos cerca del equilibrio de Nash. Además, observando el resultado de las imágenes generadas en la figura 4.5 podemos concluir que el aprendizaje ha sido satisfactorio: Figura 4.4: En este gráfico se representa la función de costes del generador (naranja) y el discriminador (negro).
58 aspectos matemáticos de las redes generativas antagónicas Figura 4.5: En esta imagen vemos muestras tomadas del generador en las iteraciones 1, 100, 500 y 3000, de arriba hacia abajo y de izquierda a derecha respectivamente.
4. implementación y experimentos 59 4.2 Segundo experimento En el segundo experimento que realizamos vamos a ver un ejemplo del comportamiento de una WGAN, dedicada en este caso a imitar las imágenes a color de caballos, las cuales han sido tomadas de la base de datos CIFAR-10, la cual contiene 6000 imágenes de caballos en resolución 32x32 píxeles. Claramente esta tarea es mucho más complicada que la anterior, sin embargo, veremos como esta WGAN diseñada por David Foster [3] realiza un gran trabajo reconociendo patrones como el cielo, la hierba o las patas de los caballos. El código de esta red neuronal se encuentra en el mismo repositorio, teniendo como nombre de archivo 04_02_wgan_cifar_train.ipynb. Figura 4.6: De forma análoga al anterior, ejecutando las primeras líneas ya obtenemos una idea de cuales van a ser las observaciones, en este caso las imágenes a color de caballos. Cabe notar que al pedirle las dimensiones de nuestros datos nos da como resultado (6000,32,32,3), es decir, 6000 imágenes de 32 x 32 píxeles, donde el valor 3 corresponde al color, es decir, cada píxel tiene asociado su valor RGB correspondiente a los colores básicos, la cantidad de rojo, verde y azul de cada píxel.
60 aspectos matemáticos de las redes generativas antagónicas Siguiendo con el desarrollo del código llegamos a la definición de la WGAN, el cual tiene una gran parecido a la descripción del discriminador y generador al caso de las GANs, en este caso, crítico y generador, donde destacamos de nuevo la definición de los parámetros de las redes, como pueden ser la función de activación, leakyReLu o la razón de aprendizaje 𝛼= 0.00005.
4. implementación y experimentos 61 A continuación vemos el código correspondiente al aprendizaje, donde vemos como se definen aspectos fundamentales de la WGAN, en este caso, en N_CRITIC establecemos 5 iteraciones en el proceso de mejora del crítico por cada actualización del generador, y la cota de los pesos CLIP_THRESHOLD, que como sabemos determina el máximo valor absoluto de los pesos del crítico. Por último, obteniendo la evolución de la función de costes vemos como conseguimos una convergencia muy rápida, en torno a la iteración 250 vemos como los costes ya se mantienen muy reducidos:
62 aspectos matemáticos de las redes generativas antagónicas Por último, para ver como se traduce este aprendizaje en las observaciones generadas, tomando una pequeña muestra en distintas iteraciones, vemos como existe una mejora muy notable del aprendizaje. Aunque las imágenes sean aún borrosas por las limitaciones técnicas de este experimento, podemos observar como la WGAN ha conseguido captar conceptos de la imagen tales como la hierva, el cielo o las patas del animal: Figura 4.7: En esta imagen vemos muestras tomadas del generador en las iteraciones 100, 1000, 2000 y 3000, de arriba hacia abajo y de izquierda a derecha respectivamente.
4. implementación y experimentos 63 4.3 Tercer experimento El último experimento que realizaremos será el entrenamiento de una WGAN-GP, en este caso la tarea será generar imágenes a color de caras humanas en resolución 64 x 64, para ello haremos uso de la base de datos CelebA [13], la cual es una colección a gran escala con más de 200000 imágenes de rotros de celebrities internacionales, donde seleccionaremos aquellas que se ajustan a nuestro problema. Figura 4.8: Ejecutando la primera linea de código, tomaremos de la base de datos aquellas imágenes de tamaño 64x64 (de ahí la definición IMAGE_SIZE=64). De la misma forma que el programa anterior, observamos como nuestra base de datos contará con 23288 observaciones, y por ser imágenes a color, vemos como cada observación es un tensor, por cada píxel de la imagen tenemos un vector de 3 componentes asociado al valor RGB del píxel, la cantidad de rojo, verde y azul de cada uno. Figura 4.9: Pidiendo la gráfica de una observación veremos como todos estos valores de cada observaciones son los correspondientes retratos.
64 aspectos matemáticos de las redes generativas antagónicas Figura 4.10: Continuando con el código llegamos a la definición de la WGAN-GP, el cual, como cabe esperar, tiene una gran parecido a la descripción anterior, donde destacamos de nuevo la definición de los parámetros de las redes, como pueden ser la función de activación, leakyRe- Lu, la razón de aprendizaje 𝛼= 0.0002, y sobre todo, coeficiente de la penalización del gradiente, grad_weight, al cual le asigna un valor 𝜆= 10. Con todo esto ya podremos comenzar el entrenamiento, en este caso, realizando un total de 2000 ciclos (EPOCHS = 2000) y tomando 5 de iteraciones de actualización del crítico por cada actualización del generador (N_CRITIC = 5).
4. implementación y experimentos 65 Estudiando el comportamiento en las gráficas de la función de costes y el valor de la penalización del gradiente, podemos observar como el proceso ha sido muy estable y convergente. Figura 4.11: A la izquierda, la imagen de la evolución de la función de costes, donde los valores rojos y verdes corresponden a la valoración del crítico a observaciones reales y generadas respectivamente, el color negro el valor ponderado de estas y el color amarillo a la función de costes del generador. A la derecha tenemos la evolución de la penalización del gradiente. Para ejemplificar esto último, y ver como se traduce este aprendizaje en las observaciones generadas, tomando una pequeña muestra en distintas iteraciones, vemos como existe una mejora muy notable del aprendizaje. Aunque las imágenes sean aún borrosas por no poder realizar más ciclos, dada las limitaciones computacionales de Google Collab, podemos observar como la WGAN-GP ha conseguido adquirir la destreza necesaria para representar elementos como el pelo, los ojos o la boca. Además, tenemos que destacar la variedad de las imágenes, haciendo que no podamos apreciar ningún indicio de problemáticas como el colapso del generador: