¿Cómo evita LSTM el problema del gradiente de fuga?


35

El LSTM se inventó específicamente para evitar el problema del gradiente de fuga. Se supone que debe hacer eso con el carrusel de error constante (CEC), que en el diagrama a continuación (de Greff et al. ) Corresponde al bucle alrededor de la celda .

LSTM
(fuente: deeplearning4j.org )

Y entiendo que esa parte puede verse como una especie de función de identidad, por lo que la derivada es una y el gradiente permanece constante.

Lo que no entiendo es cómo no desaparece debido a las otras funciones de activación. Las puertas de entrada, salida y olvido usan un sigmoide, cuya derivada es como máximo 0.25, y g y h eran tradicionalmente tanh . ¿Cómo la propagación hacia atrás a través de esos no hace que el gradiente desaparezca?


2
LSTM es un modelo de red neuronal recurrente que es muy eficiente para recordar dependencias a largo plazo y que no es vulnerable al problema del gradiente de fuga. No estoy seguro de qué tipo de explicación estás buscando
TheWalkingCube

LSTM: Memoria larga a corto plazo. (Ref: Hochreiter, S. y Schmidhuber, J. (1997). Memoria a corto plazo. Computación neural 9 (8): 1735-80 · Diciembre de 1997)
horaceT

Los gradientes en los LSTM desaparecen, solo que más lentamente que en los RNN de vainilla, lo que les permite detectar dependencias más distantes. Evitar el problema de la desaparición de los gradientes sigue siendo un área de investigación activa.
Artem Sobolev

1
¿Te gustaría respaldar la desaparición más lenta con una referencia?
bayerj

relacionado: quora.com/…
Pinocho

Respuestas:


22

El gradiente de fuga se explica mejor en el caso unidimensional. La multidimensional es más complicada pero esencialmente análoga. Puede revisarlo en este excelente artículo [1].

Supongamos que tenemos un estado oculto en el paso de tiempo . Si simplificamos las cosas y eliminamos los sesgos y las entradas, tenemos Entonces puedes demostrar quehtt

ht=σ(wht1).

htht=k=1ttwσ(whtk)=wtt!!!k=1ttσ(whtk)
El factor marcado con !!! es el crucial Si el peso no es igual a 1, decaerá a cero exponencialmente rápido en , o crecerá exponencialmente rápidott .

En LSTM, tiene el estado de celda . La derivada allí tiene la forma Aquí es la entrada a la puerta de olvidar. Como puede ver, no hay un factor de descomposición exponencialmente rápido involucrado. En consecuencia, hay al menos un camino donde el gradiente no desaparece. Para la derivación completa, ver [2].st

stst=k=1ttσ(vt+k).
vt

[1] Pascanu, Razvan, Tomas Mikolov y Yoshua Bengio. "Sobre la dificultad de entrenar redes neuronales recurrentes". ICML (3) 28 (2013): 1310-1318.

[2] Bayer, Justin Simon. Representaciones de secuencia de aprendizaje. Diss. München, Technische Universität München, Diss., 2015, 2015.


3
Para lstm, no h_t también dependerá de h_ {t-1}? ¿Qué quiere decir en su papel cuando se dice ds_t / d_s {t-1} "es la única parte en la que los gradientes de flujo a través del tiempo"?
user3243135

@ no user3243135 h_t dependerán h_ {t-1}. Sin embargo, se mantiene ds_t supongamos / d_s {t-1}, incluso si otros flujos de gradiente se desvanecen, todo el flujo de gradiente no se anula. Esto resuelve gradiente de fuga.
soloice

Siempre pensé que el tema principal era el término porque si es por lo general la derivada de una sigmoide (o algo con un derivado de menos de 1) que causó que el gradiente de fuga de seguro (por ejemplo, sigmoids son <1 en magnitud y su derivado es que es < 1 a ciencia cierta). Es por eso que no se aceptó en relus CNNs? Esto es una cosa que siempre me confundió en la diferencia en la forma en gradiente de fuga se abordó en la alimentación de los modelos directos frente a los modelos recurrentes. Cualquier aclaración para esto?
ttσ(whtk)
σ(z)σ(x)=σ(z)(1σ(z))
Pinocchio

