En referencia a las notas del curso de Stanford sobre Redes neuronales convolucionales para el reconocimiento visual , un párrafo dice:
"Desafortunadamente, las unidades ReLU pueden ser frágiles durante el entrenamiento y pueden" morir ". Por ejemplo, un gran gradiente que fluye a través de una neurona ReLU podría hacer que los pesos se actualicen de tal manera que la neurona nunca se active en ningún punto de datos nuevamente. Si esto sucede, entonces el gradiente que fluye a través de la unidad será para siempre cero a partir de ese momento. Es decir, las unidades ReLU pueden morir irreversiblemente durante el entrenamiento ya que pueden ser eliminadas del múltiple de datos. Por ejemplo, puede encontrar que hasta 40 El porcentaje de su red puede estar "muerto" (es decir, neuronas que nunca se activan en todo el conjunto de datos de entrenamiento) si la tasa de aprendizaje se establece demasiado alta. Con una configuración adecuada de la tasa de aprendizaje, esto es un problema con menos frecuencia ".
¿Qué significa morir de neuronas aquí?
¿Podría por favor proporcionar una explicación intuitiva en términos más simples?
fuente
Respuestas:
Una ReLU "muerta" siempre genera el mismo valor (cero como sucede, pero eso no es importante) para cualquier entrada. Probablemente se llega a esto aprendiendo un término de sesgo negativo grande para sus pesos.
A su vez, eso significa que no tiene ningún papel en la discriminación entre entradas. Para la clasificación, puede visualizar esto como un plano de decisión fuera de todos los datos de entrada posibles.
Una vez que un ReLU termina en este estado, es poco probable que se recupere, porque el gradiente de la función en 0 también es 0, por lo que el aprendizaje del descenso del gradiente no alterará los pesos. Las ReLU "con fugas" con un pequeño gradiente positivo para las entradas negativas (
y=0.01x
cuando x <0, por ejemplo) son un intento de abordar este problema y dar la oportunidad de recuperarse.Las neuronas sigmoideas y de tanh pueden sufrir problemas similares a medida que sus valores se saturan, pero siempre hay al menos un pequeño gradiente que les permite recuperarse a largo plazo.
fuente
Repasemos cómo se ve la ReLU (unidad lineal rectificada):
Suponiendo una medida de error muy simple
fuente
What if, for the input 𝑥𝑛, the current weights put the ReLU on the left flat side while it optimally should be on the right side for this particular input ?
, si la entrada es negativa, ¿el gradiente sería 0? ¿Qué es óptimo para este caso? ¿Podrías ayudarme a entenderlo?Las neuronas ReLU generan cero y tienen derivadas cero para todas las entradas negativas. Entonces, si los pesos en su red siempre conducen a entradas negativas en una neurona ReLU, esa neurona efectivamente no está contribuyendo al entrenamiento de la red. Matemáticamente, la contribución del gradiente a las actualizaciones de peso provenientes de esa neurona siempre es cero (consulte el Apéndice matemático para obtener más detalles).
En general, lo que sucede depende de cómo fluye la información a través de la red. Puede imaginar que a medida que avanza el entrenamiento, los valores que producen las neuronas pueden desplazarse y hacer posible que los pesos eliminen todo el flujo de datos a través de algunos de ellos. (Sin embargo, a veces, pueden dejar estas configuraciones desfavorables debido a las actualizaciones de peso anteriores en la red). Exploré esta idea en una publicación de blog sobre la inicialización del peso , que también puede contribuir a este problema, y su relación con el flujo de datos. Creo que mi punto aquí puede ilustrarse con una trama de ese artículo:
El gráfico muestra las activaciones en un Perceptrón multicapa de 5 capas con activaciones ReLU después de un paso por la red con diferentes estrategias de inicialización. Puede ver que, dependiendo de la configuración del peso, las salidas de su red se pueden estrangular.
Apéndice Matemático
El primer término de la derecha se puede calcular de forma recursiva. El segundo término a la derecha es el único lugar que involucra directamente el peso y se puede dividir enw(i)jk
De esto puede ver que si los resultados son siempre negativos, los pesos que conducen a la neurona no se actualizan y la neurona no contribuye al aprendizaje.
fuente
Therefore, if your inputs are on roughly the same scale, a large step in the direction of the gradient can leave you with weights that give similar inputs which can end up being negative.
cómo los pesos se vuelven negativos si las entradas se normalizan?Para ser más específicos en el lenguaje, mientras que el gradiente local de ReLU (que es ) multiplica el gradiente que fluye hacia atrás debido a la propagación hacia atrás, el resultado del gradiente actualizado podría ser un gran número negativo (si el gradiente que fluye- El reverso es un número negativo grande).1
Tal gradiente actualizado negativo grande produce un negativo cuando la tasa de aprendizaje es relativamente grande, por lo tanto, reprimirá las actualizaciones que sucederán en esta neurona, ya que es casi imposible colocar un número positivo grande para compensar el gran número negativo traído por eso " roto " .w iwi wi
fuente
El "Dying ReLU" se refiere a la neurona que genera 0 para sus datos en el conjunto de entrenamiento. Esto sucede porque la suma de las entradas de peso * en una neurona (también llamada activación ) se convierte en <= 0 para todos los patrones de entrada. Esto hace que ReLU produzca 0. Como la derivada de ReLU es 0 en este caso, no se realizan actualizaciones de peso y la neurona se atasca en la salida 0.
Cosas a tener en cuenta:
fuente