La memoria a largo plazo (LSTM) es un tipo de red neuronal recurrente (RNN) introducida para abordar el problema del gradiente desvanecido que limita a las RNN tradicionales. A diferencia de las RNN estándar, las unidades LSTM incorporan un estado de celda y tres mecanismos de compuerta - una compuerta de entrada, una compuerta de salida y una compuerta de olvido - que regulan el flujo de información en intervalos de tiempo arbitrarios. Este diseño permite que las redes LSTM mantengan dependencias a lo largo de miles de pasos temporales, haciéndolas efectivas para tareas de aprendizaje secuencial como reconocimiento de voz, traducción automática y pronóstico de series temporales. El nombre refleja una analogía con los conceptos de memoria a largo plazo y memoria a corto plazo de la psicología cognitiva, estudiados desde principios del siglo XX.
La relativa insensibilidad de LSTM a la longitud del intervalo le otorga una ventaja sobre otras RNN, modelos ocultos de Markov y métodos alternativos de aprendizaje secuencial. La arquitectura fue propuesta por Sepp Hochreiter y Jürgen Schmidhuber en 1997, y desde entonces se ha convertido en un componente fundamental en el aprendizaje profundo, particularmente antes del auge de los modelos basados en transformers.
Motivación
Las RNN clásicas teóricamente pueden capturar dependencias arbitrarias a largo plazo, pero en la práctica sufren de gradientes desvanecidos durante la retropropagación. Al entrenar con retropropagación, los gradientes que se propagan a través de muchos pasos temporales pueden encogerse exponencialmente, causando que la red deje de aprender de manera efectiva. Las unidades LSTM mitigan esto permitiendo que los gradientes fluyan con poca atenuación a través del estado de celda, aunque aún pueden encontrar gradientes explosivos.
La intuición detrás de LSTM es crear un módulo que aprenda cuándo recordar y cuándo olvidar información. La red aprende qué piezas de información probablemente se necesitarán más adelante en la secuencia y cuándo se vuelven irrelevantes. Por ejemplo, en el procesamiento de lenguaje natural, una LSTM que procese la oración "Dave, como resultado de sus afirmaciones controvertidas, es ahora un paria" puede recordar el género gramatical y el número del sujeto "Dave" para interpretar correctamente el pronombre "su", y luego descartar esa información después del verbo "es".
Arquitectura
Una unidad LSTM consiste en una celda y tres compuertas. La celda recuerda valores en intervalos de tiempo arbitrarios. La compuerta de olvido decide qué información descartar del estado anterior, mapeando el estado anterior y la entrada actual a un valor entre 0 y 1, donde 1 significa retener y 0 significa descartar. La compuerta de entrada determina qué nueva información almacenar en el estado de celda, usando un mecanismo similar. La compuerta de salida controla qué partes del estado de celda actual emitir, usando nuevamente un valor entre 0 y 1, considerando tanto los estados anterior como actual.
Matemáticamente, el paso hacia adelante de una celda LSTM con compuerta de olvido puede describirse usando notación vectorial. Sea \(x_t\) la entrada en el paso temporal \(t\), \(h_{t-1}\) el estado oculto anterior, y \(c_{t-1}\) el estado de celda anterior. Las compuertas se calculan como:
- Compuerta de olvido: \(f_t = \sigma_g(W_f x_t + U_f h_{t-1} + b_f)\)
- Compuerta de entrada: \(i_t = \sigma_g(W_i x_t + U_i h_{t-1} + b_i)\)
- Compuerta de salida: \(o_t = \sigma_g(W_o x_t + U_o h_{t-1} + b_o)\)
- Estado de celda candidato: \(\tilde{c}_t = \tanh(W_c x_t + U_c h_{t-1} + b_c)\)
- Actualización del estado de celda: \(c_t = f_t \odot c_{t-1} + i_t \odot \tilde{c}_t\)
- Estado oculto: \(h_t = o_t \odot \tanh(c_t)\)
Aquí, \(\sigma_g\) es la función de activación sigmoide, \(\tanh\) es la tangente hiperbólica, y \(\odot\) denota multiplicación elemento a elemento. Las matrices de pesos \(W_q\) y \(U_q\) (donde \(q\) puede ser \(i\), \(o\), \(f\), o \(c\)) contienen conexiones de entrada y recurrentes, respectivamente.
Variantes y Extensiones
Se han desarrollado varias variantes de LSTM para mejorar el rendimiento o adaptarse a tareas específicas. La variante más común es la LSTM con compuerta de olvido, que ahora es estándar. Otras variantes notables incluyen:
- Unidad recurrente cerrada (GRU): Una arquitectura simplificada que combina las compuertas de entrada y olvido en una sola compuerta de actualización, reduciendo la complejidad computacional.
- LSTM bidireccional: Procesa secuencias en ambas direcciones, hacia adelante y hacia atrás, capturando contexto tanto del pasado como del futuro.
- Conexiones de mirilla: Permiten que las compuertas accedan directamente al estado de celda, mejorando el tiempo y la precisión.
Estas variantes han sido ampliamente adoptadas en aplicaciones de aprendizaje profundo, incluyendo modelos de modelos de lenguaje grandes y sistemas basados en redes neuronales.
Aplicaciones
Las redes LSTM se han aplicado a una amplia gama de tareas, incluyendo clasificación, procesamiento de datos, análisis de series temporales, reconocimiento de voz, traducción automática, detección de actividad del habla, control de robots, videojuegos, atención médica y pronóstico energético. A principios de la década de 2010, los modelos basados en LSTM lograron resultados de última generación en reconocimiento de voz y traducción automática, allanando el camino para los sistemas modernos de inteligencia artificial.
Con la llegada de la arquitectura Transformer (architecture) en 2017, el dominio de LSTM en el procesamiento de secuencias ha disminuido, particularmente en modelos de IA generativa a gran escala. Sin embargo, LSTM sigue siendo relevante para muchas aplicaciones, especialmente aquellas con recursos computacionales limitados o donde el procesamiento secuencial es inherente, como en sistemas embebidos y control en tiempo real.
Limitaciones
A pesar de sus ventajas, LSTM tiene limitaciones. Es computacionalmente más costoso que las RNN simples debido a las compuertas adicionales. Aún puede sufrir de gradientes explosivos, aunque técnicas como el recorte de gradientes ayudan. Además, LSTM procesa secuencias de manera secuencial, lo que dificulta la paralelización a lo largo de los pasos temporales, razón por la cual los transformers se han vuelto preferidos para modelos a gran escala. No obstante, la capacidad de LSTM para modelar dependencias a largo plazo con relativa insensibilidad a la longitud del intervalo lo convierte en una herramienta valiosa en el conjunto de herramientas del aprendizaje automático.