El gradiente del sigmoide también podría convertirse en un problema, suponiendo una distribución de entradas con gran varianza y / o media lejos de 0. Sin embargo, incluso si usa ReLU, el problema principal persiste: multiplicar repetidamente por una matriz de pesos (generalmente pequeña ) provoca gradientes que desaparecen, o en algunos casos, donde la regularización no ha sido adecuada, gradientes explosivos.
Ataxias

3

La imagen del bloque LSTM de Greff et al. (2015) describe una variante que los autores llaman vanilla LSTM . Es un poco diferente de la definición original de Hochreiter y Schmidhuber (1997). La definición original no incluía la puerta de olvidar y las conexiones de mirilla.

El término Carrusel de error constante se usó en el documento original para denotar la conexión recurrente del estado de la celda. Considere la definición original donde el estado de la celda se cambia solo por adición, cuando se abre la puerta de entrada. El gradiente del estado de la celda con respecto al estado de la celda en un paso de tiempo anterior es cero.

El error aún puede ingresar al CEC a través de la puerta de salida y la función de activación. La función de activación reduce un poco la magnitud del error antes de agregarlo al CEC. CEC es el único lugar donde el error puede fluir sin cambios. Nuevamente, cuando se abre la puerta de entrada, el error sale a través de la puerta de entrada, la función de activación y la transformación afín, reduciendo la magnitud del error.

Por lo tanto, el error se reduce cuando se propaga hacia atrás a través de una capa LSTM, pero solo cuando entra y sale de la CEC. Lo importante es que no cambia en la CCA sin importar la distancia que recorra. Esto resuelve el problema en el RNN básico de que cada paso aplica una transformación afín y no linealidad, lo que significa que cuanto mayor sea la distancia de tiempo entre la entrada y la salida, menor será el error.


2

http://www.felixgers.de/papers/phd.pdf Consulte la sección 2.2 y 3.2.2 donde se explica la parte de error truncado. No propagan el error si se escapa de la memoria de la celda (es decir, si hay una puerta de entrada cerrada / activada), pero actualizan los pesos de la puerta en función del error solo por ese instante de tiempo. Más tarde se pone a cero durante la propagación posterior. Esto es una especie de pirateo, pero la razón para hacerlo es que el flujo de error a lo largo de las puertas de todos modos decae con el tiempo.


77
¿Podría ampliar un poco sobre esto? Por el momento, la respuesta no tendrá valor si la ubicación del enlace cambia o si el documento se desconecta. Por lo menos, sería útil dar una cita completa (referencia) que permita encontrar el documento nuevamente si el enlace deja de funcionar, pero sería mejor un breve resumen que haga que esta respuesta sea autónoma.
Silverfish

2

Me gustaría agregar algunos detalles a la respuesta aceptada, porque creo que es un poco más matizada y el matiz puede no ser obvio para alguien que primero está aprendiendo sobre RNN.

Para el RNN de vainilla, .

htht=k=1ttwσ(whtk)

Para el LSTM,

stst=k=1ttσ(vt+k)

  • Una pregunta natural es: ¿las dos sumas de productos no tienen un término sigmoide que, multiplicado entre sí, veces puede desaparecer?tt
  • la respuesta es , por lo que LSTM también sufrirá gradientes de fuga, pero no tanto como el RNN de vainilla

La diferencia es para el RNN de vainilla, el gradiente decae con mientras que para el LSTM el gradiente decae con .wσ()σ()

Para el LSTM, hay un conjunto de pesos que se pueden aprender de manera que Suponga que para un peso e ingrese . Entonces la red neuronal puede aprender una gran para evitar que los gradientes desaparezcan.

σ()1
vt+k=wxwxw

Por ejemplo, en el caso 1D si , entonces el factor de disminución , o el gradiente muere como:x=1w=10 vt+k=10σ()=0.99995

(0.99995)tt

Para el RNN de vainilla, no hay un conjunto de pesos que se pueda aprender de modo que

wσ(whtk)1

Por ejemplo, en el caso 1D, suponga que . La función alcanza un máximo de en . Esto significa que el gradiente decaerá como,htk=1wσ(w1)0.224w=1.5434

(0.224)tt

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.