Comprender las redes LSTM (Comprender las redes LSTM) texto original y traducción

Enlace original:

http://colah.github.io/posts/2015-08-Understanding-LSTMs/

Redes neuronales recurrentes

red neuronal recurrente

Los humanos no comienzan su pensamiento desde cero cada segundo.

La gente no siempre empieza desde cero.

A medida que lee este ensayo, comprende cada palabra en función de su comprensión de las palabras anteriores.

Al igual que lees este artículo, cada palabra que conoces se basa en tu comprensión previa de la palabra.

No tiras todo y empiezas a pensar desde cero otra vez.

No tiras todo, empiezas de cero.

Tus pensamientos tienen persistencia.

Tu mente es persistente.

Las redes neuronales tradicionales no pueden hacer esto y parece una gran deficiencia.

Las redes neuronales tradicionales no pueden hacer esto, lo que parece ser una gran deficiencia.

Por ejemplo, imagine que desea clasificar qué tipo de evento está sucediendo en cada punto de una película. 

Por ejemplo, suponga que desea clasificar lo que sucedió en cada punto de una película.

No está claro cómo una red neuronal tradicional podría usar su razonamiento sobre eventos anteriores en la película para informar los posteriores.

Todavía no está claro cómo usar las redes neuronales tradicionales para comprender el impacto de los eventos anteriores en las películas en los eventos posteriores.

Las redes neuronales recurrentes abordan este problema.

Las redes neuronales recurrentes resuelven este problema.

Son redes con bucles en ellas, lo que permite que la información persista.

Son redes que contienen bucles y guardan información.

 Las redes neuronales recurrentes tienen bucles.

Las redes neuronales recurrentes contienen bucles

En el diagrama anterior, una parte de la red neuronal,  Amira alguna entrada  x_{t} y genera un valor h_{t}.

Arriba hay un bloque de red neuronal, Aobservando un cierto  x_{t} valor de entrada y salida  h_{t}.

 Un bucle permite que la información pase de un paso de la red al siguiente.

Los bucles permiten que la información pase de un paso de la red al siguiente.

Estos bucles hacen que las redes neuronales recurrentes parezcan algo misteriosas.

Estos bucles hacen que las redes neuronales recurrentes parezcan algo imposibles de interpretar.

Sin embargo, si piensa un poco más, resulta que no son tan diferentes de una red neuronal normal. 

Sin embargo, si lo piensa un poco, no son tan diferentes de las redes neuronales normales.

Se puede pensar en una red neuronal recurrente como múltiples copias de la misma red, cada una de las cuales pasa un mensaje a un sucesor.

Las redes neuronales recurrentes se pueden considerar como múltiples copias de la misma red, cada una de las cuales pasa un mensaje a su sucesora.

Considere lo que sucede si desenrollamos el ciclo:

Considere lo que sucede si desenrollamos estos bucles:

Una red neuronal recurrente desenrollada.

Una red neuronal recurrente desenrollada. 

Una red neuronal recurrente desenrollada

Esta naturaleza de cadena revela que las redes neuronales recurrentes están íntimamente relacionadas con secuencias y listas.

Esta característica similar a una cadena sugiere que las redes neuronales recurrentes están fuertemente asociadas con secuencias y listas.

Son la arquitectura natural de la red neuronal que se utiliza para tales datos.

Son estructuras de redes neuronales naturales para procesar este tipo de datos.

¡Y ciertamente se usan!

¡Y son realmente útiles!

En los últimos años, ha habido un éxito increíble al aplicar RNN a una variedad de problemas: reconocimiento de voz, modelado de lenguaje, traducción, subtítulos de imágenes... La lista continúa.

En los últimos años, las redes neuronales recurrentes (RNN) se han aplicado con un éxito increíble a una variedad de problemas: reconocimiento de voz, modelado de lenguaje, traducción, subtítulos de imágenes y más.

Dejaré la discusión de las hazañas asombrosas que se pueden lograr con RNN en la excelente publicación de blog de Andrej Karpathy,  The Unreasonable Effectiveness of Recurrent Neural Networks .

