Una red de memoria a corto-largo plazo (LSTM) es un tipo de red neuronal recurrente (RNN). Las LSTM se utilizan principalmente para aprender, procesar y clasificar datos secuenciales, ya que pueden aprender dependencias a largo plazo entre unidades de tiempo de datos.
Cómo funcionan las LSTM
LSTM y RNN
Las redes LSTM son una forma especializada de la arquitectura de RNN. Las RNN utilizan información anterior para mejorar el rendimiento de una red neuronal con entradas actuales y futuras. Contienen un estado oculto y bucles, que permiten que la red almacene información anterior en estado oculto y funcione con secuencias. Las RNN tienen dos conjuntos de pesos: uno para el vector del estado oculto y otro para las entradas. Durante el entrenamiento, la red aprende los pesos de las entradas y del estado oculto. Cuando se implementa, la salida se basa en la entrada actual y en el estado oculto, que a su vez se basa en entradas anteriores.
En la práctica, las RNN simples tienen una capacidad limitada para aprender dependencias a largo plazo. Las RNN se suelen entrenar mediante retropropagación, que puede provocar un problema de desvanecimiento o explosión de gradiente. Estos problemas hacen que los pesos de la red sean muy pequeños o muy grandes, lo que limita la eficacia en aplicaciones que requieren que la red aprenda relaciones a largo plazo.
Arquitectura de capas de las LSTM
Las capas de LSTM utilizan puertas adicionales para controlar qué información del estado oculto se exporta como salida y al siguiente estado oculto. Estas puertas adicionales solucionan el problema común de las RNN para aprender dependencias a largo plazo. Además del estado oculto de las RNN tradicionales, la arquitectura de un bloque de LSTM generalmente tiene una celda de memoria, puerta de entrada, puerta de salida y puerta de olvido. Las puertas adicionales permiten que la red aprenda relaciones de datos a largo plazo de manera más eficaz. Su menor sensibilidad al intervalo de tiempo hace que las redes LSTM sean mejores para analizar datos secuenciales que las RNN simples. En la siguiente figura, se muestra la arquitectura de una LSTM y su flujo de datos en la unidad de tiempo t.
Los pesos y sesgos de la puerta de entrada controlan cuánto fluye un nuevo valor en la unidad de LSTM. Del mismo modo, los pesos y sesgos de la puerta de olvido y la puerta de salida controlan cuánto permanece un valor en la unidad, y hasta qué punto se utiliza ese valor de unidad para calcular la activación de la salida del bloque de LSTM, respectivamente.
El siguiente diagrama ilustra el flujo de datos a través de una capa de LSTM con múltiples unidades de tiempo. El número de canales de la salida coincide con el número de unidades ocultas de la capa de LSTM.
Arquitectura de redes LSTM
Las LSTM funcionan bien con datos de secuencias y series temporales para tareas de clasificación y regresión. También funcionan bien con vídeos, ya que son básicamente una secuencia de imágenes. Del mismo modo que cuando se trabaja con señales, es útil realizar extracción de características antes de suministrar la secuencia de imágenes a la capa de LSTM. Utilice redes neuronales convolucionales (CNN), como GoogLeNet, para extraer características de cada trama. La siguiente figura muestra cómo diseñar una red LSTM para distintas tareas.
LSTM bidireccional
Una LSTM bidireccional (BiLSTM) aprende dependencias bidireccionales entre unidades de tiempo de datos de secuencias o series temporales. Estas dependencias pueden resultar útiles cuando desea que la red aprenda de la serie temporal completa en cada unidad de tiempo. Las redes BiLSTM permiten un entrenamiento adicional, ya que los datos de entrada se pasan a través de la capa de LSTM dos veces, lo que puede aumentar el rendimiento de la red.
Una BiLSTM consta de dos componentes de LSTM: forward LSTM y backward LSTM. Forward LSTM funciona desde la primera unidad de tiempo hasta la última unidad de tiempo. Backward LSTM funciona desde la última unidad de tiempo hasta la primera unidad de tiempo. Después de pasar los datos a través de los dos componentes de LSTM, la operación concatena las salidas a lo largo de la dimensión del canal.
Ejemplos para familiarizarse con las LSTM en MATLAB
Aplicación de LSTM
Las LSTM son particularmente eficaces para trabajar con datos secuenciales, que pueden variar en longitud, y para aprender dependencias a largo plazo entre unidades de tiempo de esos datos. Entre las aplicaciones comunes de LSTM se incluyen análisis de sentimiento, modelado de lenguaje, reconocimiento de voz y análisis de vídeos.
Aplicaciones amplias de LSTM
Las RNN son una tecnología clave en las siguientes aplicaciones:
- Procesamiento de señales. Las señales son básicamente datos secuenciales que a menudo se recopilan a partir de sensores a lo largo del tiempo. La clasificación y regresión automática con conjuntos de datos de señales de gran tamaño permiten realizar predicciones en tiempo real. Los datos de señales no procesados se pueden suministrar a redes profundas o preprocesarse para enfocarse en determinadas características, como componentes de frecuencia. La extracción de características puede mejorar enormemente el rendimiento de una red.
- Procesamiento del lenguaje natural (PLN). El lenguaje es básicamente secuencial; los elementos de texto son de longitud variable. Las LSTM son una excelente herramienta para tareas de procesamiento del lenguaje natural, como clasificación de texto, generación de texto, traducción automática y análisis de sentimiento, ya que pueden aprender a contextualizar las palabras de una oración.
Pruebe los siguientes ejemplos para comenzar a aplicar redes LSTM a procesamiento de señales y procesamiento del lenguaje natural.
Aplicaciones verticales de LSTM
A medida que las aplicaciones de Deep Learning siguen expandiéndose, las LSTM se utilizan en las siguientes aplicaciones verticales:
Más información
Uso de redes LSTM para estimar emisiones de NOx
El equipo de ingeniería de Renault utilizó redes LSTM para desarrollar tecnología de próxima generación para vehículos con cero emisiones (ZEV).
Obtuvieron los datos de entrenamiento a partir de pruebas realizadas en un motor real. Durante las pruebas, el motor se sometió a ciclos de conducción comunes. Los datos capturados, que incluían par motor, velocidad del motor, temperatura del refrigerante, y emisiones del número de marcha, sirvieron como entrada para la red LSTM. Después de realizar iteraciones del diseño de la arquitectura de LSTM, la versión final logró una precisión del 85-90% en la predicción de los niveles de NOx.
LSTM con MATLAB
Utilizar MATLAB® con Deep Learning Toolbox™ permite diseñar, entrenar y desplegar redes LSTM. Usar Text Analytics Toolbox™ o Signal Processing Toolbox™ permite aplicar redes LSTM a análisis de texto o señales.
Diseño y entrenamiento de redes
Puede diseñar y entrenar redes LSTM de forma programática con pocas líneas de código. Utilice capas de LSTM, capas de LSTM bidireccionales y capas proyectadas de LSTM para crear redes LSTM. También puede diseñar, analizar y modificar redes LSTM de manera interactiva con la app Deep Network Designer.
Importación y exportación de redes
Puede intercambiar redes LSTM con marcos de Deep Learning basados en Python®:
Despliegue de redes
Despliegue una red LSTM entrenada en sistemas integrados, empresariales o la nube.
- Genere automáticamente código C/C++ y CUDA optimizado para desplegarlo en CPU y GPU.
- Genere código Verilog® y VHDL® sintetizable para desplegarlo en FPGA y SoC.
Recursos
Amplíe sus conocimientos con documentación, ejemplos, vídeos y mucho más.
Temas relacionados
Explore áreas temáticas similares comúnmente asociadas con productos de MATLAB y Simulink.
30 días de exploración a su alcance
Más informaciónSeleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia-Pacífico
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)