stringtranslate.com

Problema del gradiente evanescente

En el aprendizaje automático , el problema del gradiente de desaparición se encuentra al entrenar redes neuronales con métodos de aprendizaje basados ​​en gradientes y retropropagación . En tales métodos, durante cada iteración de entrenamiento, cada peso de la red neuronal recibe una actualización proporcional a la derivada parcial de la función de pérdida con respecto al peso actual. [1] El problema es que a medida que aumenta la profundidad de la red o la longitud de la secuencia , normalmente se espera que la magnitud del gradiente disminuya (o crezca sin control), lo que ralentiza el proceso de entrenamiento. [1] En el peor de los casos, esto puede detener por completo el aprendizaje de la red neuronal. [1] Como un ejemplo de la causa del problema, las funciones de activación tradicionales, como la función tangente hiperbólica , tienen gradientes en el rango [-1,1] , y la retropropagación calcula los gradientes utilizando la regla de la cadena . Esto tiene el efecto de multiplicar n de estos pequeños números para calcular los gradientes de las primeras capas en una red de n capas, lo que significa que el gradiente (señal de error) disminuye exponencialmente con n mientras que las primeras capas se entrenan muy lentamente.

La retropropagación permitió a los investigadores entrenar redes neuronales artificiales profundas supervisadas desde cero, inicialmente con poco éxito. La tesis de diploma de Hochreiter de 1991 identificó formalmente la razón de este fracaso en el "problema del gradiente evanescente", [2] [3] que no solo afecta a las redes de propagación hacia adelante de muchas capas , [4] sino también a las redes recurrentes . [5] [6] Estas últimas se entrenan desplegándolas en redes de propagación hacia adelante muy profundas, donde se crea una nueva capa para cada paso de tiempo de una secuencia de entrada procesada por la red (la combinación de desplegamiento y retropropagación se denomina retropropagación a través del tiempo ).

Cuando se utilizan funciones de activación cuyas derivadas pueden tomar valores mayores, se corre el riesgo de encontrarse con el problema del gradiente explosivo .

Modelos prototípicos

Esta sección se basa en el artículo Sobre la dificultad de entrenar redes neuronales recurrentes de Pascanu, Mikolov y Bengio. [6]

Modelo de red recurrente

Una red recurrente genérica tiene entradas de estados ocultos y salidas . Sea parametrizada por , de modo que el sistema evolucione como A menudo, la salida es una función de , ya que algunos . El problema del gradiente evanescente ya se presenta claramente cuando , por lo que simplificamos nuestra notación al caso especial con: Ahora, tomemos su diferencial : El entrenamiento de la red requiere que definamos una función de pérdida que se debe minimizar. Sea [nota 1] , entonces al minimizarla por descenso de gradiente obtenemos

¿Dónde está la tasa de aprendizaje?

El problema del gradiente que se desvanece/explota aparece porque hay multiplicaciones repetidas, de la forma

Ejemplo: red recurrente con activación sigmoidea

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

donde es el parámetro de red, es la función de activación sigmoidea [nota 2] , aplicada a cada coordenada vectorial por separado, y es el vector de sesgo.

Entonces, , y por lo tanto Como , la norma del operador de la multiplicación anterior está acotada superiormente por . Por lo tanto, si el radio espectral de es , entonces, en general , la multiplicación anterior tiene una norma del operador acotada superiormente por . Este es el problema prototípico del gradiente evanescente.

El efecto de un gradiente que se desvanece es que la red no puede aprender efectos de largo alcance. Recordemos la ecuación ( diferencial de pérdida ): los componentes de son simplemente componentes de y , por lo que si están acotados, entonces también está acotado por algún , y por lo tanto los términos en decaimiento son . Esto significa que, efectivamente, se ve afectado solo por los primeros términos en la suma.

Si es así , el análisis anterior no funciona del todo. [nota 3] Para el problema del gradiente explosivo prototípico, el siguiente modelo es más claro.

Modelo de sistemas dinámicos

Diagrama de bifurcación de la red recurrente de una neurona. El eje horizontal es b y el eje vertical es x. La curva negra es el conjunto de equilibrios estables e inestables. Observe que el sistema presenta histéresis y puede usarse como una memoria de un bit.

Siguiendo a (Doya, 1993), [7] considere esta red recurrente de una neurona con activación sigmoidea: En el límite pequeño, la dinámica de la red se convierte en Considere primero el caso autónomo , con . Establezca , y varíe en . A medida que disminuye, el sistema tiene 1 punto estable, luego tiene 2 puntos estables y 1 punto inestable, y finalmente tiene 1 punto estable nuevamente. Explícitamente, los puntos estables son .

