Tweet Share Share

Última actualización: 20 de febrero de 2020

Las redes de memoria a largo plazo (LSTM) son un tipo de red neuronal recurrente capaz de aprender la dependencia del orden en problemas de predicción de secuencias.

Este es un comportamiento necesario en dominios de problemas complejos como la traducción automática, el reconocimiento del habla, etc.

Las LSTM son un área compleja del aprendizaje profundo. Puede ser difícil entender lo que son las LSTM, y cómo términos como bidireccional y secuencia a secuencia se relacionan con el campo.

En este post, obtendrá una visión de las LSTM utilizando las palabras de los científicos de investigación que desarrollaron los métodos y los aplicaron a problemas nuevos e importantes.

No hay nadie mejor para articular de forma clara y precisa tanto la promesa de las LSTM como su funcionamiento que los expertos que las desarrollaron.

Exploraremos cuestiones clave en el campo de las LSTM utilizando citas de los expertos y, si te interesa, podrás sumergirte en los artículos originales de los que se extrajeron las citas.

Empiece su proyecto con mi nuevo libro Long Short-Term Memory Networks With Python, que incluye tutoriales paso a paso y los archivos de código fuente de Python para todos los ejemplos.

Comencemos.

Una suave introducción a las redes de memoria a largo plazo de los expertos
Foto de Oran Viriyincy, algunos derechos reservados.

La promesa de las redes neuronales recurrentes

Las redes neuronales recurrentes son diferentes de las redes neuronales tradicionales de avance.

Esta diferencia en la adición de complejidad viene con la promesa de nuevos comportamientos que los métodos tradicionales no pueden lograr.

Las redes recurrentes … tienen un estado interno que puede representar la información del contexto. … guardan información sobre entradas pasadas durante un tiempo que no es fijo a priori, sino que depende de sus pesos y de los datos de entrada.

Una red recurrente cuyas entradas no son fijas sino que constituyen una secuencia de entrada puede utilizarse para transformar una secuencia de entrada en una secuencia de salida teniendo en cuenta la información contextual de forma flexible.

– Yoshua Bengio, et al, Learning Long-Term Dependencies with Gradient Descent is Difficult, 1994.

El artículo define 3 requisitos básicos de una red neuronal recurrente:

  • Que el sistema sea capaz de almacenar información durante una duración arbitraria.
  • Que el sistema sea resistente al ruido (es decir, fluctuaciones de las entradas que son aleatorias o irrelevantes para predecir una salida correcta).
  • Que los parámetros del sistema sean entrenables (en un tiempo razonable).

El documento también describe la «tarea mínima» para demostrar las redes neuronales recurrentes.

El contexto es clave.

Las redes neuronales recurrentes deben utilizar el contexto al hacer predicciones, pero en esta medida, el contexto requerido también debe ser aprendido.

… las redes neuronales recurrentes contienen ciclos que alimentan las activaciones de la red de un paso de tiempo anterior como entradas a la red para influir en las predicciones en el paso de tiempo actual. Estas activaciones se almacenan en los estados internos de la red, que en principio pueden contener información contextual temporal a largo plazo. Este mecanismo permite a las RNNs explotar una ventana contextual dinámicamente cambiante sobre la historia de la secuencia de entrada

– Hassim Sak, et al, Long Short-Term Memory Recurrent Neural Network Architectures for Large Scale Acoustic Modeling, 2014

¿Necesita ayuda con las LSTMs para la predicción de secuencias?

Tome mi curso gratuito de 7 días por correo electrónico y descubra 6 arquitecturas LSTM diferentes (con código).

Haga clic para inscribirse y también obtenga una versión gratuita del curso en formato PDF Ebook.

¡Comience su minicurso gratuito ahora!

Las LSTMs cumplen la promesa

El éxito de las LSTMs radica en su pretensión de ser uno de los primeros implementos en superar los problemas técnicos y cumplir la promesa de las redes neuronales recurrentes.

