24 · LSTM: estado de celda + 3 gates
LSTM añade un estado de celda que fluye a través del tiempo con modificaciones mínimas — tres gates deciden qué olvidar, agregar y emitir, resolviendo la barrera del gradiente desvanecido.
LSTM añade un 'estado de celda' que fluye a través del tiempo con modificaciones mínimas — los gates deciden qué olvidar, qué agregar y qué emitir. Esta es la arquitectura que rompió la barrera del gradiente desvanecido.
Sin esto:
Las RNNs vanilla no pueden aprender dependencias de largo alcance; LSTM fue la invención de 1997 que lo solucionó.
Al final del capítulo 5 tenías un diagnóstico preciso: las RNNs vanilla fallan en secuencias largas porque los gradientes se desvanecen al fluir hacia atrás a través de multiplicaciones repetidas de tanh. Cada paso multiplica el gradiente por un factor típicamente menor a 1, y después de 50–100 pasos la señal se vuelve numéricamente indistinguible de cero. La red simplemente no puede llegar tan atrás al actualizar sus pesos.
La Long Short-Term Memory (LSTM) fue la respuesta de Hochreiter y Schmidhuber en 1997. La idea central fue quirúrgica: en lugar de enrutar información únicamente a través del estado oculto h_t — que se aplana con tanh en cada paso — agregar un segundo canal paralelo llamado estado de celda c_t. El estado de celda está protegido del aplastamiento no lineal directo; fluye hacia adelante en el tiempo con solo actualizaciones aditivas. Cuando sumas en lugar de multiplicar, los gradientes pueden viajar hacia atrás sin reducirse en cada salto.
Tres gates — pequeñas redes sigmoide cuyos valores están en [0, 1] — controlan qué recuerda el estado de celda y qué expone:
- Gate de olvido: qué fracción del estado de celda anterior retener.
- Gate de entrada + candidato: cuánta información nueva escribir.
- Gate de salida: qué parte del estado de celda exponer como estado oculto.
El estado oculto h_t todavía existe y aún enfrenta el aplastamiento tanh — pero ahora es una lectura del estado de celda en lugar de ser el único canal de memoria. El estado de celda es la memoria a largo plazo; el estado oculto es la memoria de trabajo a corto plazo.
Ecuaciones LSTM: 4 gates + actualización aditiva del estado de celda
Python (in browser)
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Read-along de PyTorch: interfaz nn.LSTM
¿Cuál es la función del gate de OLVIDO en un LSTM?
- El estado de celda LSTM c_t se actualiza aditivamente: c_t = f_t * c_{t-1} + i_t * g_t — esta ruta aditiva es lo que permite a los gradientes sobrevivir secuencias largas.
- Tres gates (olvido, entrada, salida) son cada uno pequeñas redes sigmoide; producen señales de control por dimensión en [0, 1].
- LSTM tiene ~4x más parámetros que una RNN vanilla del mismo tamaño oculto — un intercambio válido en secuencias largas, pero vigilar el sobreajuste en datasets pequeños.
La traducción automática 2014–2017 fue todo LSTM (secuencia a secuencia con atención); reconocimiento de voz; predicción de series temporales. Reemplazado por Transformers después de 2017, pero todavía se usa en entornos con pocos recursos.
Si lo quitas: Perderías la intuición mecánica de por qué el estado de celda resuelve los gradientes desvanecidos — que también es la razón por la que funcionan las conexiones residuales de los Transformers. El principio de actualización aditiva es un hilo que recorre LSTM, GRU, ResNets y atención.