Consideremos ahora y , donde es lo suficientemente grande como para que el sistema se haya asentado en uno de los puntos estables.

Si coloca al sistema muy cerca de un punto inestable, entonces una pequeña variación en o haría que se mueva de un punto estable a otro. Esto hace que y ambos sean muy grandes, un caso de gradiente explosivo.

Si coloca el sistema lejos de un punto inestable, entonces una pequeña variación en no tendría efecto sobre , lo que hace de , un caso de gradiente evanescente.

Obsérvese que, en este caso, ni decae hasta cero ni explota hasta el infinito. De hecho, es el único gradiente que se comporta bien, lo que explica por qué las primeras investigaciones se centraron en aprender o diseñar sistemas de redes recurrentes que pudieran realizar cálculos de largo alcance (como generar la primera entrada que ve al final de un episodio) mediante la configuración de sus atractores estables. [8]

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

Modelo geométrico

Continúe utilizando la red de una neurona anterior, fijando , y considere una función de pérdida definida por . Esto produce un paisaje de pérdida bastante patológico: a medida que se acerca desde arriba, la pérdida se acerca a cero, pero tan pronto como cruza , la cuenca del atractor cambia y la pérdida salta a 0,50. [nota 4]

En consecuencia, intentar entrenar por descenso de gradiente "chocaría contra un muro en el panorama de pérdidas" y provocaría una explosión de gradiente. En las figuras 6 [6] se representa gráficamente una situación ligeramente más compleja.

Soluciones

Para superar este problema, se propusieron varios métodos.

RNN

Para las redes neuronales recurrentes , se diseñó la red de memoria a corto y largo plazo (LSTM) para resolver el problema ( Hochreiter y Schmidhuber , 1997). [9]

Para el problema del gradiente explosivo, (Pascanu et al, 2012) [6] recomendaron el recorte de gradiente, es decir, dividir el vector de gradiente por si . Esto restringe los vectores de gradiente dentro de una esfera de radio .

Normalización por lotes

La normalización por lotes es un método estándar para resolver los problemas de gradiente explosivo y de gradiente evanescente. [10] [11]

Jerarquía de múltiples niveles

En la jerarquía de redes de múltiples niveles ( Schmidhuber , 1992), se entrena previamente un nivel a la vez a través del aprendizaje no supervisado y se ajusta mediante retropropagación . [12] Aquí, cada nivel aprende una representación comprimida de las observaciones que se alimenta al siguiente nivel.

Red de creencias profundas

Se han utilizado ideas similares en redes neuronales de propagación hacia adelante para el preentrenamiento no supervisado con el fin de estructurar una red neuronal, haciendo que primero aprenda detectores de características generalmente útiles . Luego, la red se entrena aún más mediante retropropagación supervisada para clasificar datos etiquetados. El modelo de red de creencias profundas de Hinton et al. (2006) implica aprender la distribución de una representación de alto nivel utilizando capas sucesivas de variables latentes binarias o de valor real . Utiliza una máquina de Boltzmann restringida para modelar cada nueva capa de características de nivel superior. Cada nueva capa garantiza un aumento en el límite inferior de la probabilidad logarítmica de los datos, mejorando así el modelo, si se entrena correctamente. Una vez que se han aprendido suficientes capas, la arquitectura profunda se puede utilizar como un modelo generativo al reproducir los datos al muestrear el modelo (un "pase ancestral") a partir de las activaciones de características de nivel superior. [13] Hinton informa que sus modelos son extractores de características eficaces sobre datos estructurados de alta dimensión. [14]

Hardware más rápido

Los avances en hardware han hecho que, entre 1991 y 2015, la potencia de procesamiento (especialmente la que ofrecen las GPU ) haya aumentado alrededor de un millón de veces, lo que hace que la retropropagación estándar sea factible para redes con varias capas más de profundidad que cuando se reconoció el problema del gradiente evanescente. Schmidhuber señala que esto "es básicamente lo que está ganando muchas de las competiciones de reconocimiento de imágenes ahora", pero que "en realidad no supera el problema de manera fundamental" [15] ya que los modelos originales que abordaban el problema del gradiente evanescente de Hinton y otros se entrenaron en un procesador Xeon , no en GPU. [13]

Conexión residual

Las conexiones residuales , o conexiones salteadas, se refieren al motivo arquitectónico de ,donde es un módulo de red neuronal arbitrario. Esto da el gradiente de , donde la matriz identidad no sufre el gradiente de desaparición o explosión. Durante la retropropagación, parte del gradiente fluye a través de las conexiones residuales. [16]