Dejaré la discusión sobre las asombrosas hazañas posibles con RNN en la publicación de blog de Andrej Karpathy "La eficacia irrazonable de las redes neuronales recurrentes".

Pero realmente son bastante sorprendentes.

Pero son realmente asombrosos.

Esencial para estos éxitos es el uso de "LSTM", un tipo muy especial de red neuronal recurrente que funciona, para muchas tareas, mucho mejor que la versión estándar.

La clave de estos éxitos es el uso de "LSTM", un tipo muy específico de red neuronal recurrente que puede funcionar significativamente mejor que las RNN estándar en muchas tareas.

Casi todos los resultados emocionantes basados ​​en redes neuronales recurrentes se logran con ellos.

Casi todos los resultados emocionantes logrados con RNN los tienen.

Son estos LSTM los que explorará este ensayo.

Estos son los LSTM que se explorarán en este artículo.

El problema de las dependencias a largo plazo

problemas de dependencia a largo plazo

Uno de los atractivos de las RNN es la idea de que podrían conectar información previa con la tarea actual, como el uso de cuadros de video anteriores que podrían informar la comprensión del cuadro actual.

Un aspecto atractivo de las RNN es que pueden relacionar información previa con la tarea actual, por ejemplo, usar los cuadros anteriores de un video puede ayudar a comprender el cuadro actual.

Si los RNN pudieran hacer esto, serían extremadamente útiles. Pero pueden? Eso depende.

Si los RNN pudieran hacer esto, serían muy útiles, pero ¿pueden hacerlo? Eso depende.

A veces, solo necesitamos mirar información reciente para realizar la tarea actual.

A veces, solo necesitamos la información más reciente para completar la tarea en cuestión.

Por ejemplo, considere un modelo de lenguaje que intente predecir la siguiente palabra en función de las anteriores.

Por ejemplo, imagina

Un modelo de lenguaje intenta predecir la siguiente palabra basándose en la anterior.

Si estamos tratando de predecir la última palabra en "las nubes están en el  cielo ", no necesitamos más contexto, es bastante obvio que la siguiente palabra será cielo.

Si estamos tratando de predecir la última palabra de la oración "las nubes están en el  cielo ", no necesitamos información más lejana; está claro que la siguiente palabra es cielo.

En tales casos, donde la brecha entre la información relevante y el lugar donde se necesita es pequeña, los RNN pueden aprender a usar la información pasada.

En este ejemplo, la brecha entre la información relevante y la información deseada es pequeña, y la RNN puede aprender esta información pasada.

Pero también hay casos en los que necesitamos más contexto.

Pero también hay casos en los que necesitamos más contexto.

Considere tratar de predecir la última palabra en el texto "Crecí en Francia... hablo  francés con fluidez ".

Imagínese tratando de predecir la última palabra en "Crecí en Francia... hablo  francés con fluidez ".

Información reciente sugiere que la siguiente palabra probablemente sea el nombre de un idioma, pero si queremos acotar qué idioma, necesitamos el contexto de Francia, desde más atrás.

La información reciente sugiere que la siguiente palabra puede ser el nombre de un idioma, pero queremos limitarnos a ese idioma, y ​​necesitamos Francia arriba, hace mucho tiempo.

Es muy posible que la brecha entre la información relevante y el punto donde se necesita se vuelva muy grande.

Es muy posible que la distancia entre la información relevante y el punto donde se necesita se vuelva muy grande.

Desafortunadamente, a medida que crece esa brecha, los RNN se vuelven incapaces de aprender a conectar la información.

Desafortunadamente, a medida que crece la distancia, la RNN se vuelve incapaz de aprender y conectar esta información.

Las redes neuronales luchan con las dependencias a largo plazo.

En teoría, los RNN son absolutamente capaces de manejar tales "dependencias a largo plazo".

En teoría, RNN es totalmente capaz de manejar esta "dependencia a largo plazo"

