¿Por qué los RNN con unidades LSTM también pueden sufrir "gradientes explosivos"?

13

Tengo un conocimiento básico de cómo funcionan los RNN (y, en particular, con las unidades LSTM). Tengo una idea pictórica de la arquitectura de una unidad LSTM, que es una celda y algunas puertas, que regulan el flujo de valores.

Sin embargo, al parecer, no he entendido completamente cómo LSTM resuelve el problema de "gradientes que desaparecen y explotan", que ocurre durante el entrenamiento, utilizando la propagación inversa a través del tiempo, un RNN convencional. No he tenido la oportunidad de leer los periódicos para comprender completamente las matemáticas.

Esta respuesta da una breve explicación de cómo los RNN con unidades LSTM resuelven el problema de "gradientes de fuga". Matemáticamente, la razón parece ser la inexistencia de una derivada que no se desvanece, es decir, no tiende a cero. En consecuencia, el autor afirma que "hay al menos un camino donde el gradiente no se desvanece". En mi humilde opinión, esta explicación es un poco vaga.

Mientras tanto, estaba leyendo el artículo Sequence to Sequence Learning with Neural Networks (por Ilya Sutskever, Oriol Vinyals, Quoc V. Le) y, en ese artículo, la sección "3.4 Detalles del entrenamiento", se afirma

Aunque los LSTM tienden a no sufrir el problema del gradiente de fuga, pueden tener gradientes explosivos.

Siempre he pensado que los RNN con unidades LSTM resuelven los problemas de "gradiente de fuga" y de "gradientes explosivos", pero, aparentemente, los RNN con unidades LSTM también sufren "gradientes explosivos".

Intuitivamente, ¿por qué es eso? Matemáticamente, ¿cuáles son las razones?

nbro
fuente

Respuestas:

12

Una respuesta muy corta:

LSTM desacopla el estado de la celda (típicamente denotado por c) y la capa / salida oculta (típicamente denotada por h), y solo realiza actualizaciones aditivas c, lo que hace que las memorias sean cmás estables. Por lo tanto, el gradiente que fluye cse mantiene y es difícil de desvanecer (por lo tanto, el gradiente general es difícil de desvanecer). Sin embargo, otros caminos pueden causar una explosión de gradiente.


Una respuesta más detallada con explicación matemática:

Primero revisemos el mecanismo CEC (Constant Error Carousel). CEC dice, desde el paso del tiempo thasta t+1, si la puerta de olvidar es 1 (no hay puerta de olvidar en el documento LSTM original, por lo tanto, este es siempre el caso), el gradiente puede fluir sin cambios. Siguiendo las fórmulas de BPTT en el documento LSTM: A Search Space Odyssey Apéndice A.2 ( en el artículo se encuentra en otra literatura), el flujo de CEC en realidad corresponde a la ecuación . Cuando está cerca de 1, acumula en sin pérdidas.dl/dctyhδct=+δct+1ft+1ft+1δct+1δct

Sin embargo, LSTM es más que CEC. Además de la ruta CEC de a , existen otras rutas entre dos pasos de tiempo adyacentes. Por ejemplo, . Recorriendo el proceso de propagación hacia atrás en 2 pasos, tenemos: , vemos que se multiplica dos veces en este camino al igual que los RNN de vainilla, lo que puede causar una explosión de gradiente. Del mismo modo, las rutas a través de la entrada y la puerta olvidada también pueden causar una explosión de gradiente debido a la auto-multiplicación de las matrices .ctct+1ytot+1yt+1δytRoTδot+1δyt+1RoTδot+2RoTRiT,RfT,RzT

Referencia:

K. Greff, RK Srivastava, J. Koutn´ık, BR Steunebrink y J.Schmidhuber. LSTM: una odisea del espacio de búsqueda. CDR, abs / 1503.04069, 2015.

soloice
fuente
¿Podría incluir una cita completa para ese documento? Los enlaces tienden a desaparecer.
mkt
2
@mkt Gracias por tu consejo. En realidad, este es un documento muy famoso y el enlace va a arXiv, por lo que no es probable que muera, jajaja ~ Pero asegúrese de verificar la versión v1 (porque la versión actual v2 no incluye un apéndice).
soloice
Gracias por agregarlo de todos modos, y los detalles sobre el apéndice.
mkt - Restablecer Mónica
Gran respuesta, generalmente no hago comentarios para poner +1, pero esto lo merece. Mostrar un ejemplo real con álgebra matricial de rutas posiblemente inestables en una celda LSTM responde exactamente al OP.
DeltaIV
3

Los RNN anteriores a LSTM / GRU solían ser inestables porque lo que estaban haciendo era esencialmente la multiplicación del estado oculto con algunos pesos para cada paso de tiempo, lo que significa que es una operación exponencial. Y como sabemos, la exponenciación es muy inestable: celdas LSTM / GRU resuelven este problema al convertir la multiplicación en una suma. Tienes un estado de celda y, en lugar de multiplicarlo, sumas o restas de él.1 200 = 1 1,01 20013

0.992000.134
1200=1
1.0120013

Sin embargo, todavía hay algunos caminos a través de los cuales el gradiente puede volverse inestable, y cuanto más grande sea la red, más probable es que te encuentres con este problema.

Lugi
fuente
3
¿Por qué respondería esto a mi pregunta? Me gustaría saber los detalles.
nbro