Concretamente, supongamos que la red neuronal (sin conexiones residuales) es , entonces, con conexiones residuales, el gradiente de salida con respecto a las activaciones en la capa es . Por lo tanto, el gradiente no se anula en redes de profundidad arbitraria.

Las redes de propagación hacia adelante con conexiones residuales pueden considerarse como un conjunto de redes relativamente superficiales. Desde esta perspectiva, resuelven el problema del gradiente evanescente al ser equivalentes a conjuntos de muchas redes superficiales, para las cuales no existe un problema de gradiente evanescente. [17]

Otras funciones de activación

Los rectificadores como ReLU sufren menos el problema del gradiente de desaparición, porque sólo se saturan en una dirección. [18]

Inicialización de peso

La inicialización de peso es otro enfoque que se ha propuesto para reducir el problema del gradiente de desaparición en redes profundas.

Kumar sugirió que la distribución de pesos iniciales debería variar según la función de activación utilizada y propuso inicializar los pesos en redes con la función de activación logística utilizando una distribución gaussiana con una media cero y una desviación estándar de 3.6/sqrt(N), donde Nes el número de neuronas en una capa. [19]

Recientemente, Yilmaz y Poli [20] realizaron un análisis teórico sobre cómo los gradientes se ven afectados por la media de los pesos iniciales en redes neuronales profundas utilizando la función de activación logística y encontraron que los gradientes no se desvanecen si la media de los pesos iniciales se establece de acuerdo con la fórmula: max(−1,-8/N). Esta sencilla estrategia permite entrenar redes con 10 o 15 capas ocultas de forma muy eficiente y efectiva utilizando la retropropagación estándar .

Otro

Behnke se basó únicamente en el signo del gradiente ( Rprop ) al entrenar su Pirámide de Abstracción Neural [21] para resolver problemas como la reconstrucción de imágenes y la localización de rostros. [ cita requerida ]

Las redes neuronales también se pueden optimizar mediante un algoritmo de búsqueda universal en el espacio de pesos de la red neuronal, por ejemplo, una estimación aleatoria o, de manera más sistemática, un algoritmo genético . Este enfoque no se basa en el gradiente y evita el problema del gradiente evanescente. [22]

Véase también

Notas

  1. ^ Una función de pérdida más general podría depender de toda la secuencia de salidas, para lo cual el problema es el mismo, sólo que con notaciones más complejas.
  2. ^ Cualquier función de activación funciona, siempre que sea diferenciable con derivada acotada.
  3. ^ Considere y , con y . Entonces tiene un radio espectral , y , que podría ir al infinito o a cero dependiendo de la elección de .
  4. ^ Esto se debe a que en , los dos atractores estables son , y el atractor inestable es .

