La memoria larga a corto plazo, (en inglés, long short-term memory o LSTM) es una arquitectura de red neuronal recurrente (RNN) desarrollada para abordar el problema de desvanecimiento de gradiente, que afecta la capacidad de las RNN tradicionales para aprender dependencias a largo plazo en secuencias de datos. A diferencia de otros modelos como los modelos ocultos de Markov, los LSTM pueden retener información durante miles de pasos temporales, lo que los convierte en una herramienta eficaz para procesar datos secuenciales.

El núcleo de un LSTM es la célula de memoria, que retiene información durante intervalos de tiempo arbitrarios. Esta célula está controlada por tres tipos de puertas: la puerta de entrada, la puerta de salida y la puerta de olvido. La puerta de entrada regula qué nueva información se almacenará en la célula de memoria, la puerta de salida decide qué información se usará para generar la salida en el paso actual, y la puerta de olvido determina qué información debe eliminarse.

Además de sus aplicaciones en el procesamiento del lenguaje y el habla, los LSTM se utilizan en otras áreas como la predicción de series temporales, donde pueden prever valores futuros en secuencias basadas en patrones aprendidos de datos pasados. También se aplican en el control de robots, ayudando a los sistemas a aprender comportamientos complejos a partir de datos sensoriales continuos.Otras aplicaciones incluyen la clasificación estadística, procesamiento de datos, análisis de series temporales,reconocimiento del habla,traducción automática, videojuegos y servicios de salud. En el reconocimiento de voz, por ejemplo, un LSTM puede identificar patrones en secuencias de audio que representan palabras o frases específicas, incluso en presencia de ruido o variaciones en el habla.

Motivación En teoría, las redes neuronales recurrentes clásicas (RNNs) pueden rastrear dependencias a largo plazo arbitrarias en las secuencias de entrada. Sin embargo, el problema con las RNNs clásicas es de naturaleza computacional (o práctica): al entrenar una RNN clásica utilizando retropropagación, los gradientes a largo plazo que se retropropagan pueden «desvanecerse», lo que significa que tienden a cero debido a la acumulación de números muy pequeños en los cálculos, causando que el modelo efectivamente deje de aprender. Las RNNs que utilizan unidades LSTM resuelven parcialmente el problema de desvanecimiento de gradiente, ya que las unidades LSTM permiten que los gradientes fluyan con poca o ninguna atenuación. Sin embargo, las redes LSTM aún pueden sufrir el problema de los gradientes que explotan.

La intuición detrás de la arquitectura LSTM es crear un módulo adicional en una red neuronal que aprenda cuándo recordar y cuándo olvidar información pertinente. En otras palabras, la red aprende efectivamente qué información podría necesitarse más adelante en una secuencia y cuándo esa información ya no es relevante. Por ejemplo, en el contexto del procesamiento del lenguaje natural, la red puede aprender dependencias gramaticales. Un LSTM podría procesar la oración: «Dave, como resultado de sus afirmaciones controvertidas, ahora es un paria» recordando el género gramatical y el número del sujeto Dave (probablemente masculino y singular), notar que esta información es pertinente para el pronombre sus y darse cuenta de que esta información ya no es importante después del verbo es.

Variantes En las ecuaciones a continuación, las variables en minúsculas representan vectores. Las matrices y contienen, respectivamente, los pesos de las conexiones de entrada y recurrentes, donde el subíndice puede referirse a la puerta de entrada , la puerta de salida , la puerta de olvido , o la célula de memoria , dependiendo de la activación que se esté calculando. En esta sección, se utiliza una «notación vectorial». Por ejemplo, no representa solo una unidad de una célula LSTM, sino que contiene unidades de células LSTM.

También existe un estudio empírico de ocho variantes arquitectónicas de LSTM.

LSTM con puerta de olvido Las formas compactas de las ecuaciones para el paso hacia adelante de una célula LSTM con una puerta de olvido son:

donde los valores iniciales son y , además, el operador denota el producto de Hadamard (producto elemento a elemento). El subíndice indica el paso temporal.

Variables Usando los superíndices y para referirse al número de características de entrada y al número de unidades ocultas, respectivamente:

: vector de entrada a la unidad LSTM. : vector de activación de la puerta de olvido. : vector de activación de la puerta de entrada/actualización. : vector de activación de la puerta de salida. : vector del estado oculto, también conocido como el vector de salida de la unidad LSTM. : vector de activación de la entrada de la célula. : vector del estado de la célula. , y : matrices de pesos y vector de sesgo, parámetros que deben ser aprendidos durante el entrenamiento.

Funciones de activación

: función sigmoide. : función hiperbólica tangente. : función hiperbólica tangente o, como sugiere el artículo del LSTM con peephole, .

LSTM con peephole Con el tiempo, se han desarrollado variantes de la arquitectura LSTM para mejorar su rendimiento y ampliar sus aplicaciones. La introducción de las conexiones peephole permite que las puertas accedan directamente al estado de la célula de memoria, mejorando la precisión en tareas que requieren un control más fino de la memoria. miniaturadeimagen|300x300px|Una unidad LSTM con peephole con puertas de entrada (, input), salida (, output) y olvido (, forget). La figura de la derecha es una representación gráfica de una unidad LSTM con conexiones peephole (es decir, LSTM con peephole). Las conexiones peephole permiten que las puertas accedan al carrusel de error constante (CEC, constant error carrousel), cuya activación corresponde al estado de la célula. En este caso, no se utiliza; en su lugar, se utiliza en la mayoría de los casos:

