Gradiente evanescente
Descubra el problema del gradiente de fuga en el aprendizaje profundo, su impacto en las redes neuronales y soluciones eficaces como ReLU, ResNets, etc.
El problema del gradiente evanescente es un problema habitual durante el entrenamiento de redes neuronales profundas. Se produce cuando los gradientes, que son las señales utilizadas para actualizar los pesos de la red a través de la retropropagación, se vuelven extremadamente pequeños a medida que se propagan desde la capa de salida a las capas iniciales. Cuando estos gradientes se aproximan a cero, los pesos de las capas iniciales no se actualizan eficazmente, o no se actualizan en absoluto. Esto detiene esencialmente el proceso de aprendizaje de esas capas, impidiendo que el modelo de aprendizaje profundo converja a una solución óptima y aprenda de los datos.
¿Cuál es la causa de la desaparición de los degradados?
La causa principal de la desaparición de gradientes reside en la naturaleza de determinadas funciones de activación y en la profundidad de la propia red.
- Funciones de activación: Las funciones de activación tradicionales, como la sigmoidea y la tangente hiperbólica (tanh), comprimen su entrada en un rango de salida muy pequeño. Las derivadas de estas funciones son pequeñas. Durante la retropropagación, estas pequeñas derivadas se multiplican a lo largo de muchas capas. Cuantas más capas tenga la red, más se multiplicarán estos pequeños números, haciendo que el gradiente final se reduzca exponencialmente hacia cero.
- Arquitecturas profundas: El problema es particularmente pronunciado en redes muy profundas, incluidas las primeras redes neuronales recurrentes (RNN), en las que los gradientes se propagan hacia atrás a través de muchos pasos temporales. Cada paso implica una multiplicación, lo que puede disminuir la señal del gradiente en secuencias largas.
Desvanecimiento de degradados frente a explosión de degradados
Los gradientes de fuga son lo contrario de los gradientes de explosión. Ambos problemas están relacionados con el flujo de gradientes durante el entrenamiento, pero tienen efectos diferentes:
- Gradientes que desaparecen: Los gradientes se reducen exponencialmente hasta que se vuelven demasiado pequeños para facilitar un aprendizaje significativo en las primeras capas de la red.
- Gradientes explosivos: Los gradientes crecen de forma incontrolada, lo que provoca actualizaciones masivas del peso que hacen que el modelo se vuelva inestable y no converja.
Abordar ambas cuestiones es crucial para entrenar con éxito modelos de IA profundos y potentes.
Soluciones y estrategias de mitigación
Se han desarrollado varias técnicas para combatir el problema del gradiente evanescente:
- Mejores funciones de activación: Sustituir sigmoide y tanh por funciones como la Unidad Lineal Rectificada (ReLU) o sus variantes(Leaky ReLU, GELU) es una solución común. La derivada de ReLU es 1 para entradas positivas, lo que impide que el gradiente se reduzca.
- Arquitecturas avanzadas: Se han diseñado arquitecturas específicamente para mitigar este problema. Las redes residuales (ResNets) introducen "conexiones de salto" que permiten que el gradiente se salte las capas, proporcionando un camino más corto durante la retropropagación. Para los datos secuenciales, las redes de memoria a corto plazo (LSTM ) y de unidades recurrentes con compuerta (GRU ) utilizan mecanismos de compuerta para controlar el flujo de información y los gradientes, como se detalla en los artículos originales sobre LSTM y GRU.
- Inicialización de pesos: La inicialización adecuada de los pesos de la red, utilizando métodos como la inicialización de He o Xavier, puede ayudar a garantizar que los gradientes comiencen dentro de un rango razonable. Puede encontrar más información al respecto en los debates sobre las mejores prácticas de aprendizaje profundo.
- Normalización por lotes: La aplicación de la normalización por lotes ayuda a normalizar las entradas de cada capa, lo que estabiliza la red y reduce la dependencia de la inicialización, mitigando así el problema del gradiente evanescente.