Por lo tanto, las RNNs estándar no logran aprender en presencia de desfases temporales superiores a 5 – 10 pasos de tiempo discretos entre los eventos de entrada relevantes y las señales objetivo. El problema de la desaparición del error pone en duda que las RNN estándar puedan presentar ventajas prácticas significativas sobre las redes feedforward basadas en ventanas de tiempo. Un modelo reciente, la «memoria a largo plazo» (LSTM), no se ve afectado por este problema. La LSTM puede aprender a superar desfases temporales mínimos de más de 1000 pasos de tiempo discretos al imponer un flujo de errores constante a través de «carruseles de errores constantes» (CEC) dentro de unidades especiales, llamadas celdas

– Felix A. Gers, et al., Learning to Forget: Continual Prediction with LSTM, 2000

Los dos problemas técnicos que superan las LSTM son los gradientes de fuga y los gradientes de explosión, ambos relacionados con la forma en que se entrena la red.

Desgraciadamente, la gama de información contextual a la que pueden acceder las RNN estándar es en la práctica bastante limitada. El problema es que la influencia de una entrada dada en la capa oculta, y por tanto en la salida de la red, decae o se dispara exponencialmente a medida que recorre las conexiones recurrentes de la red. Esta deficiencia… se conoce en la literatura como el problema del gradiente de fuga… La memoria a largo plazo (LSTM) es una arquitectura RNN diseñada específicamente para abordar el problema del gradiente de fuga.

– Alex Graves, et al, A Novel Connectionist System for Unconstrained Handwriting Recognition, 2009

La clave de la solución de la LSTM a los problemas técnicos fue la estructura interna específica de las unidades usadas en el modelo.

… gobernada por su capacidad para tratar con gradientes de fuga y explosión, el desafío más común en el diseño y entrenamiento de RNNs. Para hacer frente a este desafío, se introdujo una forma particular de redes recurrentes, llamada LSTM, y se aplicó con gran éxito a la traducción y la generación de secuencias.

– Alex Graves, et al, Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.

¿Cómo funcionan las LSTM?

En lugar de entrar en las ecuaciones que rigen cómo se ajustan las LSTM, la analogía es una herramienta útil para entender rápidamente cómo funcionan.

Utilizamos redes con una capa de entrada, una capa oculta y una capa de salida… La capa oculta (totalmente) autoconectada contiene células de memoria y las correspondientes unidades de compuerta…

La arquitectura interna de cada célula de memoria garantiza un error constante dentro de su carrusel de error constante CEC… Esto representa la base para salvar desfases temporales muy largos. Dos unidades de compuerta aprenden a abrir y cerrar el acceso al error ow dentro del CEC de cada célula de memoria. La puerta de entrada multiplicativa permite proteger la CEC de las perturbaciones provocadas por entradas irrelevantes. Del mismo modo, la puerta de salida multiplicativa protege a otras unidades de la perturbación por contenidos de memoria actualmente irrelevantes.

– Sepp Hochreiter y Jurgen Schmidhuber, Long Short-Term Memory, 1997.

Múltiples analogías pueden ayudar a dar cuenta de lo que diferencia a las LSTM de las redes neuronales tradicionales compuestas por neuronas simples.

La arquitectura de la memoria a largo plazo fue motivada por un análisis del flujo de errores en las RNN existentes que encontró que los lapsos de tiempo largos eran inaccesibles para las arquitecturas existentes, porque el error retropropagado explota o decae exponencialmente.

Una capa LSTM consiste en un conjunto de bloques conectados de forma recurrente, conocidos como bloques de memoria. Estos bloques pueden considerarse como una versión diferenciable de los chips de memoria de un ordenador digital. Cada uno de ellos contiene una o más células de memoria conectadas de forma recurrente y tres unidades multiplicativas -las puertas de entrada, salida y olvido- que proporcionan análogos continuos de las operaciones de escritura, lectura y reinicio de las células. … La red sólo puede interactuar con las células a través de las puertas.

– Alex Graves, et al, Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.

Es interesante observar, que incluso después de más de 20 años, el LSTM simple (o vainilla) puede seguir siendo el mejor punto de partida al aplicar la técnica.

