logo

¿Qué es LSTM – Memoria a largo plazo?

LSTM sobresale en tareas de predicción de secuencias, capturando dependencias a largo plazo. Ideal para series temporales, traducción automática y reconocimiento de voz debido a la dependencia del orden. El artículo proporciona una introducción detallada a LSTM, que cubre el modelo, la arquitectura, los principios de funcionamiento de LSTM y el papel fundamental que desempeñan en diversas aplicaciones.

¿Qué es LSTM?

Memoria a largo plazo es una versión mejorada de la red neuronal recurrente diseñada por Hochreiter & Schmidhuber.



Un tradicional RNN tiene un único estado oculto que pasa a través del tiempo, lo que puede dificultar que la red aprenda dependencias a largo plazo. modelo LSTM Aborde este problema introduciendo una celda de memoria, que es un contenedor que puede contener información durante un período prolongado.

Las arquitecturas LSTM son capaces de aprender dependencias a largo plazo en datos secuenciales, lo que las hace muy adecuadas para tareas como traducción de idiomas , reconocimiento de voz y pronóstico de series de tiempo .

Los LSTM también se pueden utilizar en combinación con otras arquitecturas de redes neuronales, como Redes neuronales convolucionales (CNN) para análisis de imágenes y vídeos.



Arquitectura LSTM

Las arquitecturas LSTM involucran la celda de memoria que está controlada por tres puertas: la puerta de entrada, la puerta de olvido y la puerta de salida. Estas puertas deciden qué información agregar, eliminar y generar de la celda de memoria.

  • La puerta de entrada controla qué información se agrega a la celda de memoria.
  • La puerta de olvido controla qué información se elimina de la celda de memoria.
  • La puerta de salida controla qué información sale de la celda de memoria.

Esto permite que las redes LSTM retengan o descarten selectivamente información a medida que fluye a través de la red, lo que les permite aprender dependencias a largo plazo.

El LSTM mantiene un estado oculto, que actúa como memoria a corto plazo de la red. El estado oculto se actualiza según la entrada, el estado oculto anterior y el estado actual de la celda de memoria.



Modelo LSTM bidireccional

LSTM bidireccional (Bi LSTM/BLSTM) es una red neuronal recurrente (RNN) que puede procesar datos secuenciales tanto en dirección hacia adelante como hacia atrás. Esto permite a Bi LSTM aprender dependencias de mayor alcance en datos secuenciales que los LSTM tradicionales, que solo pueden procesar datos secuenciales en una dirección.

  • Los Bi LSTM se componen de dos redes LSTM, una que procesa la secuencia de entrada en dirección hacia adelante y otra que procesa la secuencia de entrada en dirección hacia atrás.
  • Luego, las salidas de las dos redes LSTM se combinan para producir el resultado final.

Los modelos LSTM, incluidos los Bi LSTM, han demostrado un rendimiento de última generación en diversas tareas, como traducción automática, reconocimiento de voz y resumen de texto.

Las redes en arquitecturas LSTM se pueden apilar para crear arquitecturas profundas, lo que permite el aprendizaje de patrones y jerarquías aún más complejos en datos secuenciales. Cada capa de LSTM en una configuración apilada captura diferentes niveles de abstracción y dependencias temporales dentro de los datos de entrada.

ejemplo de nombre de usuario

LSTM trabajando

La arquitectura LSTM tiene una estructura en cadena que contiene cuatro redes neuronales y diferentes bloques de memoria llamados células .

La información es retenida por las células y las manipulaciones de la memoria las realizan las puertas. Hay tres puertas -

Olvídate de la puerta

La información que ya no es útil en el estado de la celda se elimina con la puerta de olvido. Dos entradas X t (entrada en el momento particular) y h t-1 (salida de celda anterior) se alimentan a la puerta y se multiplican con matrices de peso seguido de la adición de polarización. El resultante pasa a través de una función de activación que proporciona una salida binaria. Si para un estado de celda particular la salida es 0, la información se olvida y para la salida 1, la información se retiene para uso futuro. La ecuación de la puerta del olvido es:

f_t = σ(W_f · [h_{t-1}, x_t] + b_f)
dónde:

sitios como bedpage
  • W_f representa la matriz de peso asociada con la puerta de olvido.
  • [h_t-1, x_t] denota la concatenación de la entrada actual y el estado oculto anterior.
  • b_f es el sesgo con la puerta de olvido.
  • σ es la función de activación sigmoidea.

Arquitectura de LSTM

Puerta de entrada

