En el aprendizaje automático , el problema del gradiente que desaparece se encuentra al entrenar redes neuronales artificiales con métodos de aprendizaje basados en gradientes y 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 del entrenamiento. El problema es que, en algunos casos, el gradiente será muy pequeño, lo que evitará que el peso cambie su valor. En el peor de los casos, esto puede impedir por completo que la red neuronal siga entrenando. Como ejemplo de la causa del problema, las funciones de activación tradicionalescomo la función tangente hiperbólica tienen gradientes en el rango (0, 1), y la propagación hacia atrás calcula los gradientes por la regla de la cadena . Esto tiene el efecto de multiplicar n de estos números pequeños 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. Hochreiter 's Diplom tesis de 1991 identificó formalmente la razón de este fallo en el 'problema de gradiente de fuga', [1] [2] , que no sólo afecta a muchas capas redes de alimentación directa , [3] pero también redes recurrentes . [4] Estos últimos se entrenan desplegándolos en redes de retroalimentación 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 despliegue 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 encontrar el problema del gradiente explosivo relacionado .
Soluciones
Jerarquía multinivel
Para superar este problema, se propusieron varios métodos. Uno es la jerarquía de redes de varios niveles de Jürgen Schmidhuber (1992) pre-entrenada un nivel a la vez mediante el aprendizaje no supervisado , afinado mediante retropropagación . [5] Aquí cada nivel aprende una representación comprimida de las observaciones que se alimenta al siguiente nivel.
Enfoque relacionado
Se han utilizado ideas similares en redes neuronales de alimentación hacia adelante para el entrenamiento previo no supervisado para estructurar una red neuronal, lo que hace que primero aprenda detectores de características generalmente útiles . Luego, la red se entrena más mediante retropropagación supervisada para clasificar los 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 de registro de los datos, mejorando así el modelo, si se entrena correctamente. Una vez que se han aprendido suficientes capas, la arquitectura profunda puede usarse como un modelo generativo reproduciendo los datos al muestrear el modelo (un "pase ancestral") a partir de las activaciones de características de nivel superior. [6] Hinton informa que sus modelos son extractores de características efectivos sobre datos estructurados de alta dimensión. [7]
Memoria a corto plazo
Otra técnica particularmente utilizada para las redes neuronales recurrentes es la red de memoria a corto plazo (LSTM) de 1997 de Hochreiter & Schmidhuber . [8] En 2009, las redes LSTM multidimensionales profundas demostraron el poder del aprendizaje profundo con muchas capas no lineales, al ganar tres concursos ICDAR 2009 en reconocimiento de escritura conectada , sin ningún conocimiento previo sobre los tres idiomas diferentes que se deben aprender. [9] [10]
Hardware más rápido
Los avances en el hardware han significado que de 1991 a 2015, la potencia de la computadora (especialmente la proporcionada por las GPU ) se ha multiplicado por un millón, lo que hace que la propagación hacia atrás estándar sea factible para redes de varias capas más profundas que cuando se reconoció el problema del gradiente de desaparición. Schmidhuber señala que esto "es básicamente lo que está ganando muchos de los concursos de reconocimiento de imágenes ahora", pero que "realmente no supera el problema de una manera fundamental" [11], ya que los modelos originales abordaron el problema del gradiente de desaparición de Hinton y otros. fueron entrenados en un procesador Xeon , no en GPU. [6]
Redes residuales
Una de las formas más nuevas y efectivas de resolver el problema del gradiente de desaparición es con redes neuronales residuales , o ResNets [12] (que no debe confundirse con redes neuronales recurrentes). [13] ResNets se refiere a redes neuronales donde las conexiones de salto o las conexiones residuales son parte de la arquitectura de la red. Estas conexiones de salto permiten que la información de gradiente pase a través de las capas, creando "autopistas" de información, donde la salida de una capa / activación anterior se agrega a la salida de una capa más profunda. Esto permite que la información de las partes anteriores de la red se transmita a las partes más profundas de la red, lo que ayuda a mantener la propagación de la señal incluso en redes más profundas. Las conexiones de salto son un componente crítico de lo que permitió el entrenamiento exitoso de redes neuronales más profundas. [14]
ResNets [15] arrojó un error de entrenamiento (y error de prueba) más bajo que sus contrapartes menos profundas simplemente reintroduciendo salidas de capas menos profundas en la red para compensar la desaparición de datos. [16] Tenga en cuenta que los ResNets son un conjunto de redes relativamente poco profundas y no resuelven el problema del gradiente que desaparece preservando el flujo del gradiente en toda la profundidad de la red; más bien, evitan el problema simplemente construyendo conjuntos de muchas redes cortas juntas. (Conjunto por construcción [17] )
Otras funciones de activación
Los rectificadores como ReLU sufren menos del problema del gradiente de desaparición, porque solo se saturan en una dirección. [18]
Otro
Behnke se basó únicamente en el signo del gradiente ( Rprop ) cuando entrenó su Pirámide de abstracción neuronal [19] 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 el uso de un algoritmo de búsqueda universal en el espacio de los pesos de la red neuronal, por ejemplo, una suposición aleatoria o un algoritmo genético más sistemático . Este enfoque no se basa en el gradiente y evita el problema del gradiente que desaparece. [20]
Ver también
- Radio espectral
Referencias
- ^ Hochreiter, S. (1991). Untersuchungen zu dynamischen neuronalen Netzen (PDF) (Tesis de diploma). Institut f. Informatik, Technische Univ. Munich.
- ^ Hochreiter, S .; Bengio, Y .; Frasconi, P .; Schmidhuber, J. (2001). "Gradiente de flujo 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 dinámicas recurrentes . Prensa IEEE. ISBN 0-7803-5369-2.
- ^ Goh, Garrett B .; Hodas, Nathan O .; Vishnu, Abhinav (15 de junio de 2017). "Aprendizaje profundo de 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 .
- ^ Pascanu, Razvan; Mikolov, Tomas; Bengio, Yoshua (21 de noviembre de 2012). "Sobre la dificultad de entrenar redes neuronales recurrentes". arXiv : 1211,5063 [ cs.LG ].
- ^ J. Schmidhuber., "Aprendizaje de secuencias complejas y extendidas utilizando el principio de compresión de la historia", Computación neuronal , 4, págs. 234–242, 1992.
- ^ a b Hinton, GE ; Osindero, S .; Teh, Y. (2006). "Un algoritmo de aprendizaje rápido para redes de creencias profundas" (PDF) . Computación neuronal . 18 (7): 1527-1554. CiteSeerX 10.1.1.76.1541 . doi : 10.1162 / neco.2006.18.7.1527 . PMID 16764513 . S2CID 2309950 .
- ^ Hinton, G. (2009). "Redes de creencias profundas" . Scholarpedia . 4 (5): 5947. Código bibliográfico : 2009SchpJ ... 4.5947H . doi : 10.4249 / scholarpedia.5947 .
- ^ Hochreiter, Sepp ; Schmidhuber, Jürgen (1997). "Memoria a corto plazo". Computación neuronal . 9 (8): 1735-1780. doi : 10.1162 / neco.1997.9.8.1735 . PMID 9377276 . S2CID 1915014 .
- ^ Tumbas, Alex; y Schmidhuber, Jürgen; Reconocimiento de escritura sin conexión con redes neuronales recurrentes multidimensionales , en Bengio, Yoshua; Schuurmans, Dale; Lafferty, John; Williams, Chris KI; y Culotta, Aron (eds.), Advances in Neural Information Processing Systems 22 (NIPS'22), 7 al 10 de diciembre de 2009, Vancouver, BC , Neural Information Processing Systems (NIPS) Foundation, 2009, págs. 545–552
- ^ Graves, A .; Liwicki, M .; Fernandez, S .; Bertolami, R .; Bunke, H .; Schmidhuber, J. (2009). "Un nuevo sistema conexionista para un mejor reconocimiento de escritura sin restricciones". Transacciones IEEE sobre análisis de patrones e inteligencia de máquinas . 31 (5): 855–868. CiteSeerX 10.1.1.139.4502 . doi : 10.1109 / tpami.2008.137 . PMID 19299860 . S2CID 14635907 .
- ^ Schmidhuber, Jürgen (2015). "Aprendizaje profundo en redes neuronales: una visión general". Redes neuronales . 61 : 85-117. arXiv : 1404,7828 . doi : 10.1016 / j.neunet.2014.09.003 . PMID 25462637 . S2CID 11715509 .
- ^ "Las redes neuronales residuales son un área interesante de investigación de aprendizaje profundo" . 28 de abril de 2016.
- ^ http://www.fit.vutbr.cz/research/groups/speech/servite/2010/rnnlm_mikolov.pdf
- ^ Él, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sol, Jian (2015). "Aprendizaje profundo residual para el reconocimiento de imágenes". arXiv : 1512.03385 [ cs.CV ].
- ^ "ResNets, HighwayNets y DenseNets, ¡Dios mío! - La vida de Chatbot" . 14 de octubre de 2016.
- ^ Él, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sol, Jian (2015). "Aprendizaje profundo residual para el reconocimiento de imágenes". arXiv : 1512.03385 [ cs.CV ].
- ^ Veit, Andreas; Wilber, Michael; Belongie, Serge (20 de mayo de 2016). "Las redes residuales se comportan como conjuntos de redes relativamente poco profundas". arXiv : 1605.06431 [ cs.CV ].
- ^ Glorot, Xavier; Bordes, Antoine; Bengio, Yoshua (14 de junio de 2011). "Redes neuronales de rectificador disperso profundo" . PMLR : 315–323.
- ^ Sven Behnke (2003). Redes neuronales jerárquicas para la interpretación de imágenes (PDF) . Apuntes de conferencias en Ciencias de la Computación. 2766 . Saltador.
- ^ "Problema fundamental de aprendizaje profundo de Sepp Hochreiter (1991)" . people.idsia.ch . Consultado el 7 de enero de 2017 .