En el
artículo anterior, utilizando el ejemplo de los modelos de juguetes, traté de analizar por qué, de hecho, somos capaces de entrenar efectivamente a las GAN. Ahora trataremos de resumir algunos de los resultados y, lo más importante, trataremos de analizar cómo la arquitectura de las redes neuronales afecta la estabilidad del proceso de aprendizaje.
Introduccion
Puede ver el proceso de aprendizaje GAN como un proceso para minimizar el límite inferior de divergencia o como un sistema dinámico que consiste en un discriminador y un generador. El primer enfoque está muy bien desarrollado, si alguien interesado puede encontrar muchos trabajos interesantes sobre este tema, daré solo lo más significativo en mi opinión:
f-GAN ,
WGAN . Por otro lado,
The Numerics of GANs, Lars Mescheder et al, 2017 mostraron que no se puede mirar una GAN solo desde una posición de minimizar la divergencia (aunque este es el objetivo principal), pero aún es necesario tener en cuenta las propiedades de un sistema dinámico. Nuestro objetivo es combinar estos dos enfoques y ver qué propiedades teóricas tendrán las trayectorias de un sistema tan dinámico.
A continuación, consideraremos una forma bastante general del funcional GAN (objetivo GAN).
I( theta, phi)= intpd(x)fD(D theta(x))dx + intp( epsilon)fG(D theta(G phi( epsilon))d epsilon
donde
theta - parámetros discriminadores,
phi - parámetros del generador. Y también suponemos que el generador y el discriminador son funciones dos veces diferenciables.
El proceso de aprendizaje puede formularse matemáticamente como:
\ underset {\ phi} {min} \ {\ underset {\ theta} {max} I (\ theta, \ phi) \}
\ underset {\ phi} {min} \ {\ underset {\ theta} {max} I (\ theta, \ phi) \}
Punto de descanso
A pesar de la gran cantidad de trabajo en GAN, la cuestión de la existencia de un punto de reposo permanece abierta. Ahora intentaremos responder esta pregunta.
Suponga (
Supuesto 1 ) que para cualquier generador existe un discriminador que maximiza
I( theta, phi)
Es decir, función
\ theta_ {opt} = \ underset {\ theta} {argmax} \ {I (\ theta, \ phi) \}
\ theta_ {opt} = \ underset {\ theta} {argmax} \ {I (\ theta, \ phi) \}
definido para cualquier valor
phi . Aunque es posible y ambiguo, es decir, hay muchos discriminadores óptimos diferentes. Llamaremos a todo el conjunto de discriminadores óptimos "reparametrización", y el conjunto
\ {\ theta_ {opt} \}\ {\ theta_ {opt} \} conjunto de reparametrización discriminante. Hagamos una pequeña aclaración: por máximo queremos decir no solo un máximo global, sino cualquier máximo local.
Matemáticamente
thetaopt determinado por el sistema de ecuaciones:
nabla thetaI( thetaopt, phi)=0
nabla theta2I( theta, phi) preceq0
Aunque si el generador y el discriminador son redes neuronales, y entrenamos al generador de imágenes, este supuesto no se cumple. En los siguientes artículos mostraré cómo se puede lograr esto con la ayuda de un simple regularizador, pero por ahora tengo que creerlo.
El segundo supuesto (
Supuesto 2 ) es que para cualquier cambio infinitamente pequeño en los parámetros del generador, existe un discriminador óptimo infinitamente cercano al actual. Puede intentar averiguar cuándo se hace esto para redes neuronales, pero me parece que este es un requisito intuitivo y con una alta probabilidad de que se cumpla para redes bastante flexibles.
Matemáticamente, este requisito se puede formular de la siguiente manera: un sistema de ecuaciones
nabla theta2I( thetaopt, phi)d theta=− nabla theta phiI( thetaopt, phi)d phi ;(1)
tiene decisiones
d theta en cualquier
d phi .
Esta condición se obtiene fácilmente de la descomposición.
nabla thetaI( thetaopt, phi)=0 en una fila de taylor.
Ahora mostramos que, bajo el
supuesto 2, el gradiente del generador
nabla phiI( thetaopt, phi) no cambia si nos movemos a lo largo del conjunto de reparametrización discriminador. Moverse a lo largo del conjunto de reparametrización matemáticamente significa que
delta theta pertenece al núcleo
nabla theta2I( theta, phi) es decir:
nabla thetaI( thetaopt, phi)= nabla thetaI( thetaopt+d thetaopt, phi)=0
Expandamos en una serie de Taylor:
nabla phiI( thetaopt+d thetaopt, phi)= nabla phiI( thetaopt, phi)+ nabla phi thetaI( theta, phi)d thetaopt
Desde donde, para que el gradiente no cambie, es necesario que
d thetaopt pertenecido al núcleo
nabla phi thetaI( theta, phi) . Pero si
d thetaopt pertenece al núcleo
nabla theta2I( theta, phi) y (1) sostiene, luego
d thetaopt pertenece al núcleo
nabla phi thetaI( theta, phi) . Esto es fácil de mostrar al multiplicar (1) por
d thetaopt y considerando que
d phi puede ser cualquiera:
d thetaTopt nabla theta2I( thetaopt, phi)d theta=−d thetaTopt nabla theta phiI( thetaopt, phi)d phi=0
Acabamos de demostrar el maravilloso hecho de que el gradiente
\ nabla_ \ phi \ underset {\ theta} {max} \ {I (\ theta, \ phi) \}\ nabla_ \ phi \ underset {\ theta} {max} \ {I (\ theta, \ phi) \} no importa cual sea seleccionado
theta del conjunto de reparametrización del discriminador, lo que significa
underset thetamaxI( theta, phi) es una función diferenciable de
phi y podemos minimizarlo usando métodos de optimización de gradiente.
¿Qué se puede decir sobre el mínimo de esta función? Desafortunadamente, no se pueden sacar conclusiones generales hasta ahora. Tenemos que hacer una suposición más (
suposición 3 ) sobre las propiedades del discriminador, a saber
underset thetamaxI( theta, phi) geq0 . A partir del análisis de esteras, sabemos que una función continua delimitada a continuación alcanza su valor mínimo o existen secuencias de puntos que disminuyen de forma monótona (es decir, la función alcanza su mínimo en el infinito).
La suposición 3 establece que no importa desde qué punto comenzamos a entrenar al discriminador (inicializando la red neuronal), el discriminador óptimo siempre asigna un valor mayor (o igual) (en promedio) a los datos que las muestras del generador y cualquier discriminador que haga lo contrario no puede ser óptimo. En mi opinión, esta suposición es muy lógica internamente y las redes neuronales suficientemente flexibles deberían satisfacerla. Por cierto, es fácil demostrar que el discriminador lineal satisface este supuesto.
"Trayectoria óptima"
Acabamos de descubrir que si el discriminador satisface suposiciones suficientemente "suaves", entonces el punto de reposo existe o está ubicado en el infinito y podemos abordarlo asintóticamente.
Para hacer esto, supongamos que
theta y
phi parámetros actuales, y el discriminador está entrenado para converger. Ahora cambiamos un poco el generador (
phik+1= phik+d phi ) para que
\ underset {\ theta} {argmax} \ {I (\ theta, \ phi) \}\ underset {\ theta} {argmax} \ {I (\ theta, \ phi) \} disminuye - por ejemplo, damos un paso de descenso en gradiente. ¿Cómo debemos actualizar el discriminador? La respuesta viene dada por la fórmula (1):
d theta=− nabla theta2I( theta, phi) dagger nabla theta phiI( theta, phi)d phi(2)
donde
nabla theta2I( theta, phi) dagger Es una matriz pseudoinversa.
Para ser matemáticamente riguroso, entonces la fórmula (2) determina el hiperplano tangente a la superficie en el espacio de parámetros en el que viven los discriminadores óptimos. Llamaremos a esta superficie "óptima".
Pero, ¿qué sucederá si comenzamos desde un punto muy cercano, pero aún así el discriminador allí no era óptimo? Obviamente, nuestra fórmula describe trayectorias completamente impredecibles, porque se obtuvo solo para discriminadores óptimos. Tratemos de arreglar esta situación. En este caso, sería lógico moverse no solo en paralelo a la superficie "óptima", sino también hacia ella. Obviamente, un paso en la dirección indicada por el método de Newton es bastante adecuado para esto. Nuestra fórmula final se verá así:
d theta=− nabla theta2I( theta, phi) dagger[ nabla thetaI( theta, phi)+ nabla theta phiI( theta, phi)d phi](3)
¿Qué acabamos de hacer? Primero, tenga en cuenta que en una superficie óptima
nabla thetaI( theta, phi)=0 es decir si si
theta fue el discriminador entrenado para la convergencia, entonces no cambiamos la trayectoria. Por otro lado, si comenzamos en algún lugar cerca del punto "óptimo", entonces el término adicional nos "arrastrará" hacia la trayectoria "óptima". Es decir, hicimos la trayectoria "óptima" resistente al ruido.
Lamentablemente, no puedo demostrarlo matemáticamente. Pero no lo necesitamos. Echemos un vistazo más de cerca a la fórmula (3), se puede reescribir en la forma:
d theta=− nabla theta2I( theta, phi) dagger nabla thetaI( theta, phi+d phi)
¿No se parece a nada? Casi se parece al método de Newton. Esto sugiere que las actualizaciones alternativas (en la literatura en inglés usan alternativas) de los parámetros generador y discriminador, donde el discriminador se actualiza mediante el método de Newton (de hecho, no tenemos que dar el paso completo de Newton, pero podemos dar un pequeño paso en la dirección indicada por el método de Newton), y el generador, en general, puede dar un paso en cualquier dirección, lo principal es disminuir
\ underset {\ theta} {argmax} \ {I (\ theta, \ phi) \}\ underset {\ theta} {argmax} \ {I (\ theta, \ phi) \} Es una buena aproximación del movimiento a lo largo de una trayectoria óptima.
Por cierto, quizás aquí es donde radica el éxito de Adam en el entrenamiento de GAN. Después de todo, es bien sabido que Adam intenta aproximar Hessian y usa esta información para el paso de gradiente (aproxima el método de Newton).
Estabilidad de la trayectoria
Para analizar la estabilidad de las trayectorias, utilizaremos las mismas herramientas que usaron los chicos en
¿Qué métodos de capacitación para GAN realmente convergen? . Quien tenga tiempo, le recomiendo que entienda bien este trabajo, vale la pena.
Creo que el principal inconveniente de este artículo es que los autores analizan la estabilidad del sistema en un punto de descanso, que simplemente no existe para la mayoría de las GAN reales (para ejemplos de juguete en 2D o 3D, por supuesto, esto es posible). Quiero decir, en general, no hay un punto de descanso, y el punto en el que el generador tiene la misma distribución que los datos, y el discriminador es idéntico a 0. Por lo tanto, no analizaremos la estabilidad del sistema en el punto de descanso, vamos a tomar un camino un poco diferente, trataremos de analizar la estabilidad de las trayectorias del sistema. . Aunque este análisis puede transferirse fácilmente al punto de descanso, el punto de descanso también es una trayectoria.
Como las trayectorias estudiadas, elegimos las trayectorias obtenidas durante el entrenamiento por descenso de gradiente. ¿Por qué es esto importante? En primer lugar, descubrimos cuál es la trayectoria "óptima" y descubrimos que se puede aproximar bien mediante actualizaciones discriminatorias en la dirección indicada por el método de Newton. Y el método de Newton es el método de mayor gradiente que usa información de segundas derivadas para ajustar la dirección. Pero la razón principal por la que estamos haciendo esto es muy simple, porque podemos hacerlo. Cualquier desviación de esto lleva a fórmulas tan locas que es simplemente imposible entender algo allí.
La forma estándar de analizar la estabilidad de las trayectorias es analizar modelos linealizados. Similar a los autores de
¿Qué métodos de capacitación para GAN realmente convergen? Exploraremos las trayectorias jacobianas:
A = \ begin {bmatrix} \ nabla_ \ theta ^ 2 I (\ theta, \ phi) & \ nabla _ {\ theta \ phi} ^ 2 I (\ theta, \ phi) \\ - \ nabla _ {\ theta \ phi} ^ 2 I (\ theta, \ phi) ^ T & - \ nabla_ \ phi ^ 2 I (\ theta, \ phi) \ end {bmatrix}
A = \ begin {bmatrix} \ nabla_ \ theta ^ 2 I (\ theta, \ phi) & \ nabla _ {\ theta \ phi} ^ 2 I (\ theta, \ phi) \\ - \ nabla _ {\ theta \ phi} ^ 2 I (\ theta, \ phi) ^ T & - \ nabla_ \ phi ^ 2 I (\ theta, \ phi) \ end {bmatrix}
J=I+ etaA
donde
I Es la matriz de identidad.
Suponemos que el discriminador, aunque no es óptimo, está lo suficientemente cerca del óptimo para ser realizado
nabla theta2I( theta, phi) preceq0 . Y también que el regularizador (ya he mencionado que en GAN real el discriminador no tiene un punto óptimo y que debemos crear este punto con la ayuda del regularizador) no tiene envidia del generador. Voy a adelantarme un poco: el mejor regularizador que encontramos en la práctica depende, pero para nuestros estudios teóricos esta suposición no nos limita tanto.
Para lo que sigue, necesitamos un hecho elemental sobre las matrices: si
nabla theta2I( theta, phi) preceq0 y
nabla phi2I( theta, phi) succeq0 , entonces hay
eta>0 ¿Cuál es la norma espectral de la matriz?
J será menor o igual a 1.
La prueba es elemental: escribimos
JTJ :
JTJ=[I+ etaA]T[I+ etaA]=I+ eta[A+AT+ eta(ATA)]
pero:
A + A ^ T = \ begin {bmatrix} 2 \ nabla_ \ theta ^ 2 I (\ theta, \ phi) & 0 \\ 0 & -2 \ nabla_ \ phi ^ 2 I (\ theta, \ phi) \ end {bmatrix}
Por lo tanto, debido a la continuidad de los valores propios, es obvio que uno puede elegir tales
eta>0 que los valores propios
JTJ será menor o igual a 1. De esto se deduce el hecho de que necesitamos que
left |J right | leqslant1 .
Sabemos que en nuestra trayectoria
nabla theta2I( theta, phi) preceq0 realizado (ya que la trayectoria es "óptima") y si hubiera
nabla phi2I( theta, phi) succeq0 entonces cualquier trayectoria (incluido el punto de equilibrio) sería estable, es decir, con una ligera desviación de la trayectoria, el sistema tendería a volver a ella. Esto es obvio porque cualquier trayectoria discreta puede representarse como el producto de los jacobianos, y el producto de matrices con una norma menor o igual a 1 no puede tener una norma mayor que 1.
Pero muchos hechos dicen que para GAN este no es siempre el caso. Un ejemplo sorprendente es el modo de colapso, que, además, no siempre ocurre y no para todos los modelos. Sostengo que la complejidad del entrenamiento de GAN está relacionada con dos hechos: no existe un discriminador óptimo (tratado por un regularizador) y el jacobiano del generador no es una matriz definida no negativa. Ahora trataremos de comprender cómo, si no se elimina por completo el segundo problema, al menos se minimiza su efecto sobre la sostenibilidad.
Para hacer esto, escribimos el jacobiano del generador. Constará de tres componentes:
J1= intp( epsilon)f″G(D theta(G phi( epsilon)))[ nabla phiG phi( epsilon) nablaxD theta(G phi( epsilon))][ nabla phiG phi( epsilon) nablaxD theta(G phi( epsilon))]Td epsilon
J2= intp( epsilon)f′G(D theta(G phi( epsilon))) nabla phi2G phi( epsilon) nablaxD theta(G phi( epsilon))d epsilon
J3= intp( epsilon)f′G(D theta(G phi( epsilon))) nabla phiG phi( epsilon)T nabla2xD theta(G phi( epsilon)) nabla phiG phi( epsilon)d epsilon
Dado que las expresiones para el jacobiano son muy complejas y es imposible ver ningún tipo de estructura, todas nuestras acciones tendrán como objetivo garantizar que estas matrices estén lo más cerca posible de 0.
J1 se puede ver que este término es muy fácil de restablecer, solo seleccione la función
fG tal que
f″G(x)=0 o para que el "punto de operación" esté en la región donde la segunda derivada está cerca de 0. Por cierto, la elección de la función
f″G(x)=0 Cumple con WGAN. ¿WGAN es conocido por su estabilidad?
Los otros dos términos solo pueden ser influenciados por la arquitectura de las redes neuronales. Por ejemplo, se anulan en el caso de un generador lineal y un discriminador (las segundas derivadas son cero). Por cierto, me viene a la mente la activación de ReLU; desafortunadamente este análisis no es aplicable para tales redes, porque se viola el supuesto de diferenciabilidad. Pero desde la práctica se sabe que realmente las GAN con redes neuronales con activaciones lineales por partes se entrenan mucho más estables que con tangentes hiperbólicas, por ejemplo. Queda por adivinar si esto se debe al jacobiano o hay otra razón más importante, pero en el futuro planeo investigar un poco este problema.
También podemos concluir que la GAN "prefiere" redes amplias. De hecho, sabemos que GAN con redes profundas se colapsa más a menudo.
Conclusión
En este artículo, traté de dar respuestas a preguntas de larga duración en la teoría GAN. Usted y yo vimos que para que exista un punto de descanso, es suficiente que el discriminador posea propiedades bastante simples. También vimos que la interpretación probabilística (minimización de la divergencia) de la GAN tiene todos los derechos a la vida y que con un algoritmo bastante simple podemos muy bien aproximarnos a las trayectorias "óptimas". Y también que el algoritmo de Adam ya hace esto y en teoría debería estabilizar el entrenamiento de GAN, que por cierto se ha observado en muchos trabajos.
Aún así, lo cual es bastante importante, vimos que las recomendaciones empíricas para elegir la arquitectura de las redes neuronales y las funciones de pérdida son bastante consistentes con la teoría. Y lo más importante, todos los problemas en el aprendizaje debido a las no linealidades: los modelos lineales se entrenan de manera muy estable.
¿Qué queda fuera del artículo? Practica En el próximo artículo, describiré el regularizador que utilizo para proporcionar un punto de descanso para el discriminador y un montón de trucos para mejorar la estabilidad del proceso de aprendizaje de GAN (por cierto, algunos de ellos están motivados por este análisis).
Y como ejemplo, una red profunda (50 capas de generador y 50 capas de discriminador) entrenada en el conjunto de datos de dormitorio LSUN (solo 100 mil iteraciones y no utilizamos el promedio del generador)