LSTM (Long Short-Term Memory) se formuló por Sepp Hochreiter y Jürgen Schmidhuber, la primera vez en 1.995 y posteriormente en 1.997. Hoy es un modelo de los más eficaces y escalables para varios problemas de aprendizaje relacionados con datos secuenciales.
El LSTM tiene una arquitectura RNR mejorada con “celdas de memoria” que mantienen su estado a largo plazo y se especializan en la transmisión de esa información almacenada. Además, tiene un conjunto de unidades “puertas/compuertas” no lineales, que regulan el flujo de información dentro y fuera de la celda, permitiendo interactuar selectivamente con el estado oculto. Uno de sus objetivos es abordar los problemas del gradiente de fuga o explosión de las RNR convencionales.
En lugar de capas de neuronas tiene bloques de células LSTM que conforman el elemento primordial de la red y que están ubicados en la capa oculta. Estos bloques contienen celdas de memoria con auto conexiones que almacenan el estado temporal de la red, además de unidades multiplicativas especiales llamadas puertas para controlar el flujo de información, esto hace que la red tenga la capacidad para recordar y olvidar.
En modelo simple LSTM solo tiene una única capa oculta, mientras que un modelo apilado (necesario para aplicaciones avanzadas) tiene múltiples capas ocultas, aquí surge el problema común en las redes profundas, “el gradiente de fuga”, donde el gradiente se hace cada vez más pequeño con cada capa hasta que es demasiado pequeño para afectar a las capas más profundas. Con la celda de memoria existe un flujo de gradiente continuo (los errores mantienen su valor) lo que elimina el problema del gradiente de fuga y permite aprender de secuencias que tienen cientos de ciclos de tiempo.