Un ser humano podría elegir cuidadosamente los parámetros para resolver problemas de juguetes de esta forma.

Uno puede elegir los parámetros cuidadosamente para resolver este tipo de problemas.

Lamentablemente, en la práctica, los RNN no parecen poder aprenderlos.

Desafortunadamente, en la práctica, los RNN parecen incapaces de aprenderlos.

El problema fue explorado en profundidad por  Hochreiter (1991) [alemán]  y  Bengio, et al. (1994) , quien encontró algunas razones bastante fundamentales por las que podría ser difícil.

Hochreiter (1991) [alemán]  y  Bengio, et al. (1994) realizaron una exploración profunda de este problema y encontraron la causa raíz de la dificultad de RNN para hacerlo.

¡Afortunadamente, los LSTM no tienen este problema!

¡Afortunadamente, los LSTM no tienen estos problemas!

Redes LSTM

red de memoria larga y corta

Las redes de memoria a largo plazo, generalmente llamadas simplemente "LSTM", son un tipo especial de RNN, capaces de aprender dependencias a largo plazo.

Las redes de memoria larga y corta a menudo se denominan LSTM, un tipo especial de RNN que tiene la capacidad de aprender dependencias a largo plazo.

Fueron introducidos por  Hochreiter & Schmidhuber (1997) , y muchas personas los refinaron y popularizaron en sus siguientes trabajos. 1 

 Fueron introducidos por  Hochreiter & Schmidhuber (1997) , y han sido mejorados y generalizados por muchos en trabajos posteriores1   .

Funcionan tremendamente bien en una gran variedad de problemas y ahora se usan ampliamente.

 Su trabajo funciona muy bien en varios problemas y es ampliamente utilizado.

Los LSTM están diseñados explícitamente para evitar el problema de la dependencia a largo plazo.

Los LSTM están diseñados para evitar problemas de larga data.

Recordar información durante largos períodos de tiempo es prácticamente su comportamiento predeterminado, ¡no es algo que les cueste aprender!

Memorizar información durante mucho tiempo es en realidad su comportamiento predeterminado, no algo que se esfuerce por aprender.

Todas las redes neuronales recurrentes tienen la forma de una cadena de módulos repetidos de red neuronal.

Todas las redes neuronales recurrentes tienen la forma de una cadena de módulos repetidos de la red neuronal.

En RNN estándar, este módulo repetitivo tendrá una estructura muy simple, como una sola capa de tanh.

En un RNN estándar, el módulo de repetición es una estructura muy simple, como una sola capa de tanh.

El módulo de repetición en un RNN estándar contiene una sola capa.

Módulos repetitivos en RNN estándar que contienen capas simples

Los LSTM también tienen esta estructura similar a una cadena, pero el módulo repetitivo tiene una estructura diferente.

LSTM también tiene una estructura de cadena de este tipo, pero la estructura de sus módulos repetidos es diferente.

En lugar de tener una sola capa de red neuronal, hay cuatro que interactúan de una manera muy especial.

En lugar de una sola capa de red neuronal simple, tienen cuatro capas que interactúan de una manera especial.

Una red neuronal LSTM.

 El módulo repetitivo en un LSTM contiene cuatro capas que interactúan.

Repetición de módulos en un LSTM con cuatro capas que interactúan

No se preocupe por los detalles de lo que está pasando.

No se preocupe por los detalles de lo que está pasando.

Veremos el diagrama LSTM paso a paso más adelante.

Más adelante, veremos los gráficos LSTM paso a paso.

Por ahora, tratemos de sentirnos cómodos con la notación que usaremos.

Ahora, tratemos de familiarizarnos con la notación que usaremos.

En el diagrama anterior, cada línea lleva un vector completo, desde la salida de un nodo hasta las entradas de los demás.

En el diagrama anterior, cada cable transporta este vector completo, desde la salida de un nodo hasta la entrada de otro.

Los círculos rosas representan operaciones puntuales, como la suma de vectores, mientras que los cuadros amarillos son capas de redes neuronales aprendidas.

