25. Redes neuronales recurrentes (RNN) y LSTM

Las redes neuronales recurrentes (RNN) son una clase de redes neuronales potentes para modelar secuencias de datos, como series temporales o lenguaje natural. Se denominan "recurrentes" porque realizan la misma tarea para cada elemento de una secuencia, y el resultado depende de cálculos anteriores. En otras palabras, los RNN tienen una "memoria" que captura información sobre lo que se ha calculado hasta el momento.

¿Qué son los RNN?

En un RNN tradicional, la información pasa a través de bucles. Esto permite que la información persista. En términos de arquitectura de red, esto significa que los RNN tienen conexiones cíclicas, lo cual es una distinción fundamental de las redes neuronales feedforward, donde la información solo se mueve en una dirección, de entrada a salida.

La idea central es que el resultado de un paso se utiliza como entrada para el siguiente paso. Esto es particularmente útil cuando necesitamos no solo procesar una secuencia de datos, sino también aprender de esa secuencia para hacer predicciones o comprender el contexto.

Problemas de los RNN tradicionales

A pesar de ser teóricamente capaces de manejar secuencias de cualquier longitud, los RNN en la práctica enfrentan importantes dificultades. Uno de ellos es el problema de la desaparición o explosión de los gradientes. Durante el entrenamiento, al calcular las derivadas de la función de pérdida con respecto a los parámetros de la red, los gradientes pueden volverse demasiado pequeños (desaparecer) o demasiado grandes (explotar), lo que hace que el entrenamiento sea ineficaz.

Este problema es particularmente pronunciado cuando se trata de aprender dependencias a largo plazo. En secuencias muy largas, el RNN puede olvidar la información inicial, lo que dificulta que la red capture dependencias de larga distancia dentro de la secuencia.

Memoria larga a corto plazo (LSTM)

Para superar estas limitaciones, se introdujo una variante especial de RNN llamada memoria larga a corto plazo (LSTM). Los LSTM están diseñados para evitar el problema de la desaparición del gradiente y son capaces de aprender dependencias a largo plazo. Se han utilizado ampliamente para tareas que incluyen reconocimiento de voz, traducción automática y generación de texto.

Un LSTM tiene una estructura más compleja que un RNN tradicional, con cuatro capas que interactúan de una manera muy especial. En lugar de tener una única capa neuronal, como es el caso de los RNN, los LSTM tienen cuatro, interactuando de una forma muy particular:

  • Puerta de olvido: decide qué información se descartará del estado de la celda.
  • Puerta de entrada: decide qué valores se actualizarán con nueva información.
  • Puerta de salida: decide cuál será la siguiente salida oculta.
  • Estado de la celda: línea de transmisión de información que se puede agregar o eliminar a través de puertas.

Estos componentes permiten al LSTM agregar o eliminar información del estado de la celda, que es una especie de "portador" de información a lo largo de la secuencia de operaciones. A través de puertas, el LSTM puede aprender qué es importante conservar o descartar con el tiempo, lo que le permite mantener información a largo plazo.

Implementación de RNN y LSTM con Python

Python es un lenguaje de programación que se ha convertido en un estándar de facto en la comunidad de aprendizaje automático debido a su sintaxis simple y su amplia colección de bibliotecas científicas y de aprendizaje automático. Marcos como TensorFlow y PyTorch proporcionan implementaciones optimizadas de RNN y LSTM, lo que facilita el desarrollo de modelos complejos de aprendizaje profundo.

Para implementar un RNN o LSTM en Python, necesitará conocimientos básicos de bibliotecas como NumPy y pandas para la manipulación de datos, así como estar familiarizado con la biblioteca de aprendizaje automático que elija. La implementación normalmente implica los siguientes pasos:

  1. Preparación de datos: implica convertir datos sin procesar a un formato adecuado para entrenar la red, como vectores de características y etiquetas.
  2. Construcción del modelo: define la arquitectura de red con capas recurrentes o LSTM, según el problema.
  3. Entrenamiento de modelos: ajuste de los pesos de la red a través de un proceso de optimización, generalmente utilizando el algoritmo de retropropagación.
  4. Evaluación del modelo: pruebe el modelo entrenado con datos invisibles para evaluar su rendimiento.

Los RNN y LSTM son herramientas poderosas para manejar datos secuenciales y se han aplicado con éxito a una variedad de tareas complejas. Con el aumento continuo de los datos disponibles y el avance de las técnicas de aprendizaje automático, la importancia de estas redes no hará más que crecer.

Ahora responde el ejercicio sobre el contenido:

¿Cuál de las siguientes afirmaciones sobre las redes neuronales recurrentes (RNN) y la memoria a corto plazo (LSTM) es correcta?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Introducción al aprendizaje por refuerzo

Siguiente página del libro electrónico gratuito:

103Introducción al aprendizaje por refuerzo

4 minutos

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.