Redes Neuronales Recurrentes (RNN)
Las Redes Neuronales Recurrentes (RNN) están diseñadas para trabajar con datos secuenciales: texto, series temporales, audio, sensores, logs y más. En esta guía aprenderás cómo funcionan, cómo se entrenan y por qué fueron clave antes de los Transformers.
Tabla de contenidos
- Qué es una RNN
- Memoria recurrente
- Problema del gradiente
- Arquitectura básica
- SimpleRNN
- Entrenamiento
- Limitaciones
- Ejemplo con Keras
- Ejercicios
1. Qué es una RNN
Una RNN procesa datos secuenciales manteniendo un estado interno (memoria) que se actualiza en cada paso de la secuencia. Esto permite modelar dependencias temporales.
- Texto
- Series temporales
- Audio
- Datos de sensores
2. Memoria recurrente
La memoria recurrente permite que la red recuerde información previa.
hₜ = f(Wxₜ + Uhₜ₋₁ + b)
3. Problema del gradiente
Las RNN sufren de gradientes que se desvanecen o explotan, dificultando el aprendizaje de dependencias largas.
- Gradiente que se desvanece → no aprende
- Gradiente que explota → entrenamiento inestable
4. Arquitectura básica
- Capa recurrente
- Estado oculto
- Salida por paso o final
5. SimpleRNN
layers.SimpleRNN(units=32, activation='tanh')
6. Entrenamiento
El entrenamiento es similar al de una red normal, pero procesando secuencias.
model.fit(X_train, y_train, epochs=10, batch_size=32)
7. Limitaciones
- No aprende dependencias largas
- Entrenamiento lento
- Difícil de paralelizar
- Superadas por LSTM, GRU y Transformers
8. Ejemplo con Keras
import tensorflow as tf
from tensorflow.keras import layers
model = tf.keras.Sequential([
layers.SimpleRNN(32, input_shape=(50, 10)),
layers.Dense(1, activation='sigmoid')
])
model.compile(
optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy']
)
model.fit(X_train, y_train, epochs=10)
model.evaluate(X_test, y_test)
9. Ejercicios
- Define qué es una RNN.
- Explica qué es la memoria recurrente.
- ¿Qué es el problema del gradiente?
- Escribe un ejemplo de SimpleRNN.
- Menciona dos limitaciones de las RNN.
# pista memoria
"Estado oculto que se actualiza en cada paso."
# pista gradiente
"El gradiente se vuelve muy pequeño o muy grande."