Los círculos rosados ​​representan operaciones puntuales, como la suma de vectores, mientras que los cuadros amarillos representan capas de redes neuronales aprendidas.

Las líneas que se fusionan denotan concatenación, mientras que una línea que se bifurca denota que su contenido se copia y las copias se dirigen a diferentes ubicaciones.

Una línea fusionada indica que el vector está concatenado, mientras que una línea bifurcada indica que el vector está a punto de copiarse en una ubicación diferente.

La idea central detrás de los LSTM

La idea central detrás de LSTM

La clave de los LSTM es el estado de la celda, la línea horizontal que atraviesa la parte superior del diagrama.

La clave de LSTM es el estado de la celda, que es la línea horizontal que cruza la parte superior del gráfico.

El estado de la celda es como una cinta transportadora.

Los estados celulares son un poco como una cinta transportadora.

Se ejecuta directamente a lo largo de toda la cadena, con solo algunas interacciones lineales menores.

Corre directamente a lo largo de toda la cadena, haciendo solo pequeñas interacciones lineales.

Es muy fácil que la información fluya sin cambios.

La información fluye sin cambios, con mucha facilidad.

El LSTM tiene la capacidad de eliminar o agregar información al estado de la celda, cuidadosamente regulado por estructuras llamadas puertas.

Los LSTM tienen la capacidad de agregar o quitar información al estado de la celda, funciones que están cuidadosamente reguladas por estructuras llamadas puertas.

Las puertas son una forma de dejar pasar información opcionalmente.

Una puerta es un método para dejar pasar información selectivamente.

Están compuestos por una capa de red neuronal sigmoidea y una operación de multiplicación puntual.

Consisten en una capa de red neuronal sigmoidea y una operación de multiplicación puntual.

La capa sigmoidea genera números entre cero y uno, que describen la cantidad de cada componente que se debe dejar pasar.

La capa sigmoidea genera un número entre 0 y 1 que describe cuánto puede pasar cada componente.

Un valor de cero significa "no dejar pasar nada", mientras que un valor de uno significa "¡dejar pasar todo!"

Un valor de 0 significa "no dejar pasar nada", mientras que un valor de 1 significa "¡dejar pasar todo!"

Un LSTM tiene tres de estas puertas, para proteger y controlar el estado de la celda.

Un LSTM contiene tres puertas de este tipo para proteger y controlar el estado de la celda.

Recorrido paso a paso de LSTM

Paso a través de LSTM

El primer paso en nuestro LSTM es decidir qué información vamos a desechar del estado de la celda.

El primer paso en un LSTM es decidir qué información descartar del estado de la celda.

Esta decisión la toma una capa sigmoidea llamada "capa de puerta de olvido".

Esta decisión la toma una capa sigmoidea llamada "puerta de olvido".

Mira   h_{t-1} y  x_{t}, y genera un número entre 0 y 1 para cada número en el estado de la celda  C_{t-1}.

Mira   h_{t-1} la suma  x_{t}y, para C_{t-1}cada número en el estado de la celda, genera un número entre 0 y 1.

Un 1 representa "mantener esto por completo", mientras que un 0 representa "deshacerse de esto por completo".

Un 1 significa "mantener este estado por completo", un 0 significa "descartar este estado por completo".

Volvamos a nuestro ejemplo de un modelo de lenguaje que intenta predecir la siguiente palabra basándose en todas las anteriores.

Volvamos al ejemplo del modelo de lenguaje, que predice la siguiente palabra en función de todas las palabras anteriores.

En tal problema, el estado de la celda podría incluir el género del sujeto presente, de modo que se puedan usar los pronombres correctos.

En tal pregunta, es posible que el estado de la celda incluya el género del sujeto actual, usando así el pronombre correcto.

Cuando vemos un tema nuevo, queremos olvidar el género del tema anterior.

Cuando vemos un tema nuevo, queremos olvidar el género del tema anterior.

El siguiente paso es decidir qué nueva información vamos a almacenar en el estado de la celda.

