Problema de desvanecimiento de gradiente

En aprendizaje de máquinas, el problema de desvanecimiento de gradiente es una dificultad encontrada para entrenar redes neuronales artificiales mediante métodos de aprendizaje basados en descenso estocástico de gradientes y de retropropagación. En tales métodos, cada uno de los pesos de la red neuronal recibe una actualización proporcional a la derivada parcial de la función de error con respecto al peso actual en cada iteración de entrenamiento.

El problema es que, en algunos casos, el gradiente se irá desvaneciendo a valores muy pequeños, impidiendo eficazmente el peso de cambiar su valor. En el caso peor, esto puede impedir que la red neuronal continúe su entrenamiento. Como ejemplo de la causa del problema, funciones de activación tradicionales como la función de la tangente hiperbólica tienen gradientes en la gama (-1, 1), y la retropropagación computa gradientes por la regla de la cadena. Esto tiene el efecto de multiplicar n de estos números pequeños para computar gradientes de las "capas" de frente en una red de n capas, significando que el gradiente (señal de error) disminuye exponencialmente con n mientras las capas de frente se entrenan muy despacio.

La retropropagación permitió a los investigadores entrenar redes neuronales supervisadas profundas desde un inicio con muy poco éxito. La tesis de diploma de 1991 de Hochreiter identificó formalmente la razón de este fracaso en el "problema de desvanecimiento de gradiente", lo cual no sólo afectará a las redes prealimentadas de muchas capas, sino también a las redes recurrentes. Estas últimas se entrenan por desdoblamiento en redes neuronales prealimentadas muy profundas, donde se crea una capa nueva cada vez que se da un paso en la secuencia de entrada por la red.[1][2][3][4]

Cuando se usan funciones de activación cuyas derivadas pueden tomar valores más grandes, uno de los riesgos es encontrar el denominado problema de gradiente explosivo.

Modelos prototípicos

Esta sección se basa en el artículo On the difficulty of training Recurrent Neural Networks de Pascanu, Mikolov y Bengio.[5]

Modelo de red recurrente

Una red recurrente genérica tiene estados ocultos h 1 , h 2 , . . . {\displaystyle h_{1},h_{2},...} , entradas u 1 , u 2 , . . . {\displaystyle u_{1},u_{2},...} y salidas x 1 , x 2 , . . . {\displaystyle x_{1},x_{2},...} . Se parametriza con θ {\displaystyle \theta } , de modo que el sistema evoluciona como ( h t , x t ) = F ( h t 1 , u t , θ ) {\displaystyle (h_{t},x_{t})=F(h_{t-1},u_{t},\theta )} A menudo, la salida x t {\displaystyle x_{t}} es una función de h t {\displaystyle h_{t}} , como en x t = G ( h t ) {\displaystyle x_{t}=G(h_{t})} . El problema del gradiente que desaparece ya se presenta claramente cuando x t = h t {\displaystyle x_{t}=h_{t}} , por lo que simplificamos nuestra notación al caso especial: x t = F ( x t 1 , u t , θ ) {\displaystyle x_{t}=F(x_{t-1},u_{t},\theta )} Ahora, tomemos su forma diferencial: d x t = θ F ( x t 1 , u t , θ ) d θ + x F ( x t 1 , u t , θ ) d x t 1 = θ F ( x t 1 , u t , θ ) d θ + x F ( x t 1 , u t , θ ) ( θ F ( x t 2 , u t 1 , θ ) d θ + x F ( x t 2 , u t 1 , θ ) d x t 2 ) = = ( θ F ( x t 1 , u t , θ ) + x F ( x t 1 , u t , θ ) θ F ( x t 2 , u t 1 , θ ) + ) d θ {\displaystyle {\begin{aligned}dx_{t}&=\nabla _{\theta }F(x_{t-1},u_{t},\theta )d\theta +\nabla _{x}F(x_{t-1},u_{t},\theta )dx_{t-1}\\&=\nabla _{\theta }F(x_{t-1},u_{t},\theta )d\theta +\nabla _{x}F(x_{t-1},u_{t},\theta )(\nabla _{\theta }F(x_{t-2},u_{t-1},\theta )d\theta +\nabla _{x}F(x_{t-2},u_{t-1},\theta )dx_{t-2})\\&=\cdots \\&=\left(\nabla _{\theta }F(x_{t-1},u_{t},\theta )+\nabla _{x}F(x_{t-1},u_{t},\theta )\nabla _{\theta }F(x_{t-2},u_{t-1},\theta )+\cdots \right)d\theta \end{aligned}}} Entrenar la red requiere definir una función de pérdida a minimizar. Sea L ( x T , u 1 , . . . , u T ) {\displaystyle L(x_{T},u_{1},...,u_{T})} [6]​, entonces minimizarla mediante descenso de gradiente da como resultado

