Redes Recurrentes: RNN, LSTM y GRU

Modelos diseñados para datos secuenciales como texto, audio y series temporales.

RNNLSTMsecuenciasNLP

Redes Neuronales Recurrentes (RNN)

Mientras que las CNN son expertas en el espacio, las RNN son expertas en el tiempo. Son redes que poseen "memoria", ya que la salida de un paso anterior se reintroduce como entrada para el paso actual.

El Problema de la Memoria a Corto Plazo

Las RNN tradicionales sufren gravemente por el desvanecimiento del gradiente. Si una secuencia es muy larga (por ejemplo, un párrafo), la red olvida la información del principio cuando llega al final.

Soluciones: LSTM y GRU

Para solucionar esto, se crearon arquitecturas con "puertas" (gates) que controlan el flujo de información:

  • LSTM (Long Short-Term Memory): Posee una "celda de estado" que actúa como una cinta transportadora de información. Tiene tres puertas: Olvido (qué borrar), Entrada (qué aprender) y Salida (qué mostrar).
  • GRU (Gated Recurrent Unit): Una versión simplificada de LSTM que es más eficiente computacionalmente y suele ofrecer resultados similares.

Aplicaciones en el Lenguaje

Antes de la llegada de los Transformers, las RNN eran el motor detrás de:

  • Traducción Automática: Modelos Seq2Seq.
  • Análisis de Sentimiento: Determinar si una reseña es positiva o negativa basándose en la secuencia de palabras.
  • Predicción de Series Temporales: Pronóstico de precios de acciones o clima.

Estructura de código conceptual

# Ejemplo de capa recurrente
from tensorflow.keras.layers import LSTM, Embedding

model = models.Sequential([
    # Embedding para convertir texto a vectores densos
    layers.Embedding(input_dim=1000, output_dim=64),
    # Capa LSTM con 128 unidades
    layers.LSTM(128),
    layers.Dense(1, activation='sigmoid')
])

Limitaciones

El gran problema de las RNN es que son secuenciales por naturaleza. No se pueden procesar en paralelo, lo que las hace lentas para grandes volúmenes de datos. Esta limitación llevó al desarrollo de la arquitectura Transformer.

🎯

Tarjeta práctica

Todo lo necesario para entender, aprender y aplicar este tema.

Las Redes Neuronales Recurrentes (RNN) son una arquitectura de Deep Learning diseñada para procesar datos donde el orden importa, conocidos como datos secuenciales. A diferencia de las redes tradicionales que procesan cada entrada de forma independiente, las RNN poseen una 'memoria' que les permite retener información de pasos anteriores. Imagina que estás leyendo esta frase: para entender la última palabra, tu cerebro necesita recordar las anteriores. Eso es exactamente lo que hace una RNN.

Sin embargo, las RNN básicas sufren del problema del desvanecimiento del gradiente, lo que significa que olvidan información rápidamente. Para solucionar esto, surgieron variantes avanzadas:

  1. LSTM (Long Short-Term Memory): Introducen 'puertas' que deciden qué información guardar, cuál olvidar y cuál dejar pasar.
  2. GRU (Gated Recurrent Unit): Una versión simplificada de LSTM que es más eficiente computacionalmente pero igual de potente en muchos casos.

¿Por qué son importantes? Sin ellas, no tendríamos traductores automáticos precisos, asistentes de voz como Siri o predictores de bolsa fiables. Se aplican en:

  • Procesamiento de Lenguaje Natural (NLP): Chatbots y traducción.
  • Series Temporales: Predicción de ventas o clima.
  • Análisis de Audio: Reconocimiento de voz y generación de música.