El siguiente paso es decidir qué información almacenaremos en el estado de la celda.

Esto tiene dos partes.

Este consta de dos partes.

Primero, una capa sigmoidea llamada "capa de puerta de entrada" decide qué valores actualizaremos.

Primero, una capa sigmoidea llamada "puerta de entrada" decide qué valores vamos a actualizar.

A continuación, una capa tanh crea un vector de nuevos valores candidatos, \widetilde{C}_{t}que podrían agregarse al estado.

En segundo lugar, una capa tanh crea un vector como un nuevo valor candidato, \widetilde{C}_{t}que puede agregarse al estado.

En el siguiente paso, combinaremos estos dos para crear una actualización del estado.

En el siguiente paso, combinamos los dos para crear actualizaciones de estado.

En el ejemplo de nuestro modelo de lenguaje, nos gustaría agregar el género del nuevo sujeto al estado de la celda, para reemplazar el antiguo que estamos olvidando.

En nuestro ejemplo de modelo de lenguaje, queremos agregar un nuevo sujeto de género al estado de la unidad, reemplazando el antiguo sujeto que se ha olvidado.

inserte la descripción de la imagen aquí

Ahora es el momento de actualizar el estado de la celda anterior,  C_{t-1}al nuevo estado de la celda  Connecticut}.

En este punto, actualice el estado de la celda anterior,  C_{t-1}al nuevo estado de la celda   Connecticut}.

Los pasos anteriores ya decidieron qué hacer, solo necesitamos hacerlo.

El paso anterior ya ha decidido qué hacer, solo necesitamos ejecutarlo.

Multiplicamos el estado anterior por  pie}, olvidando las cosas que decidimos olvidar antes.

Multiplicamos el statu quo por el que pie}olvidamos lo que antes decidimos olvidar.

Luego agregamos  i_{t}*\widetilde{C}_{t}.  

Luego agregamos i_{t}*\widetilde{C}_{t}.

Estos son los nuevos valores candidatos, escalados por cuánto decidimos actualizar cada valor de estado.

Este es el nuevo valor candidato, escalado por cuánto decidimos actualizar cada valor de estado.

En el caso del modelo de lenguaje, aquí es donde descartaríamos la información sobre el género del sujeto anterior y agregaríamos la nueva información, como decidimos en los pasos anteriores.

En el ejemplo del modelo de lenguaje, aquí es donde eliminamos la información de género del sujeto anterior y agregamos información nueva, como se decidió en los pasos anteriores.

Finalmente, tenemos que decidir qué vamos a generar.

Finalmente, tenemos que decidir qué vamos a producir.

Esta salida se basará en nuestro estado de celda, pero será una versión filtrada.

Esta salida se basará en nuestro estado de celda, pero será una versión filtrada.

Primero, ejecutamos una capa sigmoidea que decide qué partes del estado de la celda vamos a generar.

Primero, ejecutamos una capa sigmoidea para decidir qué parte del estado de la celda queremos generar.

Luego, ponemos el estado de la celda a través de tanh (para que los valores estén entre −1 y 1) y lo multiplicamos por la salida de la puerta sigmoidea, de modo que solo emitamos las partes que decidimos.

Luego, calculamos el estado de la celda por tanh (establecemos el valor entre -1 y 1) y multiplicamos el valor de salida por la puerta sigmoidea, de modo que solo emitamos la parte del valor que decidimos generar.

Para el ejemplo del modelo de lenguaje, dado que acaba de ver un sujeto, es posible que desee generar información relevante para un verbo, en caso de que eso sea lo que sigue.

Para el ejemplo del modelo de lenguaje, dado que solo ve un sujeto, es posible que desee generar información relacionada con el verbo en caso de que eso suceda a continuación.

Por ejemplo, podría mostrar si el sujeto es singular o plural, para que sepamos en qué forma se debe conjugar un verbo si eso es lo que sigue a continuación.

Por ejemplo, mostrará si el sujeto es singular o plural, por lo que sabemos qué forma debe tener el siguiente verbo conjugado.

