El estado del arte de la no linealidad es utilizar unidades lineales rectificadas (ReLU) en lugar de la función sigmoidea en la red neuronal profunda. ¿Cuáles son las ventajas?
Sé que entrenar una red cuando se usa ReLU sería más rápido, y tiene más inspiración biológica, ¿cuáles son las otras ventajas? (Es decir, ¿alguna desventaja de usar sigmoid)?
machine-learning
neural-networks
deep-learning
RockTheStar
fuente
fuente
Respuestas:
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 donde .a = W x + bh=max(0,a) a=Wx+b
Un beneficio importante es la probabilidad reducida de que el gradiente desaparezca. Esto surge cuando . 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.a>0
El otro beneficio de ReLU es la escasez. La escasez surge cuando . 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.a≤0
fuente
Ventaja:
Desventaja:
Sigmoide: tiende a desaparecer el gradiente (porque existe un mecanismo para reducir el gradiente como " " aumento, donde " " es la entrada de una función sigmoidea. Gradiente de sigmoide: . Cuando " " crece hasta infinitamente grande, ).a S ′ ( a ) = S ( a ) ( 1 - S ( a ) ) a S ′ ( a ) = S ( a ) ( 1 - S ( a ) ) = 1 × ( 1 - 1 ) = 0a a S′(a)=S(a)(1−S(a)) a S′(a)=S(a)(1−S(a))=1×(1−1)=0
Relu: tiende a explotar la activación (no existe un mecanismo para restringir la salida de la neurona, ya que " " en sí es la salida)a
fuente
$x$
produce .Solo complementando las otras respuestas:
Gradientes de fuga
Las otras respuestas son correctas al señalar que cuanto mayor es la entrada (en valor absoluto), menor es el gradiente de la función sigmoidea. Pero, probablemente un efecto aún más importante es que la derivada de la función sigmoidea SIEMPRE es más pequeña que una . De hecho, ¡es como máximo 0.25!
El lado negativo de esto es que si tiene muchas capas, multiplicará estos gradientes, y el producto de muchos valores menores que 1 irá a cero muy rápidamente.
Dado que el estado del arte de Deep Learning ha demostrado que más capas ayudan mucho, entonces esta desventaja de la función Sigmoid es un asesino de juegos. Simplemente no puedes hacer Deep Learning con Sigmoid.
Por otro lado, el gradiente de la función ReLu es para o para . Eso significa que puede poner tantas capas como desee, ya que multiplicar los gradientes no desaparecerá ni explotará.a < 0 1 a > 00 a<0 1 a>0
fuente
Una ventaja de ReLU además de evitar el problema de gradientes de fuga es que tiene un tiempo de ejecución mucho menor. max (0, a) se ejecuta mucho más rápido que cualquier función sigmoidea (función logística, por ejemplo, = 1 / (1 + e ^ (- a)) que utiliza un exponente que es computacionalmente lento cuando se realiza con frecuencia). Esto es cierto tanto para la propagación hacia adelante como hacia atrás, ya que el gradiente de ReLU (si a <0, = 0 else = 1) también es muy fácil de calcular en comparación con sigmoide (para la curva logística = e ^ a / ((1 + e ^ a) ^ 2)).
Aunque ReLU tiene la desventaja de morir células que limita la capacidad de la red. Para superar esto, solo use una variante de ReLU, como ReLU con fugas, ELU, etc., si observa el problema descrito anteriormente.
fuente
Una respuesta adicional para completar en el debate de rendimiento Sparse vs Dense .
No piense más en NN, solo piense en álgebra lineal y operaciones matriciales, porque las propagaciones hacia adelante y hacia atrás son una serie de operaciones matriciales.
Ahora recuerde que existe una gran cantidad de operadores optimizados para aplicar a una matriz dispersa y, por lo tanto, optimizar esas operaciones en nuestra red podría mejorar drásticamente el rendimiento del algoritmo.
Espero que eso pueda ayudar a algunos de ustedes ...
fuente
El beneficio principal es que la derivada de ReLu es 0 o 1, por lo que multiplicarla no hará que los pesos que están más lejos del resultado final de la función de pérdida sufran el problema del gradiente de fuga:
fuente