Este artículo de Andrej Karpathy proporciona una excelente respuesta a esta pregunta al razonar sobre lo que sucede durante el paso hacia atrás cuando se utilizan las funciones de activación sigmoidea.
Para resumir sus puntos principales, las funciones sigmoide / tanh eran funciones de activación bastante comunes para usar como funciones no lineales en capas completamente conectadas. Sin embargo, el principal problema es el problema del gradiente de fuga .
Para ilustrar este problema, consideremos la función de activación sigmoidea. Podemos definir la función de activación [matemática] z = \ frac {1} {1 + e ^ {- t}} [/ matemática] que, cuando se traza para valores reales de t , produce una distribución continua de valores entre 0 y 1:
- ¿A qué tipo de problemas del mundo real se aplica el aprendizaje no supervisado?
- ¿El aprendizaje automático conducirá a la mercantilización del conocimiento?
- ¿Cuál es el estado del arte en la síntesis de texto?
- ¿Cuán extendido es el aprendizaje profundo en finanzas?
- ¿Cómo se puede utilizar el aprendizaje automático para la clasificación de exoplanetas?
Para las capas de redes neuronales completamente conectadas, t se obtiene generalmente multiplicando sus salidas x de una capa anterior con una matriz de pesos W.
Ahora, ¿qué sucede si ha inicializado su matriz de peso W con valores muy grandes? Entonces, el resultado de la multiplicación de la matriz tendrá un rango muy grande y, por lo tanto, hará que el vector de salida z tenga casi todos los valores binarios: 0 o 1 (vea la gráfica de la función sigmoidea arriba – los valores grandes se asignan a 0 o 1) . Para comprender las consecuencias de esto, es necesario considerar el paso hacia atrás y, por lo tanto, la derivada de la función sigmoidea.
La derivada de la función sigmoide es bastante agradable: [math] \ frac {dz} {dt} = z (1 – z) [/ math] (ver aquí para una derivación completa). Luego, la derivada de la función sigmoide se puede calcular con respecto a sus entradas en la función, es decir, sus pesos W y sus salidas de capa anteriores x . En ambos casos, el término [matemática] z (1-z) [/ matemática] es cero (ya que nuestro pase directo devolvió un valor binario para z ), haciendo que el gradiente local para xy W sea cero. A partir de este punto, el resto del paso hacia atrás a través de la red será cero debido a la regla de la cadena.
En otras palabras, el gradiente se desvanece y el paso hacia atrás no actualiza sus pesos y hace que la pérdida permanezca constante: la red deja de aprender. Esto es lo que Karpathy y Reza Borhani quieren decir con saturación . Este problema es una de las razones por las que la función sigmoidea puede causar problemas en las capas ocultas de su red neuronal. Si sus pesos se inicializan con valores grandes, puede hacer que el gradiente local desaparezca fácilmente y que su red deje de aprender.