Variantes de la memoria a largo plazo

variantes de memoria larga y corta

Lo que he descrito hasta ahora es un LSTM bastante normal.

Pero no todos los LSTM son iguales a los anteriores.

De hecho, parece que casi todos los documentos que involucran LSTM usan una versión ligeramente diferente.

Las diferencias son menores, pero vale la pena mencionar algunas de ellas.

Una variante popular de LSTM, presentada por  Gers & Schmidhuber (2000) , agrega "conexiones de mirilla".

Esto significa que dejamos que las capas de la puerta miren el estado de la celda.

El diagrama de arriba agrega mirillas a todas las puertas, pero muchos papeles darán algunas mirillas y otras no.

Otra variación es utilizar puertas de entrada y de olvido acopladas.

En lugar de decidir por separado qué olvidar y qué debemos agregar nueva información, tomamos esas decisiones juntos.

Solo olvidamos cuando vamos a ingresar algo en su lugar.

Solo ingresamos nuevos valores al estado cuando olvidamos algo más antiguo.

Una variación un poco más dramática del LSTM es la Unidad Recurrente Cerrada, o GRU, presentada por  Cho, et al. (2014) .

Combina las puertas de entrada y de olvido en una sola "puerta de actualización".

También fusiona el estado de la celda y el estado oculto, y realiza algunos otros cambios.

El modelo resultante es más simple que los modelos LSTM estándar y se ha vuelto cada vez más popular.

Una red neuronal de unidad recurrente cerrada.

Estas son solo algunas de las variantes de LSTM más notables.

Hay muchos otros, como los RNN controlados por profundidad de  Yao, et al. (2015) .

También existe un enfoque completamente diferente para abordar las dependencias a largo plazo, como Clockwork RNN ​​de  Koutnik, et al. (2014) .

¿Cuál de estas variantes es mejor? ¿Importan las diferencias? Greff, et al. (2015) hacen una buena comparación de variantes populares y descubren que todas son casi iguales.


Jozefowicz, et al. (2015)  probaron más de diez mil arquitecturas RNN y encontraron algunas que funcionaron mejor que las LSTM en ciertas tareas.

Conclusión

en conclusión

Anteriormente, mencioné los notables resultados que la gente está logrando con las RNN.

Esencialmente, todos estos se logran utilizando LSTM.

¡Realmente funcionan mucho mejor para la mayoría de las tareas!

Escritos como un conjunto de ecuaciones, los LSTM parecen bastante intimidantes.

Con suerte, recorrerlos paso a paso en este ensayo los ha hecho un poco más accesibles.

Los LSTM fueron un gran paso en lo que podemos lograr con los RNN.

Es natural preguntarse: ¿hay otro gran paso?

Una opinión común entre los investigadores es: “¡Sí! ¡Hay un siguiente paso y es la atención!”

La idea es dejar que cada paso de una RNN seleccione información para ver de una colección de información más grande.

Por ejemplo, si está utilizando un RNN para crear un título que describa una imagen, podría elegir una parte de la imagen para buscar cada palabra que genera. De hecho,  Xu, et al. (2015)  hacen exactamente esto: ¡podría ser un punto de partida divertido si quieres explorar la atención!

Ha habido una serie de resultados realmente emocionantes usando la atención, y parece que hay muchos más a la vuelta de la esquina...

La atención no es el único hilo interesante en la investigación de RNN.

Por ejemplo, Grid LSTM de  Kalchbrenner, et al. (2015)  parecen extremadamente prometedores.

Trabaje usando RNN en modelos generativos, como  Gregor, et al. (2015)Chung, et al. (2015) , o  Bayer & Osendorfer (2015)  , también parece muy interesante.

Los últimos años han sido un momento emocionante para las redes neuronales recurrentes, ¡y los próximos prometen serlo aún más!

Supongo que te gusta

Origin blog.csdn.net/cuiyuan605/article/details/121919200
Recomendado
Clasificación