Una cadena larga de elementos de memoria a corto plazo ( ing. Long short-term memory ; LSTM ) es un tipo de arquitectura de red neuronal recurrente propuesta en 1997 por Sepp Hochreiter y Jurgen Schmidhuber [2] . Como la mayoría de las redes neuronales recurrentes, una red LSTM es universal en el sentido de que, con un número suficiente de elementos de red, puede realizar cualquier cálculo que sea capaz de realizar una computadora convencional, lo que requiere una matriz de peso adecuada, que puede considerarse como una programa. A diferencia de las redes neuronales recurrentes tradicionales, la red LSTM se adapta bien al aprendizaje en las tareas de clasificación , procesamiento y predicción de series temporales en los casos en que los eventos importantes están separados por lapsos de tiempo con límites y duración indefinidos. La inmunidad relativa a la duración de los intervalos de tiempo le da a LSTM una ventaja sobre las redes neuronales recurrentes alternativas, los modelos ocultos de Markov y otros métodos de entrenamiento para secuencias en diversas aplicaciones. De los muchos logros de las redes LSTM, se pueden destacar los mejores resultados en el reconocimiento de escritura continua no segmentada [3] y la victoria en 2009 en el concurso de reconocimiento de escritura ( ICDAR ). Las redes LSTM también se utilizan en tareas de reconocimiento de voz , por ejemplo, la red LSTM fue el componente principal de la red, que en 2013 alcanzó un umbral de error de registro del 17,7 % en la tarea de reconocimiento de fonemas sobre el corpus clásico de habla natural TIMIT [4] . A partir de 2016, las principales empresas de tecnología, incluidas Google , Apple , Microsoft y Baidu , utilizan las redes LSTM como un componente fundamental de los nuevos productos [5] [6] .
Una red LSTM es una red neuronal artificial que contiene módulos LSTM en lugar o además de otros módulos de red. Un módulo LSTM es un módulo de red recurrente capaz de almacenar valores tanto para periodos de tiempo cortos como largos. La clave de esta capacidad es que el módulo LSTM no utiliza una función de activación dentro de sus componentes recurrentes. Por lo tanto, el valor almacenado no se desdibuja en el tiempo, y el gradiente o penalización no desaparece cuando se utiliza el método de retropropagación a través del tiempo al entrenar una red neuronal artificial .
Los LSTM a menudo se agrupan en "bloques" que contienen varios LSTM. Dicho dispositivo es típico de las redes neuronales multicapa "profundas" y contribuye a la implementación de la computación paralela utilizando equipos apropiados. En las fórmulas a continuación, cada variable, escrita en cursiva minúscula, denota un vector de dimensiones igual al número de módulos LSTM en el bloque.
Los bloques LSTM contienen tres o cuatro "puertas" que se utilizan para controlar el flujo de información en las entradas y salidas de la memoria de estos bloques. Estas puertas se implementan como una función logística para calcular un valor en el rango [0; una]. La multiplicación por este valor se usa para permitir o denegar parcialmente el flujo de información dentro y fuera de la memoria. Por ejemplo, la "puerta de entrada" controla la medida en que un nuevo valor ingresa a la memoria, y la "puerta de olvido" controla la medida en que un valor se retiene en la memoria. La "puerta de salida" controla hasta qué punto se usa el valor en la memoria para calcular la función de activación de salida para el bloque. (En algunas implementaciones, la puerta de entrada y la puerta de olvido se implementan como una sola puerta. La idea es que el valor anterior debe olvidarse cuando hay un valor nuevo que vale la pena recordar).
Los pesos en el bloque LSTM ( y ) se utilizan para establecer la dirección de operación de las puertas. Estos pesos se definen para los valores que ingresan al bloque (incluida la salida del paso de tiempo anterior ) para cada una de las puertas. Por lo tanto, el bloque LSTM determina cómo administrar su memoria en función de estos valores, y el entrenamiento con pesas permite que el bloque LSTM aprenda una función que minimiza la pérdida. Los bloques LSTM generalmente se entrenan usando retropropagación a lo largo del tiempo.
LSTM tradicional con puertas olvidadas [2] [7] y ( significa producto de Hadamard ):
Variables:
Eye LSTM con puertas de olvido [8] [9] no se usa, se usa como reemplazo en la mayoría de los lugares:
LSTM convolucional [10] ( significa operador de convolución ):
Para minimizar el error general del LSTM en todo el conjunto de secuencias de entrenamiento, se puede usar el descenso de gradiente iterativo , como la propagación hacia atrás desenrollada en el tiempo, para cambiar cada uno de los pesos en proporción a su derivado, según la magnitud del error. El principal problema con el descenso de gradiente para las redes neuronales recurrentes estándar es que los gradientes de error disminuyen a un ritmo exponencial a medida que aumenta el tiempo de retraso entre eventos importantes, lo que se identificó en 1991 [11] [12] . Sin embargo, con los bloques LSTM, cuando los valores de error se propagan desde la capa de salida, el error se bloquea en la memoria del bloque. Esto se denomina "carrusel de errores", que continuamente "alimenta" un error a cada una de las puertas hasta que están entrenadas para descartar un valor. Por lo tanto, la retropropagación regular de errores es efectiva para entrenar un bloque LSTM para recordar valores durante períodos de tiempo muy largos.
LSTM también se puede entrenar usando una combinación de un algoritmo evolutivo para los pesos en las capas ocultas y matrices pseudoinversas , o una máquina de vectores de soporte para los pesos en la capa de salida. [13] En el aprendizaje por refuerzo, los LSTM se pueden entrenar buscando directamente en el espacio estrategias, estrategias evolutivas o algoritmos genéticos .
Se describen ejemplos de aplicación de LSTM: en robótica [14] , para análisis de series de tiempo [15] , para reconocimiento de voz [4] [16] [17] , en aprendizaje rítmico [9] , para generar composiciones musicales [18] , en aprendizaje de gramática ( English artificial grammar learning ) [8] [19] [20] , en tareas de reconocimiento de escritura a mano [21] [22] , para reconocimiento de actividad humana [23] , en la tarea de identificación de proteínas homólogas [24] .
![]() |
---|
Tipos de redes neuronales artificiales | |
---|---|
|
Aprendizaje automático y minería de datos | |
---|---|
Tareas | |
Aprendiendo con un maestro | |
análisis de conglomerados | |
Reducción de dimensionalidad | |
Pronóstico estructural | |
Detección de anomalías | |
Graficar modelos probabilísticos | |
Redes neuronales | |
Aprendizaje reforzado |
|
Teoría | |
revistas y congresos |
|