¿Por qué la función sigmoidea rara vez se usa en capas ocultas recientemente?

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:

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.

En realidad, la función sigmoide se reemplaza de forma obsoleta por la función relu. Como todos sabemos, deep nn es difícil de entrenar cuando la red se profundiza. Por qué sucede eso, puede hacer referencia a este artículo. Redes neuronales y aprendizaje profundo. Generalmente, es causada por la desaparición del gradiente.

Por lo tanto, las personas crean la función relu para solucionar este problema. Relu hace posible entrenar redes más profundas.

Dos beneficios principales adicionales de ReLU son la escasez y una probabilidad reducida de gradiente de fuga. Pero primero recuerde que la definición de un ReLU es h = max (0, a) [matemática] h = max (0, a) [/ matemática] donde a = Wx + b [matemática] a = Wx + b [/ matemática] .

Un beneficio importante es la probabilidad reducida de que el gradiente desaparezca. Esto surge cuando a> 0 [matemática] a> 0 [/ matemática]. En este régimen, el gradiente tiene un valor constante. En contraste, el gradiente de sigmoides se vuelve cada vez más pequeño a medida que aumenta el valor absoluto de x. El gradiente constante de ReLU resulta en un aprendizaje más rápido.

El otro beneficio de ReLU es la escasez. La escasez surge cuando a≤0 [matemática] a≤0 [/ matemática]. Cuantas más unidades de este tipo existan en una capa, más escasa será la representación resultante. Los sigmoides, por otro lado, siempre generan un valor distinto de cero que da como resultado representaciones densas. Las representaciones dispersas parecen ser más beneficiosas que las representaciones densas.

Debido al problema del gradiente de fuga.

Como puede ver, el gradiente de la función sigmoidea se saturará y, al usar la regla de la cadena, se reducirá. Por el contrario, la derivada para ReLU es siempre 1 o 0.

More Interesting

¿Es posible construir algo así como una red neuronal recurrente simplemente ingresando los mismos datos a lo largo del tiempo (por ejemplo, si los datos son una aceleración, cada entrada es el acc a la vez T)?

Cómo usar la función Master-Slave de PHPMyAdmin para replicar una base de datos en una máquina diferente

Tengo un conjunto de datos con una combinación de datos cualitativos y cuantitativos, ¿cómo puedo inferir una relación o sensibilidad entre las columnas?

¿Cómo se usa una capa oculta soft-max en una red neuronal profunda?

Data Science, Big Data, Machine Learning, ¿qué certificación debo hacer para cambiar la trayectoria profesional desde un entorno de control de calidad?

¿La asignación de Dirichlet latente es un modelo paramétrico o no paramétrico?

¿Cuál es el significado del espacio latente?

¿Debería centrarme en conseguir un trabajo o aprender ciencia de datos?

En Machine Learning: ¿por qué siempre entrenamos una muestra en lugar de todo el conjunto de datos / base de datos?

¿Cómo funcionan los métodos de conjunto y por qué son superiores a los modelos individuales?

¿Qué es el aprendizaje automático y cuál es su futuro?

¿Qué es mejor para la detección de automóviles: Haar Cascade o HOG?

¿Cómo puede un joven de 16 años comenzar a aprender sobre el aprendizaje automático?

¿Qué significa decir: "En la geometría de la información, el paso E y el paso M se interpretan como proyecciones bajo dos conexiones afines"?

¿Qué significa 'regresión' en estadística y aprendizaje automático?