ComenzarEmpieza gratis

DQN con repetición de experiencia

Ahora introducirás la Reproducción de Experiencias para entrenar a un agente utilizando una Red Q Profunda. Utilizarás el mismo entorno Lunar Lander que utilizaste para construir tu Barebone DQN.

En cada paso, en lugar de utilizar sólo los aprendizajes de la transición más reciente para actualizar la red, el búfer de repetición de experiencias permite al agente aprender de un lote aleatorio de experiencias recientes. Esto mejora considerablemente su capacidad de aprender sobre el entorno.

Las clases QNetwork y ReplayBuffer de ejercicios anteriores están a tu disposición y se han instanciado como sigue:

  • q_network = QNetwork(8, 4)
  • replay_buffer = ReplayBuffer(10000)

La función describe_episode() también vuelve a estar disponible para describir métricas al final de cada episodio.

Este ejercicio forma parte del curso

Aprendizaje profundo por refuerzo en Python

Ver curso

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

for episode in range(10):
    state, info = env.reset()
    done = False
    step = 0
    episode_reward = 0
    while not done:
        step += 1
        q_values = q_network(state)        
        action = torch.argmax(q_values).item()
        next_state, reward, terminated, truncated, _ = env.step(action)
        done = terminated or truncated
        # Store the latest experience in the replay buffer
        replay_buffer.____        
        state = next_state
        episode_reward += reward    
    describe_episode(episode, reward, episode_reward, step)
Editar y ejecutar código