¿Por qué diverge un LSTM con activaciones ReLU?

Diría que tiene sentido que al usar una unidad rectificadora lineal (RELU) dentro de la celda de memoria a corto plazo (LSTM), su modelo divergiría. Si observamos la variante más común del conjunto de ecuaciones LSTM (es decir, aquellas con conexiones de mirilla) que se muestra a continuación [1], puede ver por qué una función de activación que no se satura (como la RELU) colocada en cualquiera de las posibles funciones de activación que se muestran a continuación realmente no sería una buena idea:

Deconstruyamos el modelo. Por lo tanto, los sigmoides / enlaces logísticos (es decir, las “sigmas”) son necesarios ya que sirven como “puertas” y, por lo tanto, deben estar delimitados en el intervalo [0,1]. Ahora, para las funciones de activación g (.) Y h (.), Observe lo que estamos haciendo con sus salidas → estamos calculando un producto hadamard con su salida y la salida de otra cosa (en diferentes ecuaciones). La salida de la puerta de entrada se multiplica por elementos con c ^ \ tilde (en el paso t) y la salida de la puerta de olvido se multiplica por elementos con la salida de contexto / celda anterior (del último paso de tiempo). La puerta de salida (o) también se multiplica por elementos por la salida de celda actual (c ^ t) ejecutada a través de la función h (.). Cuando tiene productos hadamard, las activaciones pueden explotar rápidamente (si configuramos g (.) O h (.) Como RELU) si utiliza funciones de activación que no están limitadas (o “squash”) como RELU (ya que no tiene límites en su parte positiva).

Además, aunque complejo (y, por lo tanto, más lento desde el punto de vista computacional), el LSTM se diseñó con un esquema de activación en mente para abordar mejor el problema de los gradientes que desaparecen. El RELU no es necesario (como en las arquitecturas de avance, o en algunos modelos RNN más simples) en este caso, que es lo bueno del LSTM, y muy probablemente por qué se usa casi al por mayor en la mayoría de las aplicaciones =] De esta manera, las personas enfóquese menos en retocar los detalles arquitectónicos y enfóquese más en el problema de optimización, los datos y la tarea objetivo.

[1] diagrama de LSTM con ecuaciones de mirilla prestadas de redes neuronales recurrentes, RNN, LSTM, memoria a largo plazo, redes neuronales, aprendizaje automático, PNL

Se trata de hacer gating. Supongo que usó ReLU para las puertas (puerta de entrada, puerta de salida, puerta de olvido).

El papel de esas puertas es limitar la cantidad de información de otras capas de modo que la celda no contenga demasiada información. Piensa en la célula como una unidad de pensamiento. Necesita olvidar cosas para guardar otras nuevas, es “mente”, digamos. Aquí necesita una puerta olvidada en sus valores pasados.

La cuestión es que esas puertas varían de 0 a 1 con el sigmoide. El hecho de que esas puertas estén activando (multiplicando) la señal es que la corta o no. Al tener valores ReLU que pueden ser mayores que 1, la cosa puede divergir si entra en un ciclo de retroalimentación positiva, siempre multiplicándose por valores demasiado grandes mayores que uno en cada paso.

Por lo tanto, puede ser un problema de inicialización: tiene pesos y sesgos demasiado grandes en sus capas de compuerta, de modo que sus compuertas tienen valores de compuerta demasiado altos. Sin embargo, incluso si se inicializa bien, no detendría que ReLU LSTM divergiera más adelante para algunos ejemplos particulares en el entrenamiento.

En resumen: tener valores de compuerta superiores a 1 puede llevarlo a un ciclo de retroalimentación positiva demasiado fuerte en pasos de tiempo repetidos.

Nota: La activación de ReLU discutida aquí es como se haría dentro de la celda LSTM. Tener una activación ReLU fuera de la celda LSTM (por ejemplo, en las capas cercanas) puede ser beneficioso.

Nadie sabe realmente por qué, los LSTM empíricamente no funcionan bien con ReLU.

Parecen funcionar mejor con Tanhs y sigmoides.

More Interesting

¿Qué algoritmos de aprendizaje automático se pueden usar para crear una calculadora matemática de lenguaje natural en Python?

¿Cómo decidimos entre usar la factorización a priori o matriz para el filtrado colaborativo?

¿Cuál es la conexión entre un modelo probabilístico y un gráfico en un modelo gráfico probabilístico?

¿Qué trabajo puede hacer un ingeniero de aprendizaje automático para ayudar a las personas?

¿Cuál crees que es la razón detrás de la asociación de Microsoft y Amazon en la tecnología de red neuronal llamada 'Gluon'?

¿Cómo se compara Caffe 2 con TensorFlow?

¿Cuál es el gradiente de la función de probabilidad logarítmica en la regresión logística multinomial?

Cómo usar la prueba T de Student para la selección de funciones

¿Cuál es la explicación intuitiva y práctica del algoritmo AdaBoost utilizado en el artículo de Viola-Jones sobre detección de rostros, en lenguaje moderadamente técnico?

¿Hay alguna debilidad en el uso de la agrupación máxima y la agrupación promedio?

¿Dónde puedo encontrar a alguien que me enseñe 1 a 1 sobre el aprendizaje automático?

¿Cuál es el mejor método para la reducción de dimensionalidad y la selección / extracción de características en datos de espectrometría de masas?

¿Qué son los componentes del procesamiento del lenguaje natural?

¿Existe alguna justificación para usar características explícitas de usuario / elemento en la recomendación de MF?

¿AWS es bueno para ejecutar proyectos de aprendizaje profundo? ¿Qué tan rápido y costoso sería entrenar una red convolucional en aproximadamente 1 millón de imágenes?