¿En qué se diferencia LSTM de RNN? En una explicación laica.

Los LSTM son un tipo de RNN. Entonces, la pregunta es ¿en qué se diferencia de un RNN de vainilla ?

En primer lugar, recuerde que los RNN (tanto LSTM como un RNN de vainilla) tienen este tipo de estructura cuando se desenrollan.

Básicamente, nos estamos alimentando en una secuencia de entradas. La esperanza es que los estados de la “celda” contengan información de todas las entradas que se han alimentado hasta ese punto, es decir, todas las X que se han alimentado tienen algo que decir en el estado de A. Piensa en ello como Se supone que A escucha, más o menos, cada una de las X.

Ahora, en el RNN de vainilla, lo interno de la célula es esto:

Imagine un mensajero que lleva información de la primera celda a la última. Primero “escucha” a X0 y luego escucha a X1 y así sucesivamente hasta que alcanza el último estado.

X0: “¡Hola A! *Informacion IMPORTANTE*”

A: “Está bien. Entendido.”

X1: “¡Hola A! * Información irrelevante * “

A: “Claro”.

X2: “¡Hola A! *Informacion IMPORTANTE*”

A: “Está bien”.

Entonces, con toda probabilidad, solo recuerda lo que dijeron las X posteriores, es decir, las cosas que las X dijeron al comienzo de la secuencia tienen poca o ninguna influencia en lo que A recuerda al final.

Eso es un problema porque significa que la red no tiene en cuenta las dependencias largas (er). Entonces, aquí, ¡A podría haber olvidado por completo lo que X0 había dicho!

LSTM intenta evitar eso.

Parece complicado pero la parte principal es la línea superior.

Básicamente hay una autopista de información que atraviesa la red que está cerrada.

Entonces, en lugar de simplemente agregar la información obtenida al escuchar cada X, es más “selectivo” acerca de lo que elige olvidar de su memoria, lo que escucha y qué información agrega a su memoria (a largo plazo).

X0: “¡Hola A! *Informacion IMPORTANTE*”

A: “Está bien. Lo tengo “. * Escribe la información *

X1: “¡Hola A! * Información irrelevante * “

A: * Frunce el ceño * “Umm … creo que voy a fingir que no lo escuché”.

X2: “¡Hola A! *Informacion IMPORTANTE*”

R: * Mira el documento * “Hmm … Esto cambia parte de la información que X0 había compartido …” * Actualiza el documento en consecuencia * “Está bien. Actualizado.”

Por lo tanto, la esperanza es que al ser más selectivo, puede recordar dependencias más largas, recuerdos, si eso es útil para la tarea en cuestión. Por supuesto, también se espera que la red aprenda a ser selectiva de la manera correcta.

Nota final:

Esto está extremadamente simplificado y puede ser engañoso / incorrecto de alguna manera. Pero supongo que funciona como una explicación laica.

Lecturas adicionales:

[1] ¿Cuál es el problema del gradiente de fuga?

(La explicación anterior toca el problema del gradiente de fuga. Pero también podríamos tener gradientes explosivos).

[2] Memorias escritas: comprensión, derivación y extensión del LSTM

[3] Comprensión de las redes LSTM (explicación impresionante. Todas las imágenes tomadas desde aquí).

Los LSTM son un tipo especial de redes neuronales recurrentes (RNN). Como ya sabe, los RNN son una amplia categoría de redes neuronales con bucles de retroalimentación, y son capaces de “recordar” y utilizar información sobre entradas anteriores.

Para comprender por qué los LSTM han dominado el campo de los RNN, primero debemos analizar brevemente cómo se entrenan las redes neuronales. La mayoría de las redes se entrenan a través de alguna variante de descenso de gradiente , que es un proceso iterativo. En cada paso, hacemos lo siguiente:

  1. Déle a nuestra red neuronal algo de entrada y haga que calcule algo de salida (“propagación directa”)
  2. Mida el error de la salida
  3. Usa el error para calcular el gradiente . En términos generales, el gradiente nos dice cómo cambiar los parámetros en nuestra red neuronal para reducir la cantidad de error en nuestro modelo. El gradiente se calcula a través de la propagación inversa, que es básicamente la regla de la cadena en el cálculo.
  4. repita los pasos 1–4 con otras entradas

(Dependiendo de la variante de descenso de gradiente que use, estos pasos pueden cambiar un poco)

Desafortunadamente, el gradiente en las redes neuronales profundas es inestable. Como los gradientes anteriores son el producto de los gradientes posteriores, tienden a aumentar o disminuir exponencialmente. Esto se conoce como el problema de gradiente de desaparición / explosión . (Aquí hay un capítulo de un libro de texto en línea muy agradable al respecto. Si bien no se trata exactamente de los términos simples, las matemáticas son relativamente delicadas y me pareció muy útil)

¡Este problema con gradientes inestables es mucho peor en los RNN! Esto se debe a que cuando entrenamos RNN, no solo estamos calculando el gradiente a través de todas las diferentes capas, sino también a través del tiempo . (Una forma de visualizar esto es que “desenrollamos” el RNN, por lo que terminamos con muchas copias diferentes del mismo RNN apiladas una encima de la otra, y entrenamos todo esto de una vez). Esto conduce a muchas, muchas más capas y, por lo tanto, el problema del gradiente de fuga se vuelve mucho peor. Por lo tanto, aunque los RNN “vainilla” en teoría deberían poder usar información del pasado distante, no han podido hacerlo en la práctica (ej. Recordar una palabra en una oración anterior).

Ingrese a redes de memoria de corto plazo (LSTM). Los LSTM introducen el concepto de estados celulares, que proporcionan “autopistas” para que el gradiente fluya hacia atrás a través del tiempo libremente, lo que lo hace más resistente al problema del gradiente de fuga.

El estado de la celda puede considerarse casi como datos almacenados en la memoria de una computadora. Los LSTM pueden “recordar” u “olvidar” información en el estado celular mediante el uso de neuronas especializadas llamadas “puertas”. De esta manera, los LSTM pueden retener dependencias a largo plazo y conectar información del pasado al presente. Hay tres puertas:

  1. olvidar puerta: decidir qué información de entradas anteriores para olvidar
  2. puerta de entrada: decida qué nueva información recordar
  3. puerta de salida: decida qué parte del estado de la celda se emitirá (esto es lo que vemos saliendo del LSTM)

La matemática para la propagación inversa (medición del gradiente) en los LSTM es mucho más complicada, pero resulta conveniente para que la información en nuestro estado celular no se vea afectada por el problema del gradiente de fuga. Por lo tanto, los LSTM son mucho más resistentes a los gradientes de fuga.

Si sientes que los LSTM suenan realmente complicados, no estás solo. Los investigadores han introducido muchas variantes más simples de LSTM, pero hasta ahora la compensación entre la complejidad y el rendimiento del modelo se ha mantenido. Es por eso que los LSTM, aunque complejos, siguen siendo muy populares.

El blog de Christopher Olah tiene una publicación maravillosa sobre LSTM, con ilustraciones esclarecedoras. Aunque no es exactamente en términos simples, es una gran lectura.