057 — Aprendizaje por refuerzo profundo
Parte: 04 — Redes neuronales y deep learning
Nivel: intermedio-avanzado · Horas estimadas: 6
Laboratorio: robotics · Estado: EXECUTABLE_CORE
🎯 Propósito
Comprender aprendizaje por refuerzo profundo dentro de la evolución de la inteligencia artificial, implementar un experimento mínimo verificable y distinguir qué parte constituye evidencia frente a una afirmación todavía no comprobada.
📚 Resultados de aprendizaje
Al finalizar podrás:
- Explicar aprendizaje por refuerzo profundo usando los conceptos
DQN,policy gradient,PPO,recompensa. - Ejecutar el laboratorio con una semilla explícita y revisar su contrato JSON.
- Identificar al menos un supuesto, una limitación y un riesgo de aplicación.
- Comparar el enfoque con la etapa anterior de la ruta de aprendizaje.
- Producir una evidencia reproducible y una conclusión que no exceda los datos.
🧩 Conceptos centrales
DQN, policy gradient, PPO, recompensa
🗺️ Ubicación en el mapa de la IA
El aprendizaje por refuerzo formaliza la decisión secuencial (agente, entorno, recompensa) que el curso trató de forma tabular en la parte 02. El RL profundo sustituye las tablas por redes neuronales como aproximadores: DQN (Mnih et al., 2015) jugó Atari desde píxeles, y los policy gradients (PPO) están detrás de la robótica moderna y del RLHF con que se alinean los LLM. Es el punto donde percepción (CNN) y decisión (MDP) se encuentran.
📖 Fundamentos
🎰 El problema: MDP y retorno
Un proceso de decisión de Markov (S, A, P, R, γ) define: estados, acciones, dinámica P(s'|s,a), recompensa r y descuento γ ∈ [0,1). El agente busca una política π(a|s) que maximice el retorno esperado G_t = Σ_k γᵏ·r_{t+k}. Dos familias de solución: aprender valores (y derivar la política) o aprender la política directamente.
🎯 Q-learning y DQN
El valor de acción Q(s,a) = retorno esperado tomando a en s y siguiendo la política óptima después. Q-learning aprende off-policy con la actualización:
Q(s,a) ← Q(s,a) + α·[ r + γ·max_{a'} Q(s',a') − Q(s,a) ]
└──────── objetivo (TD target) ────────┘
Con estados continuos o imágenes, la tabla es inviable: DQN aproxima Q(s,a;θ) con una red (una CNN si la entrada son píxeles) y minimiza el error TD. Aproximar + bootstrapping + correlación temporal de los datos es una mezcla inestable ("tríada mortal"); DQN la domó con dos trucos que hoy son estándar:
- Replay buffer: guardar transiciones (s, a, r, s') y muestrear minibatches aleatorios — rompe la correlación temporal y reutiliza experiencia.
- Red objetivo (target network): calcular el TD target con una copia congelada θ⁻ que se sincroniza cada N pasos — evita perseguir un objetivo que se mueve con cada actualización.
La exploración se maneja con ε-greedy: con probabilidad ε, acción aleatoria; el resto, argmax Q.
🧭 Policy gradients y actor-critic
En lugar de valores, parametrizar la política π_θ(a|s) y subir por el gradiente del retorno esperado (REINFORCE, Williams 1992):
∇J(θ) = E[ Σ_t ∇log π_θ(a_t|s_t) · G_t ]
Intuición: aumentar la probabilidad de las acciones que precedieron a retornos altos. El estimador es de alta varianza; restar una baseline (el valor V(s), aprendido por un crítico) la reduce sin sesgar: A(s,a) = G − V(s) es la ventaja y el esquema actor-critic la usa como señal. PPO (Schulman et al., 2017) añade un recorte (clip) del ratio π_nueva/π_vieja para impedir pasos de política destructivos, logrando estabilidad con simplicidad — por eso es el caballo de batalla actual (robótica, juegos, RLHF).
⚖️ Valores vs. política
Q-learning explota mejor los datos (off-policy, replay) pero exige acciones discretas y puede sobreestimar valores (de ahí Double DQN). Policy gradients trabajan con acciones continuas y políticas estocásticas, pero son on-policy (datos frescos por actualización) y de mayor varianza.
🧮 Ejemplo trabajado
Una actualización de Q-learning a mano: α = 0.1, γ = 0.9. Estado s con Q(s, derecha) = 0.5. El agente toma "derecha", recibe r = 1 y llega a s' donde max Q(s', ·) = 0.8:
objetivo = r + γ·max Q(s',·) = 1 + 0.9·0.8 = 1.72
error TD = 1.72 − 0.5 = 1.22
Q(s, derecha) ← 0.5 + 0.1·1.22 = 0.622
Y una de REINFORCE: política softmax sobre 2 acciones con preferencias (θ_izq, θ_der) = (0, 0) → π = (0.5, 0.5). El agente toma "der", obtiene retorno G = +2. Con ∇log π(der) = (−π_izq, 1−π_der) = (−0.5, 0.5) y α = 0.1:
θ ← θ + 0.1·2·(−0.5, 0.5) = (−0.1, +0.1) → π ≈ (0.45, 0.55)
La acción reforzada gana probabilidad; con retorno negativo la habría perdido.
📊 Propiedades y comparación
| Aspecto | Q-learning tabular | DQN | REINFORCE | PPO (actor-critic) |
|---|---|---|---|---|
| Espacio de estados | pequeño y discreto | continuo/imágenes | continuo | continuo |
| Acciones | discretas | discretas | discretas o continuas | discretas o continuas |
| Datos | off-policy | off-policy + replay | on-policy | on-policy (con reuso limitado) |
| Varianza | baja | media | alta | media (ventaja + clip) |
| Riesgo típico | — | sobreestimación, inestabilidad | varianza, colapso | ajuste fino de hiperparámetros |
flowchart LR
A["agente π o Q(s,a;θ)"] -->|"acción a_t (ε-greedy)"| E["entorno"]
E -->|"r_t, s_{t+1}"| B["replay buffer"]
B -->|"minibatch aleatorio"| L["pérdida TD:<br/>(r + γ·max Q(s',·;θ⁻) − Q(s,a;θ))²"]
T["red objetivo θ⁻<br/>(congelada N pasos)"] --> L
L -->|"gradiente"| A
A -.->|"cada N pasos: θ⁻ ← θ"| T
⚠️ Errores conceptuales frecuentes
- "La recompensa define lo que yo quiero; el agente lo entenderá." El agente optimiza literalmente la recompensa: funciones mal especificadas producen trampas (reward hacking) perfectamente racionales.
- "Más entrenamiento = curva de recompensa monótona." El RL profundo es inestable por naturaleza; caídas bruscas tras mejorar son comunes y esperables.
- "El replay buffer es solo un caché de eficiencia." Es una condición de estabilidad: sin romper la correlación temporal, DQN diverge con facilidad.
- "REINFORCE con pocas trayectorias basta si el entorno es simple." El estimador del gradiente tiene varianza enorme; sin baseline ni suficientes muestras, el entrenamiento es ruido.
- "Una política que funciona en el simulador funcionará en el mundo real." La brecha sim-to-real (dinámica, ruido, latencias) degrada políticas aparentemente sólidas; requiere aleatorización de dominio y validación física.
🚀 Del aprendizaje a la operación
Del gridworld al mundo real median: diseño y auditoría de la función de recompensa, simuladores fieles (o datos offline con RL conservador), evaluación con múltiples semillas (la varianza entre corridas es notoria), límites de seguridad duros fuera de la política aprendida, y monitoreo continuo — una política desplegada sigue explorando implícitamente cuando la distribución del entorno cambia.
🧪 Laboratorio
python lab.py
El laboratorio llama a ai_evolution.labs.run_lab("robotics"). Esta
decisión evita 183 implementaciones divergentes: cada clase tiene un entrypoint
propio, pero los motores didácticos se prueban como una biblioteca común.
🔍 Evidencia esperada
- tipo de laboratorio y semilla;
- entradas o decisiones observables;
- resultado estructurado;
- lista
evidencecon hechos que pueden inspeccionarse; - lista
limitationsque impide presentar la demo como producción.
📓 Notebooks
- 📓
notebook.ipynb: recorrido guiado con la materia resumida. - ✍️
notebook_student.ipynb: ejercicios para resolver. - ✅
notebook_solution.ipynb: solución de referencia explicada.
📝 Evaluación
| Criterio | Peso |
|---|---|
| Comprensión conceptual | 25 % |
| Ejecución reproducible | 25 % |
| Interpretación basada en evidencia | 25 % |
| Riesgos, límites y mejora propuesta | 25 % |
Consulta assessment.md para preguntas y criterio de aceptación.
⚠️ Errores comunes
| Síntoma | Causa probable | Corrección |
|---|---|---|
| El código corre, pero no hay conclusión | Se confundió ejecución con aprendizaje | Explica qué demuestra y qué no demuestra |
| El resultado cambia sin explicación | No se registró semilla o configuración | Conserva semilla, versión y parámetros |
| Se promete uso real | Se extrapoló desde una demo educativa | Declara entorno, datos, límites y revisión humana |
| Se copia una métrica aislada | No existe baseline ni costo de error | Añade comparación y criterio de decisión |
❓ Preguntas frecuentes
¿Debo usar una API comercial?
No. El núcleo funciona localmente. Las extensiones LIVE se documentan por separado.
¿El laboratorio representa una implementación industrial?
No por sí solo. Enseña el contrato y el patrón; producción exige integración,
seguridad, observabilidad, pruebas y operación.
¿Dónde profundizo?
Revisa las especializaciones enlazadas en el README raíz y la ruta siguiente.
🔗 Referencias
- Sutton, R. y Barto, A. (2018). Reinforcement Learning: An Introduction (2.ª ed., PDF oficial gratuito). incompleteideas.net/book/the-book-2nd.html — uso: desarrollo extendido del tema
- Mnih, V. et al. (2015). Human-level control through deep reinforcement learning (DQN). Nature 518. doi:10.1038/nature14236 — uso: fuente primaria del mecanismo estudiado
- Mnih, V. et al. (2013). Playing Atari with Deep Reinforcement Learning. arXiv:1312.5602 — uso: fuente primaria del mecanismo estudiado
- Schulman, J. et al. (2017). Proximal Policy Optimization Algorithms. arXiv:1707.06347 — uso: fuente primaria del mecanismo estudiado
- Williams, R. (1992). Simple statistical gradient-following algorithms for connectionist reinforcement learning (REINFORCE). doi:10.1007/BF00992696 — uso: fuente primaria del mecanismo estudiado
- Documentación de Gymnasium (entornos estándar de RL). gymnasium.farama.org — uso: referencia consultada en su fuente original
📜 Papers que fundamentan esta clase
Bloque generado por
python scripts/link_papers_to_classes.py. La fuente espapers/catalog/papers.json.
| Paper | Año | Qué desbloqueó | Miniatura |
|---|---|---|---|
| P26 · Control a nivel humano mediante aprendizaje por refuerzo profundo | 2015 | El primer agente que aprende a actuar directamente desde píxeles, con la misma arquitectura y los mismos hiperparámetros en decenas de juegos. | notebook |
| P27 · Dominar el go con redes neuronales profundas y búsqueda en árbol | 2016 | Une las dos tradiciones de la IA: la búsqueda simbólica de la parte 01 y el aprendizaje profundo de la parte 04, en un solo sistema. | notebook |
Cada ficha explica el problema anterior, la matemática mínima, los límites y los errores de atribución más frecuentes. Para leerlas con método: cómo leer un paper de IA · anexos matemáticos.
📚 Bibliografía de apoyo
Bloque generado por
python scripts/link_sources_to_classes.py. Cada obra lleva su localizador verificado ensources/bibliography.json.
Los papers dicen de dónde salió el mecanismo. Estas obras lo desarrollan con el espacio que una clase no tiene: teoría completa, demostraciones y ejercicios.
| Obra | Edición | Localizador | Papel en esta clase |
|---|---|---|---|
| Sutton, Richard S. y Barto, Andrew G. — Reinforcement Learning: An Introduction | 2.ª · 2018 | ISBN 9780262039246 · web de la obra | citada en las referencias de esta clase |
| Goodfellow, Ian, Bengio, Yoshua y Courville, Aaron — Deep Learning | 2016 | ISBN 9780262035613 · web de la obra | obra de referencia de la parte 04 · toda la parte |
| Murphy, Kevin P. — Probabilistic Machine Learning | 2022 | ISBN 9780262046824 · web de la obra | obra de referencia de la parte 04 · modelos profundos desde la probabilidad |
⬅️ Clase anterior
➡️ Siguiente clase
058 — Autoencoders, GAN y difusión
📝 Evaluación completa
❓ Preguntas
- Define aprendizaje por refuerzo profundo sin usar una marca o framework como definición.
- Explica la relación entre DQN, policy gradient, PPO, recompensa.
- Ejecuta
lab.pydos veces con la misma semilla. ¿Qué debe conservarse? - Identifica una afirmación permitida y una afirmación exagerada sobre el resultado.
- Propón una prueba negativa o un caso límite.
🏆 Reto verificable
Amplía el resultado del laboratorio con una clave student_extension que incluya:
- el supuesto que estás probando;
- una medición o comprobación;
- la conclusión;
- una limitación.
✅ Criterio de aceptación
- [ ]
lab.pytermina con código 0. - [ ] El resultado contiene
kind,seed,evidenceylimitations. - [ ] La extensión no modifica el comportamiento de otras clases.
- [ ] La interpretación referencia datos impresos por el laboratorio.
- [ ] Se declara al menos un riesgo o condición de no uso.