Ahora leo un libro titulado "Aprendizaje automático práctico con Scikit-Learn y TensorFlow" y en el capítulo 11, tiene la siguiente descripción sobre la explicación de ELU (Exponencial ReLU).
Tercero, la función es suave en todas partes, incluso alrededor de z = 0, lo que ayuda a acelerar el Descenso de degradado, ya que no rebota tanto a la izquierda como a la derecha de z = 0.
El z
significa el eje x en el gráfico de arriba. Entiendo que la derivada es suave ya que la z < 0
línea tiene una curva y en ese ámbito la derivada ya no es igual a 0
.
Sin embargo, ¿por qué ocurre que si la función es "uniforme en todas partes, incluso alrededor de z = 0", se acelera el Descenso de degradado?
deep-learning
gradient-descent
Blaszard
fuente
fuente
Respuestas:
Supongo que se debe a la derivada, ya que ReLU tiene una derivada discontinua en 0. Por lo tanto, si usa la definición:
fuente
Un preliminar: hay tres atributos de una función que son relevantes aquí: continuo, monótono y diferenciable. El RELU es una tuerca continua y monotónica no diferenciable en z = 0. El relu exponencial o ELU son los tres de esos atributos.
El diferencial o gradiente te da una dirección. Cuando la derivada de una función no está definida en un punto, entonces la dirección del gradiente es indeterminada en ese punto.
Al aplicar el descenso de gradiente, deseamos modificar continuamente los parámetros de modo que la función de pérdida disminuya constantemente, lo que es lo mismo que decir que deseamos seguir bajando hacia el mínimo.
Cuando la derivada de una función de pérdida no está definida en algún momento, el gradiente es indeterminado. Esto significa que el descenso del gradiente podría potencialmente moverse en la dirección incorrecta. La magnitud del retraso causado por esta indeterminación depende de la tasa de aprendizaje y otros hiperparámetros. Independientemente de los hiperparámetros, estadísticamente, la derivada indefinida en RELU en z = 0, contribuye a disminuir la convergencia del descenso del gradiente.
fuente
Ser más rápido o más bajo es un término relativo y debe entenderse en el contexto de lo que se compara. Entonces, para entender esto, primero debemos considerar cómo funciona el descenso de gradiente con otros tipos de la función de activación.
Configuración de ejemplo
...
Tanh y Sigmoid - Gradiente de fuga
RELU y neurona muerta
Fugas RELU y ELU
Cito el artículo original para la diferencia entre los dos.
La explicación intuitiva es la siguiente. En ELU, cada vez que x se hizo lo suficientemente pequeño, el gradiente se volvió realmente pequeño y saturado (de la misma manera que sucede con Tanh y Sigmoid). El pequeño gradiente significa que el algoritmo de aprendizaje puede enfocarse en el ajuste de otros pesos sin preocuparse por la interactividad con las neuronas saturadas.
Considere un polinomio de grado 2 que se puede representar como una superficie lisa en un espacio tridimensional. Para encontrar el mínimo local, un algoritmo de descenso de gradiente necesitará considerar la inclinación tanto en la dirección x como en la dirección y. Si el gradiente es negativo tanto en la dirección x como en la dirección y, no está claro en qué dirección es mejor. Por lo tanto, es sensato elegir un camino en algún punto intermedio. Pero, si ya sabemos que todo es plano (gradientes cero) en la dirección x, entonces se vuelve obvio ir a la dirección y. O, en otras palabras, el espacio de búsqueda se vuelve mucho más pequeño.
nota especial
En el aprendizaje profundo, hay muchas afirmaciones sin suficiente evidencia empírica o comprensión profunda para respaldarlo. En el caso de ELU, si bien podría ser cierto que resulta en una convergencia más rápida para algunos conjuntos de datos, también podría ser cierto que hace que el algoritmo de aprendizaje permanezca en el máximo local para un conjunto de datos diferente. Simplemente no sabemos lo suficiente todavía.
fuente
Tengo una noción intuitiva de por qué las funciones suaves son más rápidas de optimizar, pero no hay pruebas matemáticas ni nada.
El descenso de gradiente calcula la derivada de la función de activación para determinar el cambio en los pesos. Cuando la función de activación tiene un corte duro (por ejemplo, en z = 0 para ReLu), la activación de la unidad puede cambiar radicalmente (es decir, siempre cero o lineal) para puntos de datos específicos cuando se cambian los pesos.
Los otros pesos deben adaptarse a este comportamiento radicalmente diferente de una unidad específica para puntos de datos específicos. Sin embargo, si el comportamiento de la unidad cambia radicalmente nuevamente durante la próxima época, la red sigue adaptándose a los cambios de la época anterior.
Con una función suave, no hay cambios tan radicales. Y así, la red puede estabilizarse más gradualmente.
fuente