19 · Proyecto final: entrena un agente de principio a fin
Junta todo el track: define un gridworld con un obstáculo, entrena un agente de Q-learning tabular desde cero, luego evalúa la tasa de éxito de la política codiciosa e imprímela como flechas.
Un proyecto de RL completo son tres pasos que ahora dominas de principio a fin: (1) definir un entorno como una función step(), (2) entrenar un agente por interacción (aquí, Q-learning tabular) y (3) evaluar la política codiciosa aprendida en episodios reservados — midiendo el éxito, no solo la recompensa de entrenamiento.
Sin esto:
Sin ensamblar las piezas tú mismo, los algoritmos quedan abstractos; el proyecto final demuestra que puedes llevar un problema desde la definición del entorno hasta un agente funcional y evaluado.
Este es el proyecto final. Sin teoría nueva — solo el acto satisfactorio de ensamblar todo lo del track en un agente funcional. Los tres pasos de cualquier proyecto de RL:
- Define el entorno. Un pequeño gridworld con un muro: el agente empieza arriba a la izquierda, la meta está abajo a la derecha y una celda es un obstáculo que no puede pisar. La recompensa es
+1en la meta y un pequeño costo de paso-0.04en el resto (para que el agente aprenda a llegar rápido). El entorno es, como siempre, una funciónstep(state, action). - Entrena. Ejecuta Q-learning tabular (Capítulo 5): actúa ε-codiciosamente, y tras cada transición actualiza
Q(s,a) ← Q(s,a) + α[r + γ·max_a' Q(s',a') − Q(s,a)]. Decaemos ε durante el entrenamiento para que el agente explore temprano y explote tarde. Todo está sembrado para que la corrida sea reproducible. - Evalúa. Apaga la exploración (actúa puramente codicioso, ε=0) y corre varios episodios de prueba para medir la tasa de éxito — la fracción que llega a la meta. Luego imprime la política aprendida como flechas, una por celda, para que veas literalmente el plan del agente fluir alrededor del obstáculo hacia la meta.
Ejecútalo. La tasa de éxito debería llegar al 100% y las flechas deberían formar un camino limpio desde el inicio hasta la meta, rodeando el muro.
Python (in browser)
RL de principio a fin: un gridworld con obstáculo, Q-learning tabular entrenado desde cero (sembrado), luego la política codiciosa evaluada por tasa de éxito e impresa como flechas que rodean el muro hacia la meta.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Esa única celda es un proyecto completo de aprendizaje por refuerzo — y usa cada idea del track: el bucle agente-entorno y la recompensa (Cap1), el MDP del gridworld (Cap1), el retorno descontado vía γ (Cap1), exploración vs explotación con ε-greedy (Cap2), bootstrapping con el objetivo de Bellman (Cap3-4) y control con Q-learning tabular (Cap5). Cambia la tabla por una red neuronal y añade repetición + red objetivo y tienes DQN (Cap7); parametriza la política directamente y tienes gradientes de política / PPO (Cap6, Cap7).
A dónde ir después en RL. Tres pasos concretos: (1) reimplementa estos algoritmos contra gymnasium (el gym mantenido) en CartPole y LunarLander en un entorno Python local — el mismo código, entornos reales; (2) lee las implementaciones de Stable-Baselines3 de PPO/SAC/DQN para ver versiones de grado producción de lo que construiste; (3) para la conexión con LLMs, sigue RLHF / DPO y la lección de ajuste por instrucciones del track de deep learning. La base conceptual que ahora tienes — MDPs, retornos, funciones de valor, la ecuación de Bellman, exploración y la dualidad política/valor — se transfiere sin cambios a cada uno de ellos.
¿Por qué se evalúa al agente con una política puramente codiciosa (ε = 0) en episodios de prueba separados, en vez de reportar la recompensa ganada durante el entrenamiento?
- Un proyecto de RL completo son tres pasos: definir el entorno (función step), entrenar por interacción (Q-learning) y evaluar la política codiciosa.
- Decae ε durante el entrenamiento (explorar temprano, explotar tarde) y evalúa siempre con ε=0 en episodios separados para una tasa de éxito honesta.
- La misma base — MDPs, retornos, Bellman, exploración, política/valor — escala sin cambios desde este gridworld hasta DQN, PPO y RLHF.
Este bucle definir-entrenar-evaluar es cada proyecto de RL en la industria; gymnasium + Stable-Baselines3 son las herramientas estándar siguientes, y el mismo flujo impulsa la robótica y la alineación de LLMs.
Si lo quitas: Sin el ensamblaje práctico los algoritmos quedan como recetas aisladas; el proyecto final es lo que convierte el track en una habilidad transferible.