Cada una de las puertas puede considerarse como una «neurona estándar» en una red neuronal de propagación hacia adelante (o de múltiples capas): es decir, calculan una activación (usando una función de activación) de una suma ponderada. y representan las activaciones de las puertas de entrada, salida y olvido, respectivamente, en el paso temporal .

Las tres flechas de salida desde la célular de memoria hacia las tres puertas y representan las conexiones peephole. Estas conexiones peephole denotan las contribuciones de la activación de la célula de memoria en el paso temporal , es decir, la contribución de (y no , como podría sugerir la imagen). En otras palabras, las puertas y calculan sus activaciones en el paso temporal ( y , respectivamente) considerando también la activación de la célula de memoria en el paso temporal , es decir, .

La única flecha de izquierda a derecha que sale de la célula de memoria no es una conexión peephole y denota .

Los pequeños círculos que contienen un símbolo representan una multiplicación elemento a elemento entre sus entradas. Los círculos grandes que contienen una curva en forma de «S» representan la aplicación de una función diferenciable (como la función sigmoide) a una suma ponderada.

LSTM convolucional con peephole También existe el LSTM convolucional con peephole, que integra capacidades de procesamiento de imágenes, útil en aplicaciones como la predicción de precipitaciones.El símbolo denota el operador de convolución.

Entrenamiento El entrenamiento de un LSTM se realiza mediante el algoritmo de retropropagación a través del tiempo, combinado con métodos de optimización como el descenso de gradiente. Este proceso ajusta los parámetros de la red para minimizar el error entre las predicciones del modelo y los resultados esperados, lo cual permite que la red aprenda a hacer predicciones más precisas. En otras palabras, esto permite calcular los gradientes necesarios durante el proceso de optimización. Esto permite ajustar cada peso de la red LSTM en proporción a la derivada del error (en la capa de salida de la red) con respecto al peso correspondiente.

Un problema del descenso por gradiente en RNN estándar es que los gradientes del error se desvanecen exponencialmente rápido con el tamaño del desfase temporal entre eventos importantes. Esto ocurre debido a que si el radio espectral de es menor que 1.

Sin embargo, con las unidades LSTM, cuando los valores de error son retropropagados desde la capa de salida, el error permanece en la celda de la unidad LSTM. Este «carrusel de error» retroalimenta continuamente el error a cada una de las puertas de la unidad LSTM, hasta que estas aprenden a cortar el valor.

Función de puntuación CTC Muchas aplicaciones utilizan pilas de redes LSTM RNA y las entrenan mediante clasificación temporal conexionista (CTC, connectionist temporal classification), con el objetivo de encontrar una matriz de pesos que maximice la probabilidad de las secuencias de etiquetas en un conjunto de entrenamiento dado el conjunto de secuencias de entrada. Esta función logra tanto alineación como reconocimiento.

Alternativas En ocasiones, puede ser ventajoso entrenar partes de una LSTM mediante neuroevolución o métodos de gradiente de políticas, especialmente cuando no existe un «profesor» (es decir, no hay etiquetas de entrenamiento).

Aplicaciones Las aplicaciones de LSTM incluyen:

Control de robots Predicción de series temporales Reconocimiento del habla Aprendizaje de ritmos Modelado hidrológico de lluvia–escorrentía Composición musical Aprendizaje de gramática Reconocimiento de escritura a mano Reconocimiento de acciones humanas Traducción de lenguaje de señas Detección de homología de proteínas Predicción de localización subcelular de proteínas Detección de anomalías en series temporales Predicción en gestión de procesos empresariales Predicción en vías de atención médica Análisis semántico Cosegmentación de objetos Gestión de pasajeros en aeropuertos Modelización de transporte a corto plazo Diseño de fármacos Predicción de mercados Clasificación de actividades en video

Acontecimientos importantes

2015: Google comenzó a usar LSTM entrenado con CTC para el reconocimiento de voz en Google Voice, de manera que disminuyó errores de transcripción en un 49 %. 2016: Google introdujo LSTM en su aplicación Allo para sugerir mensajes y en el sistema de traducción neuronal para Google Translate, de manera que disminuyó errores de traducción en un 60 %. En la conferencia Apple Worldwide Developers, Apple anunció su uso para QuickType en iPhone y Siri. Amazon lanzó Polly, una tecnología que genera las voces detrás de Alexa, utilizando un LSTM bidireccional para la conversión de texto a voz. 2017: Facebook realizó 4.5 mil millones de traducciones automáticas diarias con redes LSTM. Microsoft alcanzó un 94.9 % de precisión en el reconocimiento de Switchboard utilizando LSTM orientado a sesiones de diálogo. 2018: OpenAI usó LSTM con gradientes de política para superar a humanos en el videojuego Dota 2 y controlar una mano robótica con destreza sin precedentes. 2019: DeepMind empleó LSTM entrenado con gradientes de política para sobresalir en el videojuego Starcraft II.

Historia

Desarrollo Aspectos del LSTM fueron anticipados por el concepto de «retropropagación enfocada» (Mozer, 1989), citado en el artículo sobre LSTM.

La tesis de diploma en alemán de Sepp Hochreiter en 1991 analizó el problema de desvanecimiento de gradiente y desarrolló principios fundamentales del método. Su supervisor, Jürgen Schmidhuber, consideró la tesis de gran relevancia.

Una versión temprana de LSTM fue publicada en 1995 en un informe técnico por Sepp Hochreiter y Jürgen Schmidhuber y luego presentada en la conferencia NIPS de 1996.