Problema de gradiente de fuga


En el aprendizaje automático , el problema del gradiente de fuga se encuentra cuando se entrenan 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 de 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 un ejemplo de la causa del problema, las funciones de activación tradicionalescomo la función de tangente hiperbólica , tienen gradientes en el rango (0,1] , y la retropropagación calcula los gradientes mediante 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. La tesis del diploma de Hochreiter de 1991 identificó formalmente la razón de esta falla en el "problema del gradiente de fuga", [1] [2] que no solo afecta a las redes feedforward de muchas capas , [3] sino también a las redes recurrentes . [4] Estos últimos se entrenan desplegándolos en redes feedforward 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 encontrarse con el problema del gradiente explosivo relacionado .

Para superar este problema, se propusieron varios métodos. Una es la jerarquía de redes multinivel de Jürgen Schmidhuber (1992) entrenada previamente un nivel a la vez a través del aprendizaje no supervisado , ajustado a través de la retropropagación . [5] Aquí, cada nivel aprende una representación comprimida de las observaciones que se alimenta al siguiente nivel.

Se han utilizado ideas similares en las redes neuronales de alimentación hacia adelante para el entrenamiento previo no supervisado para 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 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 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 registrode los datos, mejorando así el modelo, si se entrena adecuadamente. Una vez que se han aprendido suficientes capas, la arquitectura profunda se puede usar como un modelo generativo al reproducir los datos al muestrear el modelo (un "paso ancestral") de las activaciones de funciones de nivel superior. [6] Hinton informa que sus modelos son extractores de características efectivos sobre datos estructurados de alta dimensión. [7]

Otra técnica particularmente utilizada para redes neuronales recurrentes es la red de memoria a corto plazo (LSTM) de 1997 por Hochreiter & Schmidhuber . [8] En 2009, las redes LSTM multidimensionales profundas demostraron el poder del aprendizaje profundo con muchas capas no lineales, al ganar tres competencias ICDAR 2009 en reconocimiento de escritura conectada , sin ningún conocimiento previo sobre los tres idiomas diferentes que se aprenderán. [9] [10]


Activación de la Unidad de Coseno Creciente (GCU). GCU no se satura y es oscilatorio y se ha demostrado que acelera el entrenamiento en muchos conjuntos de datos de referencia. [14]