La adición de información útil al estado de la celda se realiza mediante la puerta de entrada. Primero, la información se regula usando la función sigmoidea y filtra los valores a recordar de manera similar a la puerta de olvido usando entradas. h t-1 y X t .. Luego, se crea un vector usando sospechoso función que da una salida de -1 a +1, que contiene todos los valores posibles de ht-1y X t . Por último, se multiplican los valores del vector y los valores regulados para obtener la información útil. La ecuación para la puerta de entrada es:

i_t = σ(W_i · [h_{t-1}, x_t] + b_i)

Ĉ_t = tanh(W_c · [h_{t-1}, x_t] + b_c)

Multiplicamos el estado anterior por ft, sin tener en cuenta la información que previamente habíamos elegido ignorar. A continuación, incluimos yot∗Ct. Esto representa los valores candidatos actualizados, ajustados por la cantidad que elegimos para actualizar cada valor de estado.

C_t = f_t ⊙ C_{t-1} + i_t ⊙ Ĉ_t

dónde

  • ⊙ denota multiplicación de elementos
  • tanh es la función de activación de tanh

Puerta de salida

La tarea de extraer información útil del estado actual de la celda para presentarla como salida la realiza la puerta de salida. Primero, se genera un vector aplicando la función tanh en la celda. Luego, la información se regula mediante la función sigmoidea y se filtra por los valores a recordar mediante entradas. h_{t-1} yx_t. Por último, los valores del vector y los valores regulados se multiplican para enviarlos como salida y entrada a la siguiente celda. La ecuación para la puerta de salida es:

o_t = σ(W_o · [h_{t-1}, x_t] + b_o)

reemplazo de js

Aplicaciones de LSTM

Algunas de las aplicaciones famosas de LSTM incluyen:

  • Modelado de lenguaje: Los LSTM se han utilizado para tareas de procesamiento del lenguaje natural, como modelado de lenguaje, traducción automática y resumen de texto. Se les puede entrenar para generar oraciones coherentes y gramaticalmente correctas aprendiendo las dependencias entre las palabras de una oración.
  • Reconocimiento de voz: Los LSTM se han utilizado para tareas de reconocimiento de voz, como transcribir voz a texto y reconocer comandos hablados. Se les puede entrenar para reconocer patrones en el habla y relacionarlos con el texto correspondiente.
  • Pronóstico de series temporales: Los LSTM se han utilizado para tareas de pronóstico de series temporales, como predecir los precios de las acciones, el clima y el consumo de energía. Pueden aprender patrones en datos de series temporales y utilizarlos para hacer predicciones sobre eventos futuros.
  • Detección de anomalías: Los LSTM se han utilizado para tareas de detección de anomalías, como la detección de fraude e intrusión en la red. Se les puede capacitar para identificar patrones en los datos que se desvían de la norma y señalarlos como posibles anomalías.
  • Sistemas de recomendación: Los LSTM se han utilizado para tareas de recomendación, como recomendar películas, música y libros. Pueden aprender patrones en el comportamiento de los usuarios y utilizarlos para hacer recomendaciones personalizadas.
  • Análisis de vídeo: Los LSTM se han utilizado para tareas de análisis de video, como detección de objetos, reconocimiento de actividades y clasificación de acciones. Se pueden utilizar en combinación con otras arquitecturas de redes neuronales, como las redes neuronales convolucionales (CNN), para analizar datos de vídeo y extraer información útil.

LTSM y RNN

Característica

LSTM (memoria larga a corto plazo)

RNN (red neuronal recurrente)

Memoria

Tiene una unidad de memoria especial que le permite aprender dependencias a largo plazo en datos secuenciales.

No tiene unidad de memoria

Direccionalidad

Se puede entrenar para procesar datos secuenciales tanto hacia adelante como hacia atrás.

Solo se puede entrenar para procesar datos secuenciales en una dirección.

Capacitación

Más difícil de entrenar que RNN debido a la complejidad de las puertas y la unidad de memoria.

Más fácil de entrenar que LSTM

Aprendizaje de dependencia a largo plazo

Limitado

Capacidad para aprender datos secuenciales.

Aplicaciones

Traducción automática, reconocimiento de voz, resumen de texto, procesamiento de lenguaje natural, previsión de series temporales

constantes de java

Procesamiento de lenguaje natural, traducción automática, reconocimiento de voz, procesamiento de imágenes, procesamiento de vídeo.

Problema con las dependencias a largo plazo en RNN

