DEEP LEARNING EN
PYTHON PARA EL
MODELADO
PREDICTIVO
UD1. Redes neuronales
recurrentes II
Javier Marín Morales
27 de abril de 2026
Redes neuronales recurrentes II
1. Backpropagation Through Time (BPTT)
2. Redes recurrentes bidireccionales
3. Redes recurrentes apiladas
4. Redes recurrentes dilatadas
5. Introducción a los transformers
2
Redes neuronales recurrentes II
1. Backpropagation Through Time (BPTT)
2. Redes recurrentes bidireccionales
3. Redes recurrentes apiladas
4. Redes recurrentes dilatadas
5. Introducción a los transformers
3
Backpropagation Through Time (BPTT)
[Link] 4
Backpropagation Through Time (BPTT)
Tenemos 3 caminos diferentes para llegar a Wi
Nota: asumimos un
problema many-to-one
Y tenemos que tenerlos en cuenta todos!
5
Backpropagation Through Time (BPTT)
Esto hace que tengamos que propagar hacia atrás el gradiente
La Backpropagation Through Time (BPTT) es un caso especial de la retropropagación
adaptado para redes neuronales recurrentes (RNN), en el que los gradientes se
calculan a lo largo de los pasos temporales desplegando la red y aplicando la regla de
la cadena a través de todos los estados pasados.
6
Backpropagation Through Time (BPTT)
Exploding & Vanishing Gradient Problem
Idea general
• Durante el entrenamiento, el error se propaga hacia atrás para ajustar los pesos.
• Ese gradiente se calcula multiplicando muchas derivadas.
• Si esas derivadas son pequeñas, el gradiente se va haciendo casi cero: vanishing
gradient.
• Si esas derivadas son grandes, el gradiente crece demasiado: exploding gradient.
Consecuencia
• Vanishing: la red aprende muy poco de capas o pasos anteriores.
• Exploding: el entrenamiento se vuelve inestable y los pesos cambian de forma
descontrolada.
7
Backpropagation Through Time (BPTT)
Exploding & Vanishing Gradient Problem
RNN y dependencias largas
• En una RNN, la salida final depende de todos los estados anteriores.
• Con BPTT, el gradiente se propaga hacia atrás en el tiempo.
• Cuanto más larga es la secuencia, más multiplicaciones de gradientes hay.
• Por eso, en secuencias largas, el gradiente puede desaparecer o explotar con más
facilidad.
Impacto
• La RNN puede olvidar información importante de los primeros pasos.
• Le cuesta aprender dependencias a largo plazo.
• El entrenamiento puede volverse lento, inestable o directamente fallar.
8
Redes neuronales recurrentes II
1. Backpropagation Through Time (BPTT)
2. Redes recurrentes bidireccionales
3. Redes recurrentes apiladas
4. Redes recurrentes dilatadas
5. Introducción a los transformers
9
Redes recurrentes bidireccionales
El Problema de la Información Unidireccional
Las RNNs tradicionales procesan secuencias de manera unidireccional (típicamente de izquierda a
derecha) → el estado oculto en el tiempo “t” solo tiene acceso a la información de los pasos temporales
pasados:
ℎ𝑡 = 𝑓(ℎ𝑡−1 , 𝑥𝑡 )
Esta limitación es problemática en escenarios donde el contexto futuro es crucial para la comprensión
completa del elemento actual.
10
Redes recurrentes bidireccionales
Ejemplo
Piensa en la siguiente oración:
“Fui al banco a sentarme junto al río”
Cuando una RNN unidireccional procesa la palabra “banco”, sin acceso al contexto posterior (“sentarme”),
no puede interpretar correctamente esta palabra.
El contexto bidireccional permite resolver esta ambigüedad.
11
Redes recurrentes bidireccionales
Un poco de historia…
Las Bidirectional RNNs (Bi-RNNs) fueron introducidas por Schuster y Paliwal (1997) en el contexto de
procesamiento de voz.
La motivación original surgió de la observación de que en muchas tareas de reconocimiento de
patrones secuenciales, tener acceso a:
- Contexto pasado: Lo que existe antes
- Contexto futuro: Lo que existe después
proporciona una representación más rica y precisa del estado actual.
12
Redes recurrentes bidireccionales
Aplicaciones
• Reconocimiento de actividad humana (HAR): Acelerómetro/giroscopio → caminar/correr/subir
escaleras.
Ejemplo: BiLSTM clasifica secuencia completa de 5s.
• Detección de arritmias en ECG: Segmentar P-QRS-T waves en 10s de ECG.
Ejemplo: BiLSTM etiqueta cada latido usando contexto previo/siguiente.
• Clasificación de fallos en maquinaria: Vibración → normal/desgaste/rotura en ciclo completo.
Ejemplo: BiGRU analiza 1min de sensor para diagnosticar.
13
Redes recurrentes bidireccionales
Aplicaciones
• Sound Event Detection: Audio ambiental → sirena/puerta/cristal roto
Ejemplo: CNN+BiLSTM delimita inicio-fin del evento.
• Análisis de trayectorias vehiculares: GPS → giro/adelantamiento/frenada brusca
Ejemplo: BiLSTM clasifica maniobra mirando trayectoria completa.
• Segmentación de ejercicios físicos: Wearable → repetición squat completa (bajada-arriba)
Ejemplo: BiLSTM detecta inicio-fin usando keypoints de pose.
14
Redes recurrentes bidireccionales
Estructura
Una Bi-RNN consiste en dos RNNs independientes:
1. RNN Forward (→): Procesa la secuencia en dirección forward (pasado → futuro)
2. RNN Backward (←): Procesa la secuencia en dirección backward (futuro → pasado)
15
Redes recurrentes bidireccionales
Flujo de funcionamiento
1. Fase Forward: La RNN forward procesa la secuencia normalmente, generando estados ocultos
h→_1, h→_2, …, h→_T
2. Fase Backward: La RNN backward procesa la misma secuencia en orden inverso, generando
h←T, h←(T-1), …, h←_1
3. Combinación: Para cada posición temporal “t”, se combinan ambos estados ocultos:
- Concatenación (más común): h_t = [h→_t; h←_t]
- Suma: h_t = h→_t + h←_t
- Promedio: h_t = (h→_t + h←_t) / 2
- Gating personalizado: h_t = σ(W) ⊙ h→_t + (1-σ(W)) ⊙ h←_t
16
Redes recurrentes bidireccionales
17
Redes recurrentes bidireccionales
Ventajas:
1. Representación Contextual Rica
- Captura dependencias desde ambas direcciones temporales
- Mejor comprensión semántica del contexto
2. Mejora en Tareas de Clasificación/Etiquetado
- Performance superior en NER (Named Entity Recognition), POS tagging (etiquetado gramatical), sentiment analysis
- Reducción de ambigüedades contextuales
3. Estado del Arte en Múltiples Dominios
- Componente estándar en muchos modelos NLP modernos
- Base para arquitecturas más complejas
4. Aprendizaje de Patrones Complejos
- Puede detectar patrones que requieren contexto futuro
- Útil en secuencias con estructura compleja
18
Redes recurrentes bidireccionales
Desventajas:
1. No Causal - No Apta para Predicción Online
Problema: En tiempo t, necesitamos conocer t+1, t+2, etc.
Escenario inválido: Streaming de datos, forecasting en tiempo real
2. Doble Complejidad Computacional
- Entrenamiento: ~2× tiempo de una RNN unidireccional
- Inferencia: debe procesar toda la secuencia dos veces
- Memoria: almacena estados de ambas direcciones
3. Latencia en Inferencia
- Debe esperar a recibir la secuencia completa, no puede procesar en modo streaming
4. Mayor Riesgo de Overfitting
- El doble de parámetros aumenta la capacidad del modelo: requiere más datos de entrenamiento, necesita regularización más agresiva
5. Complejidad en Debugging
- Errores pueden originarse en cualquier dirección, visualización de flujos de gradientes más compleja
19
Redes recurrentes bidireccionales
Usa Bi-RNN cuando:
- Toda la secuencia está disponible antes de la inferencia
- El contexto futuro es relevante para la tarea
- La tarea es de clasificación/etiquetado, no generación autorregresiva
- Tienes suficientes datos de entrenamiento (para soportar más parámetros)
Evita Bi-RNN cuando:
- Necesitas predicción online/causal en cada instante
- La tarea es forecasting genuino (predicción del futuro)
- En forecasting con ventana histórica cerrada, puede ser válida si no usa información posterior al
objetivo
- Los recursos computacionales son muy limitados
- La causalidad temporal es crítica (ej: sistemas de trading)
20
Redes neuronales recurrentes II
1. Backpropagation Through Time (BPTT)
2. Redes recurrentes bidireccionales
3. Redes recurrentes apiladas
4. Redes recurrentes dilatadas
5. Introducción a los transformers
21
Redes recurrentes apiladas
El problema de las RNNs de una sola capa
Las RNNs de una sola capa aprenden representaciones en un único nivel de abstracción. Esto limita
su capacidad para:
1. Capturar jerarquías conceptuales: En lenguaje, caracteres → palabras → frases → oraciones
2. Aprender características a múltiples escalas: Patrones de corto y largo plazo simultáneamente
3. Incrementar capacidad representacional: Similar a cómo las CNNs profundas superan a las
shallow
22
Redes recurrentes apiladas
Ver ejemplo CNN con MNIST:
Analogía con Redes Convolucionales [Link]
En CNNs, la profundidad permite:
- Capas inferiores: Detectan bordes, texturas simples
- Capas medias: Combinan características para detectar partes de objetos
- Capas superiores: Reconocen objetos completos y conceptos abstractos
¿Puede aplicarse esta jerarquía a secuencias temporales?
La respuesta es sí: Las Stacked RNNs (también llamadas Deep RNNs) apilan múltiples capas
recurrentes para lograr aprendizaje jerárquico en el dominio temporal.
23
Redes recurrentes apiladas
Ejemplo simple
Entrada: "El gato negro duerme tranquilamente”
Capa 1 (inferior):
→ Aprende representaciones básicas de palabras
→ Sintaxis local, relaciones entre palabras adyacentes
Capa 2 (media):
→ Agrupa palabras en sintagmas: "El gato negro", "duerme tranquilamente”
→ Detecta roles gramaticales
Capa 3 (superior):
→ Comprende la semántica completa de la oración
→ Identifica el sujeto, acción y estado
24
Redes recurrentes apiladas
Estructura básica
Una RNN apilada de L capas funciona de la siguiente manera:
1. La capa inferior (1) recibe la entrada original x_t
2. Cada capa superior (2..L-1) recibe como entrada el estado oculto de la capa inferior
3. Solo la capa superior (L) produce la salida final (típicamente)
25
Redes recurrentes apiladas
Estructura básica
Visto de otra forma, para cada instante “t”:
En Keras, si apilamos
RNN/LSTM/GRU, las capas
recurrentes intermedias deben
tener
return_sequences=True
26
Redes recurrentes apiladas
BPTT en Stacked RNNs
El gradiente fluye en dos direcciones:
1. Temporalmente hacia atrás: t → t-1 → t-2 → …
2. Jerárquicamente hacia abajo: capa L → capa L-1 → … → capa 1
Esto puede amplificar los problemas de gradients que desaparecen o explotan.
27
Redes recurrentes apiladas
¿Qué hago, ensancho una RNN de una sola capa o apilo N capas de RNNs?
Para incrementar la capacidad de una RNN, hay dos estrategias principales:
1. Anchura: Aumentar el tamaño del estado oculto (d↑)
2. Profundidad: Añadir más capas (L↑)
Cada una tiene sus ventajas e inconvenientes.
28
Redes recurrentes apiladas
¿Qué hago, ensancho una RNN de una sola capa o apilo N capas de RNNs?
29
Redes recurrentes apiladas
Técnicas para mitigar el gradient vanishing/explotion en Stacked RNNs
En Stacked RNNs muy profundas (L > 4), los gradientes pueden degradarse significativamente.
Inspirados por ResNet, se han propuesto variantes con conexiones residuales.
1. Residual Stacked RNNs
2. Highway connections: usa gating para controlar la cantidad de skip
3. Dense Connections: cada capa recibe inputs de todas las capas anteriores
1. Muy computacionalmente costoso, pero maximiza el flujo de información
30
Redes recurrentes apiladas
Ventajas:
1. Aprendizaje Jerárquico de Representaciones
- Capas inferiores: características de bajo nivel; capas superiores: conceptos abstractos
- Mejora la capacidad de modelado
2. Mejor Generalización (Empíricamente)
- Múltiples estudios muestran mejor performance que RNNs anchas (menos overfitting para el mismo
número de parámetros)
3. Representaciones Más Ricas
- Múltiples niveles de abstracción disponibles, posibilidad de usar outputs intermedios
4. Flexibilidad Arquitectónica
- Puede combinar con bidireccionalidad, atención, etc.
- Diferentes tipos de células por capa (LSTM + GRU)
31
Redes recurrentes apiladas
Inconvenientes:
1. Coste computacional directamente proporcional al número de capas
- Tiempo de forward: O(L x T x d^2)
2. Problemas de gradiente amplificados
- Vanishing/exploding gradients más severos, requiere inicialización cuidadosa, gradient clipping es esencial
3. Mayor overfitting si datos limitados
- Muchos más parámetros → necesitan más datos y regularización más agresiva
4. Complejidad de debugging
- Difícil identificar qué capa causa el problema, visualización más compleja
5. Rendimientos decrecientes
- A partir de las 4-6 capas, aumentar L no implica mejoras significativas, pero coste computacional aumenta
linealmente
32
Redes neuronales recurrentes II
1. Backpropagation Through Time (BPTT)
2. Redes recurrentes bidireccionales
3. Redes recurrentes apiladas
4. Redes recurrentes dilatadas
5. Introducción a los transformers
33
Redes recurrentes dilatadas
El problema de las dependencias a largo plazo
Aunque LSTM/GRU mitigan el problema, las dependencias muy largas siguen implicando caminos
temporales largos y dificultad para mantener información relevante:
1. Desvanecimiento del gradiente: incluso con LSTM, el gradiente se multiplica T veces durante el
BPTT → problemático para secuencias muy largas
2. Compresión de información: el estado oculto h_t debe comprimir toda la historia pasada en un
vector de dimension fija → para t muy grande, la información distante “se olvida” progresivamente
3. Coste computacional lineal: procesar una secuencia de longitud T requiere T pasos secuenciales
→ no se puede paralelizar
34
Redes recurrentes dilatadas
Ejemplo
Tarea: Predecir temperatura en t=365 (un año después)
Información relevante:
- t=364 (ayer): MUY relevante
- t=360 (hace 5 días): Relevante
- t=358 (hace 7 días, mismo día de la semana): Relevante
- t=0 (hace un año): CRÍTICO (patrones anuales)
Problema de RNN estándar:
- Para alcanzar t=0 desde t=365, el gradiente viaja 365 pasos
- Información de t=0 se diluye a través de 365 compresiones
35
Redes recurrentes dilatadas
Una Dilated RNN introduce saltos controlados en las conexiones recurrentes, permitiendo que el
estado oculto en tiempo “t” dependa de instantes pasados no consecutivos y cada vez más
distantes.
37
Redes recurrentes dilatadas
38
Redes recurrentes dilatadas
Múltiples tasas de dilatación
Permiten que h_9 tenga acceso exponencialmente distante al pasado a través de multiples escalas
temporales.
39
Redes recurrentes dilatadas
Receptive Field Temporal
El receptive field temporal de ℎ𝑡 indica qué pasos anteriores de la secuencia pueden influir en el
estado actual.
RNN Estándar de L Capas:
En una RNN estándar, cada estado se conecta con el estado inmediatamente anterior:
ℎ𝑡 ← ℎ𝑡−1
Por tanto, para que la información de un instante lejano 𝑡 − 𝑘influya en ℎ𝑡 ,debe pasar por todos los
pasos intermedios:
𝑡 − 𝑘 →. . . → 𝑡 − 2 → 𝑡 − 1 → 𝑡
cuanto más lejos está la información, más largo es el camino que debe recorrer.
40
Redes recurrentes dilatadas
Stacked RNN con Dilataciones Exponenciales:
Una Dilated RNN introduce conexiones con saltos temporales:
ℎ𝑡 ← ℎ𝑡−𝑑
donde 𝑑 es la dilatación.
Por ejemplo, usando dilataciones:
𝑑 = 1,2,4,8
la red puede mirar a diferentes escalas temporales:
𝑡 − 1, 𝑡 − 2, 𝑡 − 4, 𝑡 − 8
Por lo tanto, el modelo alcanza información más lejana usando menos pasos efectivos.
41
Redes recurrentes dilatadas
Complejidad computacional
Tiempo por Forward Pass
Staked RNN estándar: O(L × T × d²)
Dilated RNN: O(L × T × d²) (misma complejidad asintótica)
Por tanto, la ventaja principal de una Dilated RNN no es reducir necesariamente el coste computacional
asintótico, sino acortar el camino temporal que debe recorrer la información.
En una Dilated RNN, las conexiones con saltos permiten acceder a escalas temporales más lejanas
con menos transiciones efectivas.
La Dilated RNN no “hace menos trabajo” necesariamente; organiza mejor las conexiones temporales
para llegar antes a dependencias lejanas.
44
Redes recurrentes dilatadas
Aplicaciones específicas
1. Procesamiento de audio y música
Reconocimiento de Voz
Patrones fonéticos ocurren en múltiples escalas:
- Fonemas: ~10-50ms
- Sílabas: ~100-200ms
- Palabras: ~200-600ms
Dilated RNN captura naturalmente estas escalas.
45
Redes recurrentes dilatadas
Aplicaciones específicas
2. Series temporales con estacionalidad multiple
Predicción de demanda eléctrica
Patrones relevantes:
- Horario: cada 1 hora
- Diario: cada 24 horas
- Semanal: cada 168 horas
- Anual: cada 8760 horas
Dilataciones apropiadas:
dilations = [1, 2, 4, 8, 16, 24, 168, 336, 672]
46
Redes recurrentes dilatadas
Aplicaciones específicas
3. Análisis de logs y secuencias de eventos
En sistemas de detección de anomalías:
- Eventos normales frecuentes (cada minuto)
- Patrones anormales raros (cada hora/día)
Dilated RNN puede detectar ambos tipos de patrones.
47
Redes recurrentes dilatadas
Aplicaciones específicas
4. Genómica y Bioinformática
Análisis de secuencias de ADN/proteínas:
- Dependencias locales (codones: 3 nucleótidos)
- Dependencias distantes (motifs, dominios proteicos)
5. Análisis de Videos Largos
Para videos de horas de duración:
- Frame-level: detalles finos
- Dilated layers: patrones a nivel de escenas/episodios
48
Redes recurrentes dilatadas
Ventajas:
1. Receptive Field Exponencial 4. Procesamiento Causal
- Acceso a pasado distante con profundidad - Mantiene la propiedad causal de RNNs
logarítmica - Aplicable a streaming/online scenarios
- O(2^L) cobertura con L capas 5. Menor Compresión de Información
2. Captura Multi-escala Inherente - Información distante no pasa por tantos bottlenecks
- Diferentes capas modelan diferentes escalas - Gradientes viajan por menos pasos efectivos
temporales
- Útil en dominios con jerarquía temporal natural
3. Eficiencia Computacional
- Similar a RNN estándar: O(L×T)
49
Redes recurrentes dilatadas
Inconvenientes:
1. Cobertura Irregular del pasado 4. Sensibilidad a la Elección de Dilataciones
- Algunos pasos temporales son “omitidos” - Dilataciones fijas pueden no alinearse con patrones reales
2. Complejidad de Implementación - Requiere conocimiento del dominio
- No hay soporte nativo en frameworks - Mala elección → performance degradada
- Requiere implementación manual cuidadosa 5. No Reemplaza Completamente Atención
- Manejo de estados intermedios no trivial - Atención puede ponderar dinámicamente cualquier paso
3. Menos explorado que alternativas - Dilated RNN tiene “cableado” fijo
- Menos papers, menos best practices establecidas 6. Latencia Variable
- Menos casos de uso documentados - Output en t depende de estados en t-d
- Debugging más difícil - Para dilataciones grandes, latencia puede ser problema en
streaming
50
Redes recurrentes dilatadas
Ventajas con respecto a otras técnicas
vs RNN Estándar:
+ Mucho mayor receptive field
+ Mejor captura de dependencias a largo plazo
+ Similar complejidad computacional
vs Stacked RNN:
+ Atajos temporales a escalas crecientes frente a camino recurrente paso a paso
+ Mejor para secuencias muy largas
- Menos explorado/maduro
51
Redes recurrentes dilatadas
Usar Dilated RNN si… Usar Alternativa si…
Secuencias muy largas (T > 1000) Secuencias cortas (T < 100)
Patrones multi-escala conocidos Patrones uniformes
Procesamiento online necesario Batch processing offline
Restricciones de memoria Memoria abundante → Atención
52
Redes neuronales recurrentes II
1. Backpropagation Through Time (BPTT)
2. Redes recurrentes bidireccionales
3. Redes recurrentes apiladas
4. Redes recurrentes dilatadas
5. Introducción a los transformers
53
Transformers
Hasta ahora hemos visto que las RNN, LSTM y GRU procesan las secuencias
paso a paso.
Esto tiene tres consecuencias importantes:
• El procesamiento es secuencial: primero x₁, luego x₂, luego x₃...
• La información pasada debe comprimirse en un estado oculto.
• Las dependencias largas pueden ser difíciles de aprender, incluso usando
LSTM/GRU.
Las redes bidireccionales, apiladas y dilatadas ayudan, pero siguen partiendo de
una idea recurrente.
Los Transformers cambian el enfoque: en lugar de recorrer la secuencia paso a
paso, permiten que cada elemento compare directamente con los demás
54
Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... &
Polosukhin, I. (2017). Attention is all you need. Advances in neural information
processing systems, 30.
Transformers
¿Qué son los Transformers?
• Arquitecturas neuronales diseñadas para procesar
secuencias.
• Nacieron como alternativa a las RNN/LSTM.
• Son especialmente útiles en lenguaje natural,
traducción, resumen, clasificación y generación de
texto.
• Su idea principal es analizar todos los elementos de
la secuencia en paralelo.
Un Transformer no procesa palabra por palabra de forma recurrente,
sino que compara las palabras entre sí dentro del contexto completo.
55
Transformers
Self-Attention
• El mecanismo central de los Transformers es la
atención.
• Permite que cada palabra “mire” a otras palabras
de la frase.
• Así el modelo decide qué partes del contexto son
más relevantes.
• Esto ayuda a capturar relaciones lejanas dentro de
una secuencia.
56
Transformers
Para cada posición, el modelo calcula una nueva
representación teniendo en cuenta:
• El propio elemento.
• Los elementos relacionados con él.
• La importancia relativa de cada relación.
Resultado:
Cada palabra deja de representarse de forma aislada y pasa
a representarse dentro de su contexto.
Ejemplo:
La palabra “banco” no tendrá la misma representación en:
“Fui al banco a sacar dinero.”
“Me senté en el banco del parque.”
57
Transformers
Ventajas frente a RNN/LSTM
• Procesan muchos elementos de la secuencia en paralelo.
• Capturan relaciones lejanas de forma más directa.
• Aprenden representaciones contextuales muy ricas.
• Escalan muy bien con grandes cantidades de datos.
• Son la base de modelos modernos como BERT, GPT y muchos sistemas de IA generativa.
Limitaciones
• La atención completa tiene coste elevado en secuencias muy largas.
• Suelen requerir más datos y más cómputo que modelos recurrentes pequeños.
• No siempre son la mejor opción para datasets pequeños o problemas simples.
• Necesitan gestionar explícitamente la posición y la causalidad.
58
DEEP LEARNING EN
PYTHON PARA EL
MODELADO
PREDICTIVO
Muchas gracias
Javier Marín Morales
27 de abril de 2026