CommencezCommencez gratuitement

DQN avec mémoire de relecture (Experience Replay)

Vous allez maintenant intégrer la mémoire de relecture (Experience Replay) pour entraîner un agent à l'aide d'un Deep Q Network. Vous utiliserez le même environnement Lunar Lander que pour votre DQN minimal.

À chaque étape, plutôt que d'utiliser uniquement l'apprentissage issu de la transition la plus récente pour mettre à jour le réseau, la mémoire de relecture permet à l'agent d'apprendre à partir d'un lot aléatoire d'expériences récentes. Cela améliore considérablement sa capacité à apprendre sur l'environnement.

Les classes QNetwork et ReplayBuffer des exercices précédents sont à votre disposition et ont été instanciées comme suit :

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

La fonction describe_episode() est aussi à nouveau disponible pour présenter les mesures à la fin de chaque épisode.

Cette activité fait partie du cours

Deep Reinforcement Learning en Python

Voir le cours

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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)
Modifier et exécuter le code