d L = x L ( x T , u 1 , . . . , u T ) ( θ F ( x t 1 , u t , θ ) + x F ( x t 1 , u t , θ ) θ F ( x t 2 , u t 1 , θ ) + ) d θ {\displaystyle dL=\nabla _{x}L(x_{T},u_{1},...,u_{T})\left(\nabla _{\theta }F(x_{t-1},u_{t},\theta )+\nabla _{x}F(x_{t-1},u_{t},\theta )\nabla _{\theta }F(x_{t-2},u_{t-1},\theta )+\cdots \right)d\theta }

 

 

 

 

(loss differential)

Δ θ = η [ x L ( x T ) ( θ F ( x t 1 , u t , θ ) + x F ( x t 1 , u t , θ ) θ F ( x t 2 , u t 1 , θ ) + ) ] T {\displaystyle \Delta \theta =-\eta \cdot \left[\nabla _{x}L(x_{T})\left(\nabla _{\theta }F(x_{t-1},u_{t},\theta )+\nabla _{x}F(x_{t-1},u_{t},\theta )\nabla _{\theta }F(x_{t-2},u_{t-1},\theta )+\cdots \right)\right]^{T}} donde η {\displaystyle \eta } es la tasa de aprendizaje.

El problema del gradiente que desaparece/explota surge debido a multiplicaciones repetidas, de la forma x F ( x t 1 , u t , θ ) x F ( x t 2 , u t 1 , θ ) x F ( x t 3 , u t 2 , θ ) {\displaystyle \nabla _{x}F(x_{t-1},u_{t},\theta )\nabla _{x}F(x_{t-2},u_{t-1},\theta )\nabla _{x}F(x_{t-3},u_{t-2},\theta )\cdots }

Ejemplo: red recurrente con activación sigmoide

Para un ejemplo concreto, consideremos una red recurrente típica definida por

x t = F ( x t 1 , u t , θ ) = W r e c σ ( x t 1 ) + W i n u t + b {\displaystyle x_{t}=F(x_{t-1},u_{t},\theta )=W_{rec}\sigma (x_{t-1})+W_{in}u_{t}+b} donde θ = ( W r e c , W i n ) {\displaystyle \theta =(W_{rec},W_{in})} es el parámetro de la red, σ {\displaystyle \sigma } es la función sigmoide[7]​, aplicada a cada coordenada del vector por separado, y b {\displaystyle b} es el vector de sesgo.

