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,[1] 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.[2]
La célula LSTM procesa datos secuencialmente y mantiene su estado oculto a lo largo del tiempo.
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[3] y la puerta de olvido.[4] 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.[2]
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,[5][6] ayudando a los sistemas a aprender comportamientos complejos a partir de datos sensoriales continuos.[7][8]Otras aplicaciones incluyen la clasificación estadística,[9][10] procesamiento de datos, análisis de series temporales,[11]reconocimiento del habla,[12][13]traducción automática,[14][15] videojuegos[16][17] y servicios de salud.[18] 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.[19][20]
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.[21]
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.[4] 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.[22] 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.
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.[23]
Las formas compactas de las ecuaciones para el paso hacia adelante de una célula LSTM con una puerta de olvido son:[2][4]
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.
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.[4]
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).[24][25] 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.[24] 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.
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.[26]El símbolo denota el operador de convolución.
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.[27] 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.[1][28]
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.
Muchas aplicaciones utilizan pilas de redes LSTM RNA[29] y las entrenan mediante clasificación temporal conexionista (CTC, connectionist temporal classification),[9] 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.
En ocasiones, puede ser ventajoso entrenar partes de una LSTM mediante neuroevolución[11] o métodos de gradiente de políticas, especialmente cuando no existe un «profesor» (es decir, no hay etiquetas de entrenamiento).
2015: Google comenzó a usar LSTM entrenado con CTC para el reconocimiento de voz en Google Voice,[54][55] de manera que disminuyó errores de transcripción en un 49 %.[56]
2016: Google introdujo LSTM en su aplicación Allo para sugerir mensajes[57] y en el sistema de traducción neuronal para Google Translate, de manera que disminuyó errores de traducción en un 60 %.[14][58][59] En la conferencia Apple Worldwide Developers, Apple anunció su uso para QuickType[60][61][62] en iPhone y Siri.[63][64] 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.[65]
2017: Facebook realizó 4.5 mil millones de traducciones automáticas diarias con redes LSTM.[15] Microsoft alcanzó un 94.9 % de precisión en el reconocimiento de Switchboard utilizando LSTM orientado a sesiones de diálogo.[66]
2018: OpenAI usó LSTM con gradientes de política para superar a humanos en el videojuego Dota 2[16] y controlar una mano robótica con destreza sin precedentes.[8][67]
2019: DeepMind empleó LSTM entrenado con gradientes de política para sobresalir en el videojuego Starcraft II.[17][67]
La referencia más común para LSTM se publicó en 1997 en la revista Neural Computation.[2] Al introducir las unidades de Carrusel de Error Constante (CEC), LSTM aborda el problema de desvanecimiento de gradiente. La versión inicial del bloque LSTM incluía celdas y puertas de entrada y salida.[23]
En 1999, Felix Gers, Jürgen Schmidhuber y Fred Cummins[71] introdujeron la puerta de olvido (también llamada «puerta de retención») en la arquitectura LSTM, permitiendo que el LSTM restablezca su propio estado.[23] Esta es la versión más utilizada hoy en día.
En 2000, Gers, Schmidhuber y Cummins añadieron las conexiones peephole,[24][25] y eliminaron la función de activación de salida.[23]
2006: Graves, Fernandez, Gomez y Schmidhuber[9] introdujeron una nueva función de error para LSTM, la Clasificación Temporal Conexionista (CTC), para alineación y reconocimiento simultáneos de secuencias.
2014: Kyunghyun Cho et al.[72] publicaron una variante simplificada del LSTM con puerta de olvido,[71] denominada unidad recurrente cerrada (GRU).
2015: Rupesh Kumar Srivastava, Klaus Greff y Schmidhuber usaron principios de LSTM[71] para crear la red Highway, una red neuronal prealimentada directa con cientos de capas, mucho más profunda que las redes anteriores.[73][74][75] Paralelamente, se desarrolló la arquitectura ResNet, equivalente a una red Highway sin puertas o con puertas abiertas.[76]
2024: Un equipo liderado por Sepp Hochreiter publicó una actualización moderna del LSTM llamada xLSTM (Maximilian et al.).[77] Uno de sus bloques, mLSTM, es paralelizable como la arquitectura de transformadores, mientras que otros bloques, sLSTM, permiten el seguimiento de estados.
2001: Gers y Schmidhuber entrenaron LSTM para aprender lenguajes imposibles de aprender con modelos tradicionales como los Modelos Ocultos de Markov.[24][67] Hochreiter et al. usaron LSTM para metaaprendizaje (es decir, aprender un algoritmo de aprendizaje).[78]
2004: Primera aplicación exitosa de LSTM al reconocimiento de voz (Alex Graves et al.).[67][79]
2005: Wierstra, Gomez y Schmidhuber entrenaron LSTM mediante neuroevolución sin un maestro.[11] Mayer et al. lo usaron para controlar robots.[5]
2007: Wierstra, Foerster, Peters y Schmidhuber entrenaron LSTM con gradientes de política para aprendizaje por refuerzo sin un maestro.[80] En el campo de la biología, Hochreiter, Heuesel y Obermayr aplicaron LSTM a la detección de homología de proteínas.[41]
2009: Justin Bayer et al. introdujeron la búsqueda de arquitecturas neuronales para LSTM.[67][81] Un LSTM entrenado con CTC ganó la competencia de reconocimiento de escritura manual conectada en el ICDAR. Alex Graves lideró el equipo que presentó tres modelos,[82] uno de los cuales fue el más preciso y otro el más rápido.[83] Esta fue la primera vez que una RNN ganó competencias internacionales.[67]
2013: Alex Graves, Abdel-rahman Mohamed y Geoffrey Hinton usaron redes LSTM como componente principal de una red que alcanzó un error del 17.7 % en fonemas en el conjunto de datos TIMIT de habla natural.[32] Investigadores de Michigan State University, IBM Research y Cornell University publicaron un estudio en la conferencia KDD.[84][85][86] Su LSTM Consciente del Tiempo (T-LSTM) mostró mejor rendimiento en ciertos conjuntos de datos comparado con el LSTM estándar.
A pesar de sus ventajas, los LSTM pueden experimentar el problema del gradiente explosivo, donde los gradientes crecen exponencialmente y causan inestabilidad en el entrenamiento. Sin embargo, existen técnicas como la recorte de gradientes para gestionar estos problemas.[28]
En la actualidad, los LSTM siguen siendo una herramienta fundamental en el aprendizaje profundo, especialmente en áreas que involucran secuencias temporales complejas. Su capacidad para aprender y retener información durante largos periodos de tiempo ha permitido avances en campos como el reconocimiento de voz, la traducción automática y la predicción de series temporales, consolidando su lugar como una de las arquitecturas más influyentes en la inteligencia artificial moderna.[87]
↑ abHochreiter, Sepp; Schmidhuber, Jürgen (3 de diciembre de 1996). «LSTM can solve hard long time lag problems». Proceedings of the 9th International Conference on Neural Information Processing Systems. NIPS'96 (MIT Press): 473-479. doi:10.5555/2998981.2999048. Consultado el 27 de noviembre de 2024.
↑«Learning dexterity». OpenAI(en inglés estadounidense). Consultado el 28 de noviembre de 2024.
↑H. Mayer, F. Gomez, D. Wierstra, I. Nagy, A. Knoll, J. Schmidhuber (2006). «A System for Robotic Heart Surgery that Learns to Tie Knots Using Recurrent Neural Networks». 2006 IEEE/RSJ International Conference on Intelligent Robots and Systems.
↑ ab«Learning dexterity». OpenAI(en inglés estadounidense). Consultado el 27 de noviembre de 2024.
↑ abcGraves, Alex; Fernández, Santiago; Gomez, Faustino; Schmidhuber, Jürgen (2006). «Connectionist temporal classification: Labelling unsegmented sequence data with recurrent neural networks». In Proceedings of the International Conference on Machine Learning, ICML 2006(en inglés): 369-376.
↑Sahidullah, Md; Patino, Jose; Cornell, Samuele; Yin, Ruiking; Sivasankaran, Sunit; Bredin, Herve; Korshunov, Pavel; Brutti, Alessio; Serizel, Romain; Vincent, Emmanuel; Evans, Nicholas; Marcel, Sebastien; Squartini, Stefano; Barras, Claude (6 de noviembre de 2019). The Speed Submission to DIHARD II: Contributions & Lessons Learned(en inglés).
↑Calin, Ovidiu L. (2020). Deep learning architectures: a mathematical approach. Springer series in the data sciences. Springer. ISBN978-3-030-36720-6.|fechaacceso= requiere |url= (ayuda)
↑Lakretz, Yair; Kruszewski, German; Desbordes, Theo; Hupkes, Dieuwke; Dehaene, Stanislas; Baroni, Marco (2019-06). «The emergence of number and syntax units in LSTM language models». En Burstein, Jill, ed. Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers) (Association for Computational Linguistics): 11-20. doi:10.18653/v1/N19-1002. Consultado el 28 de noviembre de 2024.
↑Graves, A.; Schmidhuber, J. (2009). «Offline Handwriting Recognition with Multidimensional Recurrent Neural Networks». Advances in Neural Information Processing Systems 22, NIPS'22(en inglés) (Vancouver: MIT Press): 545-552.
↑Graves, Alex; Fernández, Santiago; Liwicki, Marcus; Bunke, Horst; Schmidhuber, Jürgen (3 de diciembre de 2007). «Unconstrained online handwriting recognition with recurrent neural networks». Proceedings of the 20th International Conference on Neural Information Processing Systems. NIPS'07 (en inglés) (Curran Associates Inc.): 577-584. ISBN978-1-60560-352-0. Consultado el 1 de diciembre de 2024.
↑Sak, Haşim; Senior, Andrew; Rao, Kanishka; Beaufays, Françoise; Schalkwyk, Johan (24 de setiembre de 2015). «Google voice search: faster and more accurate». Research Blog(en inglés). Consultado el 1 de diciembre de 2024.
↑Srivastava, Rupesh Kumar; Greff, Klaus; Schmidhuber, Jürgen (2 de mayo de 2015). Highway Networks(en inglés).
↑Srivastava, Rupesh K; Greff, Klaus; Schmidhuber, Jürgen (2015). «Training Very Deep Networks». Advances in Neural Information Processing Systems (Curran Associates, Inc.) 28. Consultado el 1 de diciembre de 2024.
Zhang, Aston; Lipton, Zachary; Li, Mu; Smola, Alexander J. (2024). «10.1. Long Short-Term Memory (LSTM)». Dive into deep learning(en inglés). Cambridge New York Port Melbourne New Delhi Singapore: Cambridge University Press. ISBN978-1-009-38943-3.