Referencias

  1. ^ abc Basodi, Sunitha; Ji, Chunyan; Zhang, Haiping; Pan, Yi (septiembre de 2020). "Amplificación de gradiente: una forma eficiente de entrenar redes neuronales profundas". Minería y análisis de big data . 3 (3): 198. arXiv : 2006.10560 . doi : 10.26599/BDMA.2020.9020004 . ISSN  2096-0654. S2CID  219792172.
  2. ^ Hochreiter, S. (1991). Untersuchungen zu dynamischen neuronalen Netzen (PDF) (tesis de diploma). Instituto f. Informática, Universidad Técnica. Munich.
  3. ^ Hochreiter, S.; Bengio, Y.; Frasconi, P.; Schmidhuber, J. (2001). "Flujo de gradiente en redes recurrentes: la dificultad de aprender dependencias a largo plazo". En Kremer, SC; Kolen, JF (eds.). Una guía de campo para redes neuronales recurrentes dinámicas . IEEE Press. ISBN 0-7803-5369-2.
  4. ^ Goh, Garrett B.; Hodas, Nathan O.; Vishnu, Abhinav (15 de junio de 2017). "Aprendizaje profundo para la química computacional". Revista de química computacional . 38 (16): 1291–1307. arXiv : 1701.04503 . Código Bibliográfico :2017arXiv170104503G. doi :10.1002/jcc.24764. PMID  28272810. S2CID  6831636.
  5. ^ Bengio, Y.; Frasconi, P.; Simard, P. (1993). El problema del aprendizaje de dependencias a largo plazo en redes recurrentes. IEEE International Conference on Neural Networks. IEEE. págs. 1183–1188. doi :10.1109/ICNN.1993.298725. ISBN . 978-0-7803-0999-9.
  6. ^ abcde Pascanu, Razvan; Mikolov, Tomas; Bengio, Yoshua (21 de noviembre de 2012). "Sobre la dificultad de entrenar redes neuronales recurrentes". arXiv : 1211.5063 [cs.LG].
  7. ^ Doya, K. (1992). "Bifurcaciones en el aprendizaje de redes neuronales recurrentes". [Actas] Simposio internacional IEEE sobre circuitos y sistemas de 1992. Vol. 6. IEEE. págs. 2777–2780. doi :10.1109/iscas.1992.230622. ISBN 0-7803-0593-0.S2CID15069221  .​
  8. ^ Bengio, Y.; Simard, P.; Frasconi, P. (marzo de 1994). "El aprendizaje de dependencias a largo plazo con descenso de gradiente es difícil". IEEE Transactions on Neural Networks . 5 (2): 157–166. doi :10.1109/72.279181. ISSN  1941-0093. PMID  18267787. S2CID  206457500.
  9. ^ Hochreiter, Sepp ; Schmidhuber, Jürgen (1997). "Memoria a largo plazo". Computación neuronal . 9 (8): 1735–1780. doi :10.1162/neco.1997.9.8.1735. PMID  9377276. S2CID  1915014.
  10. ^ Ioffe, Sergey; Szegedy, Christian (1 de junio de 2015). "Normalización por lotes: aceleración del entrenamiento de redes profundas mediante la reducción del desplazamiento interno de las covariables". Conferencia internacional sobre aprendizaje automático . PMLR: 448–456. arXiv : 1502.03167 .
  11. ^ Santurkar, Shibani; Tsipras, Dimitris; Ilyas, Andrew; Madry, Aleksander (2018). "¿Cómo ayuda la normalización por lotes a la optimización?". Avances en sistemas de procesamiento de información neuronal . 31. Curran Associates, Inc.
  12. ^ J. Schmidhuber., "Aprendizaje de secuencias complejas y extendidas utilizando el principio de compresión histórica", Neural Computation , 4, págs. 234-242, 1992.
  13. ^ ab Hinton, GE ; Osindero, S.; Teh, Y. (2006). "Un algoritmo de aprendizaje rápido para redes de creencias profundas" (PDF) . Neural Computation . 18 (7): 1527–1554. CiteSeerX 10.1.1.76.1541 . doi :10.1162/neco.2006.18.7.1527. PMID  16764513. S2CID  2309950. 
  14. ^ Hinton, G. (2009). "Redes de creencias profundas". Scholarpedia . 4 (5): 5947. Bibcode :2009SchpJ...4.5947H. doi : 10.4249/scholarpedia.5947 .
  15. ^ Schmidhuber, Jürgen (2015). "Aprendizaje profundo en redes neuronales: una descripción general". Redes neuronales . 61 : 85–117. arXiv : 1404.7828 . doi :10.1016/j.neunet.2014.09.003. PMID  25462637. S2CID  11715509.
  16. ^ He, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sun, Jian (2016). Aprendizaje residual profundo para reconocimiento de imágenes. Conferencia IEEE 2016 sobre visión artificial y reconocimiento de patrones (CVPR) . Las Vegas, NV, EE. UU.: IEEE. págs. 770–778. arXiv : 1512.03385 . doi :10.1109/CVPR.2016.90. ISBN . 978-1-4673-8851-1.
  17. ^ Veit, Andreas; Wilber, Michael; Belongie, Serge (20 de mayo de 2016). "Las redes residuales se comportan como conjuntos de redes relativamente superficiales". arXiv : 1605.06431 [cs.CV].
  18. ^ Glorot, Xavier; Bordes, Antoine; Bengio, Yoshua (14 de junio de 2011). "Redes neuronales rectificadoras dispersas y profundas". PMLR : 315–323.
  19. ^ Kumar, Siddharth Krishna. "Sobre la inicialización del peso en redes neuronales profundas". Preimpresión de arXiv arXiv:1704.08863 (2017).
  20. ^ Yilmaz, Ahmet; Poli, Riccardo (1 de septiembre de 2022). "Para entrenar de manera exitosa y eficiente perceptrones multicapa profundos con función de activación logística, simplemente se requiere inicializar los pesos con una media negativa apropiada". Redes neuronales . 153 : 87–103. doi :10.1016/j.neunet.2022.05.030. ISSN  0893-6080. PMID  35714424. S2CID  249487697.
  21. ^ Sven Behnke (2003). Redes neuronales jerárquicas para interpretación de imágenes (PDF) . Apuntes de clase en informática. Vol. 2766. Springer.
  22. ^ "El problema fundamental del aprendizaje profundo de Sepp Hochreiter (1991)". people.idsia.ch . Consultado el 7 de enero de 2017 .