Entonces, x F ( x t 1 , u t , θ ) = W r e c d i a g ( σ ( x t 1 ) ) {\displaystyle \nabla _{x}F(x_{t-1},u_{t},\theta )=W_{rec}\mathop {diag} (\sigma '(x_{t-1}))} , y por lo tanto x F ( x t 1 , u t , θ ) x F ( x t 2 , u t 1 , θ ) x F ( x t k , u t k + 1 , θ ) = W r e c d i a g ( σ ( x t 1 ) ) W r e c d i a g ( σ ( x t 2 ) ) W r e c d i a g ( σ ( x t k ) ) {\displaystyle {\begin{aligned}\nabla _{x}F(x_{t-1},u_{t},\theta )&\nabla _{x}F(x_{t-2},u_{t-1},\theta )\cdots \nabla _{x}F(x_{t-k},u_{t-k+1},\theta )\\=W_{rec}\mathop {diag} (\sigma '(x_{t-1}))&W_{rec}\mathop {diag} (\sigma '(x_{t-2}))\cdots W_{rec}\mathop {diag} (\sigma '(x_{t-k}))\end{aligned}}} Dado que | σ | 1 {\displaystyle |\sigma '|\leq 1} , la norma de operador de la multiplicación anterior está acotada por W r e c k {\displaystyle \|W_{rec}\|^{k}} . Así, si el radio espectral de W r e c {\displaystyle W_{rec}} es γ < 1 {\displaystyle \gamma <1} , entonces para valores grandes de k {\displaystyle k} , la multiplicación anterior tiene una norma de operador acotada superiormente por γ k 0 {\displaystyle \gamma ^{k}\to 0} . Este es el problema prototípico del gradiente que desaparece.

El efecto de un gradiente que desaparece es que la red no puede aprender efectos a largo plazo. Recordemos la Ecuación (loss differential): θ L = x L ( x T , u 1 , . . . , u T ) ( θ F ( x t 1 , u t , θ ) + x F ( x t 1 , u t , θ ) θ F ( x t 2 , u t 1 , θ ) + ) {\displaystyle \nabla _{\theta }L=\nabla _{x}L(x_{T},u_{1},...,u_{T})\left(\nabla _{\theta }F(x_{t-1},u_{t},\theta )+\nabla _{x}F(x_{t-1},u_{t},\theta )\nabla _{\theta }F(x_{t-2},u_{t-1},\theta )+\cdots \right)} Los componentes de θ F ( x , u , θ ) {\displaystyle \nabla _{\theta }F(x,u,\theta )} son solo componentes de σ ( x ) {\displaystyle \sigma (x)} y u {\displaystyle u} , por lo que si u t , u t 1 , . . . {\displaystyle u_{t},u_{t-1},...} están acotados, entonces θ F ( x t k 1 , u t k , θ ) {\displaystyle \|\nabla _{\theta }F(x_{t-k-1},u_{t-k},\theta )\|} también está acotado por algún M > 0 {\displaystyle M>0} , y por lo tanto los términos en θ L {\displaystyle \nabla _{\theta }L} decaen como M γ k {\displaystyle M\gamma ^{k}} . Esto significa que, efectivamente, θ L {\displaystyle \nabla _{\theta }L} se ve afectado solo por los primeros términos O ( γ 1 ) {\displaystyle O(\gamma ^{-1})} en la suma.

Si γ 1 {\displaystyle \gamma \geq 1} , el análisis anterior no funciona del todo.[8]​ Para el problema prototípico del gradiente que explota, el siguiente modelo es más claro.

Modelo de sistemas dinámicos

Diagrama de bifurcación de la red recurrente de una sola neurona. El eje horizontal es b, y el eje vertical es x. La curva negra es el conjunto de equilibrios estables e inestables. Nótese que el sistema exhibe histeresis, y puede ser usado como una memoria de un bit.

Siguiendo a (Doya, 1993),[9]​ consideremos esta red recurrente de una sola neurona con activación sigmoide: x t + 1 = ( 1 ϵ ) x t + ϵ σ ( w x t + b ) + ϵ w u t {\displaystyle x_{t+1}=(1-\epsilon )x_{t}+\epsilon \sigma (wx_{t}+b)+\epsilon w'u_{t}} En el límite de ϵ {\displaystyle \epsilon } pequeño, la dinámica de la red se convierte en d x d t = x ( t ) + σ ( w x ( t ) + b ) + w u ( t ) {\displaystyle {\frac {dx}{dt}}=-x(t)+\sigma (wx(t)+b)+w'u(t)} Consideremos primero el caso autónomo, con u = 0 {\displaystyle u=0} . Establezcamos w = 5.0 {\displaystyle w=5.0} y variemos b {\displaystyle b} en [ 3 , 2 ] {\displaystyle [-3,-2]} . A medida que b {\displaystyle b} disminuye, el sistema tiene un punto estable, luego tiene 2 puntos estables y 1 punto inestable, y finalmente vuelve a tener 1 punto estable. Explícitamente, los puntos estables son ( x , b ) = ( x , ln ( x 1 x ) 5 x ) {\displaystyle (x,b)=\left(x,\ln \left({\frac {x}{1-x}}\right)-5x\right)} .

Ahora consideremos Δ x ( T ) Δ x ( 0 ) {\displaystyle {\frac {\Delta x(T)}{\Delta x(0)}}} y Δ x ( T ) Δ b {\displaystyle {\frac {\Delta x(T)}{\Delta b}}} , donde T {\displaystyle T} es lo suficientemente grande como para que el sistema se haya estabilizado en uno de los puntos estables.

Si ( x ( 0 ) , b ) {\displaystyle (x(0),b)} coloca el sistema muy cerca de un punto inestable, entonces una pequeña variación en x ( 0 ) {\displaystyle x(0)} o b {\displaystyle b} haría que x ( T ) {\displaystyle x(T)} se mueva de un punto estable a otro. Esto hace que Δ x ( T ) Δ x ( 0 ) {\displaystyle {\frac {\Delta x(T)}{\Delta x(0)}}} y Δ x ( T ) Δ b {\displaystyle {\frac {\Delta x(T)}{\Delta b}}} sean ambos muy grandes, un caso del gradiente que explota.

Si ( x ( 0 ) , b ) {\displaystyle (x(0),b)} coloca el sistema lejos de un punto inestable, entonces una pequeña variación en x ( 0 ) {\displaystyle x(0)} no tendría efecto en x ( T ) {\displaystyle x(T)} , haciendo que Δ x ( T ) Δ x ( 0 ) = 0 {\displaystyle {\frac {\Delta x(T)}{\Delta x(0)}}=0} , un caso del gradiente que desaparece.

Nótese que en este caso, Δ x ( T ) Δ b x ( T ) b = ( 1 x ( T ) ( 1 x ( T ) ) 5 ) 1 {\displaystyle {\frac {\Delta x(T)}{\Delta b}}\approx {\frac {\partial x(T)}{\partial b}}=\left({\frac {1}{x(T)(1-x(T))}}-5\right)^{-1}} no decae a cero ni explota hasta el infinito. De hecho, es el único gradiente bien comportado, lo que explica por qué las investigaciones iniciales se centraron en aprender o diseñar sistemas de redes recurrentes que pudieran realizar cálculos a largo plazo (como devolver la primera entrada que ven al final de un episodio) modelando sus atractores estables.[10]

Para el caso general, la intuición sigue siendo válida ([5]​ Figuras 3, 4 y 5).

Modelo geométrico

Continuemos usando la red de una sola neurona mencionada, fijando w = 5 , x ( 0 ) = 0.5 , u ( t ) = 0 {\displaystyle w=5,x(0)=0.5,u(t)=0} , y consideremos una función de pérdida definida por L ( x ( T ) ) = ( 0.855 x ( T ) ) 2 {\displaystyle L(x(T))=(0.855-x(T))^{2}} . Esto produce un paisaje de pérdida bastante patológico: a medida que b {\displaystyle b} se acerca a 2.5 {\displaystyle -2.5} desde arriba, la pérdida se aproxima a cero, pero tan pronto como b {\displaystyle b} cruza 2.5 {\displaystyle -2.5} , la cuenca del atractor cambia y la pérdida salta a 0.50.[11]

En consecuencia, intentar entrenar b {\displaystyle b} mediante descenso de gradiente "chocaría con una pared en el paisaje de pérdida" y causaría un gradiente que explota. Una situación ligeramente más compleja se grafica en,[5]​ Figuras 6.

Véase también

Referencias

  1. S. Hochreiter. Untersuchungen zu dynamischen neuronalen Netzen. Diploma thesis, Institut f. Informatik, Technische Univ. Munich, 1991.
  2. S. Hochreiter, Y. Bengio, P. Frasconi, and J. Schmidhuber. Gradient flow in recurrent nets: the difficulty of learning long-term dependencies. In S. C. Kremer and J. F. Kolen, editors, A Field Guide to Dynamical Recurrent Neural Networks. IEEE Press, 2001.
  3. Goh, Garrett B.; Hodas, Nathan O.; Vishnu, Abhinav (15 de junio de 2017). «Deep learning for computational chemistry». Journal of Computational Chemistry (en inglés) 38 (16): 1291-1307. PMID 28272810. doi:10.1002/jcc.24764. 
  4. Pascanu, Razvan; Mikolov, Tomas; Bengio, Yoshua (2012-11-21). "On the difficulty of training Recurrent Neural Networks". arXiv:1211.5063 [cs.LG].
  5. a b c Error en la cita: Etiqueta <ref> no válida; no se ha definido el contenido de las referencias llamadas :1
  6. Error en la cita: Etiqueta <ref> no válida; no se ha definido el contenido de las referencias llamadas let it be L
  7. Error en la cita: Etiqueta <ref> no válida; no se ha definido el contenido de las referencias llamadas sigmoid activation function
  8. Error en la cita: Etiqueta <ref> no válida; no se ha definido el contenido de las referencias llamadas not quite work
  9. Doya, K. (1992). «Bifurcations in the learning of recurrent neural networks». [Proceedings] 1992 IEEE International Symposium on Circuits and Systems 6. IEEE. pp. 2777-2780. ISBN 0-7803-0593-0. S2CID 15069221. doi:10.1109/iscas.1992.230622. 
  10. Bengio, Y.; Simard, P.; Frasconi, P. (March 1994). «Learning long-term dependencies with gradient descent is difficult». IEEE Transactions on Neural Networks 5 (2): 157-166. ISSN 1941-0093. PMID 18267787. S2CID 206457500. doi:10.1109/72.279181. 
  11. Error en la cita: Etiqueta <ref> no válida; no se ha definido el contenido de las referencias llamadas attractor
  • Esta obra contiene una traducción parcial derivada de «Vanishing gradient problem» de Wikipedia en inglés, publicada por sus editores bajo la Licencia de documentación libre de GNU y la Licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional.
Control de autoridades
  • Proyectos Wikimedia
  • Wd Datos: Q18358230
  • Wd Datos: Q18358230