Aprendizaje por refuerzo explicado simplemente (con diagramas y código real)

Reinforcement Learning: lo esencial en un artículo — código real, diagramas y pasos concretos, extractos de un curso de 45 lecciones.

Aprendizaje por refuerzo explicado simplemente (con diagramas y código real)

Una guía que va al grano: Reinforcement Learning desglosado con diagramas, ejemplos concretos y comandos probados. Todo proviene de un curso estructurado de 16 capítulos — aquí tienes lo mejor.

tl;dr
  • Introducción e Instalación
  • Fundamentos del Reinforcement Learning
  • Proceso de Decisión de Markov
  • Q-Learning Clásico
  • Programación dinámica
~$ cat ./parcours.md # Reinforcement Learning — 15 capítulos
01
Introducción e Instalación
→ Presentación del curso y por qué el RL ?→ Instalar Python, Gymnasium y PyTorch+ 1 más lecciones
02
Fundamentos del Reinforcement Learning
→ RL vs supervisado vs no supervisado→ Agente, entorno, estado, acción, recompensa+ 2 más lecciones
03
Proceso de Decisión Markoviano
→ Proceso de Decisión Markoviano (MDP) explicado→ Ecuación de Bellman intuitiva+ 2 más lecciones
04
Q-Learning Clásico
→ Q-Learning : intuición y fórmula→ Implementar una Q-table en Python+ 2 más lecciones
05
Programación dinámica
06
SARSA y Variantes
→ SARSA : la prima on-policy de Q-Learning→ Q-Learning vs SARSA : cuándo usar qué+ 2 más lecciones
07
Deep Q-Networks
→ ¿Por qué una red neuronal?→ Arquitectura DQN con PyTorch+ 2 más lecciones
08
Métodos de Monte Carlo
→ Predicción de Monte Carlo→ Control de Monte Carlo+ 1 más lecciones
🏁
Proyecto final (+ 7 capítulos en camino)
→ Te vas con un proyecto concreto y demostrable

Primer entorno Gymnasium (FrozenLake)

NOTEObjetivo — Manipular concretamente tu primer entorno Gymnasium. Comprender la interfaz universal reset / step, el concepto de episodio, y hacer jugar a un agente aleatorio en el juego FrozenLake.

Objetivos pedagógicos

TIPAl finalizar este módulo
  • Crear un entorno con gym.make
  • Comprender los métodos reset y step
  • Identificar el espacio de observación y el espacio de acción
  • Escribir un bucle de episodio completo
  • Lanzar un agente aleatorio y observar su puntuación

FrozenLake : el terreno de juego

FrozenLake es una cuadrícula de 4x4 casillas que representa un lago helado. El agente parte de la casilla de inicio (S), debe alcanzar el regalo (G) caminando sobre el hielo sólido (F), evitando los agujeros (H) donde cae y pierde la partida. Simple, visual, perfecto para empezar.

NOTENota : por defecto, FrozenLake es « resbaladizo » (is_slippery=True). El agente que quiere ir a la derecha puede resbalar y terminar en otro lugar. Esto añade azar y hace el problema más interesante. Se puede desactivar para empezar.

La interfaz universal : reset y step

Todos los entornos Gymnasium comparten la misma interfaz, lo que hace que escribir agentes sea muy práctico. Dos métodos bastan.

reset()

Reinicia el entorno a su estado inicial y devuelve el primer estado. Se llama al inicio de cada episodio (una partida completa).

step(action)

Ejecuta una acción y devuelve cinco valores : el nuevo estado, la recompensa, si el episodio ha terminado, si está truncado, y la información adicional.

WARNINGAtención : piensa siempre en llamar a env.close() al final, especialmente con el renderizado gráfico. De lo contrario, pueden quedar ventanas fantasma abiertas que consumen memoria.

Visualizar el juego

Para ver al agente jugar en pantalla, añade el modo de renderizado :

Resolver FrozenLake con Value Iteration

NOTEObjetivo — Poner en práctica Value Iteration sobre FrozenLake de principio a fin : calcular V*, extraer la política óptima, hacer jugar al agente y medir su tasa de victoria. Tu primer agente que realmente gana.

Objetivos pedagógicos

TIPAl finalizar este módulo
  • Escribir Value Iteration completo para FrozenLake
  • Extraer la política óptima a partir de V*
  • Evaluar al agente en numerosos episodios
  • Interpretar los valores y la política obtenidos
  • Comprender el efecto del hielo resbaladizo

Paso 1 : acceder al modelo de FrozenLake

FrozenLake proporciona su modelo completo mediante env.unwrapped.P. Es un diccionario que da, para cada estado y cada acción, la lista de transiciones posibles.

Arquitectura DQN con PyTorch

NOTEObjetivo — Construir la red neuronal del DQN con PyTorch. Comprender la arquitectura (entrada, capas ocultas, salida), el papel de las funciones de activación, y cómo la red predice los valores Q.

Objetivos pedagógicos

TIPAl finalizar este módulo
  • Definir una red con nn.Module
  • Elegir el tamaño de entrada y salida según el entorno
  • Comprender el papel de las capas ocultas y de ReLU
  • Hacer una predicción (forward pass)
  • Comprender que la salida proporciona un Q por acción

La anatomía de un DQN

Un DQN para CartPole es una red muy sencilla : toma los 4 números del estado, los pasa por dos capas ocultas, y produce 2 valores Q (uno por acción : izquierda, derecha).

va-plus-loin

Este artículo cubre los extractos más útiles — el curso completo Reinforcement Learning (16 capítulos, 45 lecciones, ejercicios corregidos y proyecto final) te lleva hasta el final.

./acceder-al-curso-completo curso gratuito : Dominar Claude Code

FAQ

¿Cuánto tiempo se necesita para aprender Reinforcement Learning?
Con una progresión estructurada (16 capítulos, 45 lecciones cortas y prácticas), se alcanza un nivel operativo en unas semanas dedicando de 30 a 60 minutos al día. Lo importante es practicar cada concepto de inmediato.
¿Se necesitan requisitos previos?
Es mejor estar cómodo con los fundamentos del área : este contenido profundiza, con casos reales.
¿Por dónde empezar de forma concreta?
Reproduce los comandos de este artículo, luego sigue el curso completo Reinforcement Learning : encadena las 45 lecciones en orden, con ejercicios y proyecto final.

📬 ¿Quieres recibir este tipo de guía cada semana? Suscríbete gratis — código real, cero palabrería.