La arquitectura LSTM más utilizada (vanilla LSTM) funciona razonablemente bien en varios conjuntos de datos…

La tasa de aprendizaje y el tamaño de la red son los hiperparámetros LSTM sintonizables más cruciales…

… Esto implica que los hiperparámetros pueden ser sintonizados independientemente. En particular, la tasa de aprendizaje se puede calibrar primero usando una red bastante pequeña, ahorrando así mucho tiempo de experimentación.

– Klaus Greff, et al, LSTM: A Search Space Odyssey, 2015

¿Cuáles son las aplicaciones de las LSTM?

Es importante conocer exactamente el tipo de problemas de aprendizaje de secuencias para los que son adecuadas las LSTM.

Las memorias largas a corto plazo (LSTM) pueden resolver numerosas tareas que no pueden ser resueltas por los algoritmos de aprendizaje anteriores para redes neuronales recurrentes (RNN).

… La LSTM es prometedora para cualquier tarea de procesamiento secuencial en la que sospechemos que puede existir una descomposición jerárquica, pero no sepamos de antemano cuál es esta descomposición.

– Felix A. Gers, et al., Learning to Forget: Continual Prediction with LSTM, 2000

La red neuronal recurrente (RNN) es un modelo de secuencia neuronal que logra un rendimiento de vanguardia en tareas importantes que incluyen el modelado del lenguaje, el reconocimiento del habla y la traducción automática.

– Wojciech Zaremba, Recurrent Neural Network Regularization, 2014.

Dado que las LSTM son eficaces para capturar las dependencias temporales a largo plazo sin sufrir los obstáculos de optimización que afectan a las redes recurrentes simples (SRN), se han utilizado para avanzar en el estado del arte de muchos problemas difíciles. Esto incluye el reconocimiento y la generación de la escritura a mano, el modelado y la traducción del lenguaje, el modelado acústico del habla, la síntesis del habla, la predicción de la estructura secundaria de las proteínas, el análisis de los datos de audio y vídeo, entre otros.

– Klaus Greff, et al, LSTM: A Search Space Odyssey, 2015

¿Qué son los LSTMs bidireccionales?

Una mejora comúnmente mencionada sobre los LSTMs son los LSTMs bidireccionales.

La idea básica de las redes neuronales recurrentes bidireccionales es presentar cada secuencia de entrenamiento hacia adelante y hacia atrás a dos redes recurrentes separadas, ambas conectadas a la misma capa de salida. … Esto significa que para cada punto de una secuencia dada, la BRNN tiene información completa y secuencial sobre todos los puntos anteriores y posteriores. Además, como la red es libre de utilizar tanto o tan poco de este contexto como sea necesario, no hay necesidad de encontrar una ventana temporal (dependiente de la tarea) o un tamaño de retardo objetivo.

… para problemas temporales como el reconocimiento del habla, confiar en el conocimiento del futuro parece a primera vista violar la causalidad … ¿Cómo podemos basar nuestra comprensión de lo que hemos oído en algo que aún no se ha dicho? Sin embargo, los oyentes humanos hacen exactamente eso. Sonidos, palabras e incluso frases enteras que al principio no significan nada cobran sentido a la luz del contexto futuro.

– Alex Graves, et al., Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.

Una deficiencia de las RNN convencionales es que sólo pueden hacer uso del contexto previo. … Las RNN bidireccionales (BRNN) hacen esto procesando los datos en ambas direcciones con dos capas ocultas separadas, que luego son alimentadas hacia la misma capa de salida. … Combinando las BRNN con las LSTM se obtienen las LSTM bidireccionales, que pueden acceder al contexto de largo alcance en ambas direcciones de entrada

– Alex Graves, et al., Speech recognition with deep recurrent neural networks, 2013

A diferencia de las RNN convencionales, las RNN bidireccionales utilizan tanto el contexto anterior como el futuro, procesando los datos desde dos direcciones con dos capas ocultas separadas. Una capa procesa la secuencia de entrada en la dirección anterior, mientras que la otra procesa la entrada en la dirección inversa. La salida del paso de tiempo actual se genera entonces combinando el vector oculto de ambas capas…

