🎮 Aprendizaje por Refuerzo
🎮 Aprendizaje por Refuerzo

DQN desde cero en CartPole

Q-learning tabular es inviable cuando el espacio de estados es continuo o de alta dimensión.

Problema

Q-learning tabular es inviable cuando el espacio de estados es continuo o de alta dimensión. CartPole tiene un espacio de estados 4-dimensional continuo con infinitos estados posibles — una Q-tabla no puede almacenarlos todos.

Solución

DQN (Deep Q-Network) implementado desde cero con TensorFlow/Keras: una red neuronal aproxima la función Q(s,a) en lugar de una tabla. Experience replay almacena transiciones pasadas para romper la correlación temporal, y una target network separada estabiliza el entrenamiento.

Arquitectura DQN (TensorFlow/Keras)

  • q_network(): MLP con capa oculta de 128 unidades y ReLU — salida: Q-value por acción
  • memory_replay: buffer de experiencia con deque — almacena (s, a, r, s', done) y muestrea en batch
  • Target network (q_network_target): copia de la red de política actualizada periódicamente para estabilizar el entrenamiento
  • Política ε-greedy con decaimiento: exploración inicial → explotación progresiva conforme aprende

Entrenamiento y resultados

  • Gymnasium CartPole-v0: balancear un palo sobre un carro — recompensa +1 por cada paso sin caer
  • Target de Bellman: r + γ·max_a'Q_target(s',a') — calculado con la target network, no la red activa
  • Curva de aprendizaje: recompensa media por episodio — convergencia por encima de 150
  • Entrenamiento estable gracias a la combinación de experience replay + target network separada

Más proyectos en Aprendizaje por Refuerzo