Las redes neuronales recurrentes (RNN) están diseñadas para manejar datos secuenciales manteniendo un estado oculto que captura información de pasos de tiempo anteriores. Sin embargo, a menudo enfrentan desafíos a la hora de aprender dependencias a largo plazo, donde la información de pasos de tiempo distantes se vuelve crucial para hacer predicciones precisas. Este problema se conoce como problema de gradiente que desaparece o problema de gradiente explosivo.

A continuación se enumeran algunos problemas comunes:

Degradado desaparecido

Durante la retropropagación en el tiempo, los gradientes pueden volverse extremadamente pequeños a medida que se multiplican a lo largo de la cadena de conexiones recurrentes, lo que hace que el modelo tenga dificultades para aprender dependencias que están separadas por muchos pasos de tiempo.

Degradado explosivo

Por el contrario, los gradientes pueden explotar durante la retropropagación, lo que genera inestabilidad numérica y dificulta la convergencia del modelo.

Diferentes variantes de la memoria a largo plazo

Con el tiempo, se han propuesto varias variantes y mejoras a la arquitectura LSTM original.

patrón de diseño singleton java

vainilla LSTM

Esta es la arquitectura LSTM original propuesta por Hochreiter y Schmidhuber. Incluye celdas de memoria con puertas de entrada, olvido y salida para controlar el flujo de información. La idea clave es permitir que la red actualice y olvide selectivamente información de la celda de memoria.

Conexiones de mirilla

En la mirilla LSTM, las puertas pueden observar el estado de la celda además del estado oculto. Esto permite que las puertas consideren el estado de la celda al tomar decisiones, proporcionando más información de contexto.

Unidad recurrente cerrada (GRU)

gru es una alternativa a LSTM, diseñada para ser más simple y computacionalmente más eficiente. Combina las puertas de entrada y olvido en una única puerta de actualización y fusiona el estado de la celda y el estado oculto. Si bien los GRU tienen menos parámetros que los LSTM, se ha demostrado que funcionan de manera similar en la práctica.

Conclusión

La memoria larga a corto plazo (LSTM) es un tipo poderoso de red neuronal recurrente (RNN) que es muy adecuada para manejar datos secuenciales con dependencias a largo plazo. Aborda el problema del gradiente de desaparición, una limitación común de los RNN, mediante la introducción de un mecanismo de activación que controla el flujo de información a través de la red. Esto permite a los LSTM aprender y retener información del pasado, lo que los hace efectivos para tareas como traducción automática, reconocimiento de voz y procesamiento del lenguaje natural.

Verifique también:

Preguntas frecuentes (FAQ)

1. ¿Qué es LSTM y por qué se utiliza?

LSTM, o Long Short-Term Memory, es un tipo de red neuronal recurrente diseñada para tareas de secuencia, que se destaca en la captura y utilización de dependencias de datos a largo plazo.

2. ¿Cómo funciona LSTM?

Los LSTM utilizan un estado de celda para almacenar información sobre entradas pasadas. Este estado de celda se actualiza en cada paso de la red y la red lo usa para hacer predicciones sobre la entrada actual. El estado de la celda se actualiza mediante una serie de puertas que controlan cuánta información puede entrar y salir de la celda.

3. ¿Cuáles son los ejemplos de LSTM?

Los ejemplos de LSTM (memoria larga a corto plazo) incluyen reconocimiento de voz, traducción automática y predicción de series de tiempo, aprovechando su capacidad para capturar dependencias a largo plazo en datos secuenciales.

4. ¿Cuál es la diferencia entre LSTM y Gated Recurrent Unit (GRU)?

LSTM tiene un estado de celda y un mecanismo de activación que controla el flujo de información, mientras que GRU tiene un mecanismo de actualización de puerta única más simple. LSTM es más potente pero más lento de entrenar, mientras que GRU es más sencillo y rápido.

5. ¿Cuál es la diferencia entre LSTM y RNN?

  • RNN tener una estructura recurrente simple con flujo de información unidireccional.
  • LSTM Tienen un mecanismo de activación que controla el flujo de información y un estado celular para la memoria a largo plazo.
  • LSTM generalmente superan a los RNN en tareas que requieren aprender dependencias a largo plazo.

6. ¿Es LSTM más rápido que CNN?

No, los LSTM y las CNN tienen propósitos diferentes. Los LSTM son para datos secuenciales; Las CNN son para datos espaciales.

7. ¿Es LSTM más rápido que GRU?

Generalmente sí. Los GRU tienen menos parámetros, lo que puede conducir a un entrenamiento más rápido en comparación con los LSTM.