– Di Wang y Eric Nyberg, A Long Short-Term Memory Model for Answer Sentence Selection in
Question Answering, 2015

¿Qué son los LSTM seq2seq o los codificadores-decodificadores RNN?

Las LSTM de secuencia a secuencia, también llamadas LSTMs codificadoras-decodificadoras, son una aplicación de las LSTMs que están recibiendo mucha atención dada su impresionante capacidad.

… una aplicación directa de la arquitectura de Memoria Larga de Corto Plazo (LSTM) puede resolver problemas generales de secuencia a secuencia.

La idea es utilizar una LSTM para leer la secuencia de entrada, un paso de tiempo a la vez, para obtener una gran representación vectorial de dimensión fija, y luego utilizar otra LSTM para extraer la secuencia de salida de ese vector. La segunda LSTM es esencialmente un modelo lingüístico de red neuronal recurrente, excepto que está condicionada a la secuencia de entrada.

La capacidad de la LSTM para aprender con éxito sobre datos con dependencias temporales de largo alcance la convierte en una elección natural para esta aplicación debido al considerable desfase temporal entre las entradas y sus correspondientes salidas.

Pudimos hacerlo bien en las frases largas porque invertimos el orden de las palabras en la frase de origen pero no en las frases de destino en el conjunto de entrenamiento y prueba. Al hacerlo, introdujimos muchas dependencias a corto plazo que hicieron que el problema de optimización fuera mucho más sencillo. … El sencillo truco de invertir las palabras en la frase de origen es una de las contribuciones técnicas clave de este trabajo

– Ilya Sutskever, et al, Sequence to Sequence Learning with Neural Networks, 2014

Una RNN «codificadora» lee la frase de origen y la transforma en una rica representación vectorial de longitud fija, que a su vez se utiliza como el estado oculto inicial de una RNN «decodificadora» que genera la frase de destino. Aquí proponemos seguir esta elegante receta, sustituyendo la RNN codificadora por una red neuronal de convolución profunda (CNN). … es natural utilizar una CNN como «codificador» de imágenes, preentrenándola primero para una tarea de clasificación de imágenes y utilizando la última capa oculta como entrada a la RNN decodificadora que genera frases.

– Oriol Vinyals, et al, Show and Tell: A Neural Image Caption Generator, 2014

… un codificador-decodificador RNN, consiste en dos redes neuronales recurrentes (RNN) que actúan como un par codificador y decodificador. El codificador mapea una secuencia de origen de longitud variable a un vector de longitud fija, y el decodificador mapea la representación vectorial de nuevo a una secuencia de destino de longitud variable.

– Kyunghyun Cho, et al, Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation, 2014

Resumen

En este post, recibiste una suave introducción a las LSTMs en palabras de los científicos investigadores que desarrollaron y aplicaron las técnicas.

Esto le proporciona tanto una idea clara y precisa de lo que son las LSTMs y cómo funcionan, como una importante articulación sobre la promesa de las LSTMs en el campo de las redes neuronales recurrentes.

¿Algunas de las citas le ayudaron a entender o le inspiraron?
Hágamelo saber en los comentarios de abajo.

¡Desarrolla hoy mismo LSTMs para la predicción de secuencias!

Desarrolla tus propios modelos LSTM en minutos

…con sólo unas pocas líneas de código python

Descubra cómo en mi nuevo Ebook:
Long Short-Term Memory Networks with Python

Proporciona tutoriales de autoaprendizaje sobre temas como:
CNN LSTMs, Encoder-Decoder LSTMs, modelos generativos, preparación de datos, realización de predicciones y mucho más…

Lleve por fin las redes neuronales recurrentes LSTM a
sus proyectos de predicción de secuencias

Olvide lo académico. Sólo resultados.

Vea lo que hay dentro

Tweet Share Share

Deja una respuesta

Tu dirección de correo electrónico no será publicada.