CommencerCommencez gratuitement

DQN avec expérience de relecture

Vous allez maintenant présenter Experience Replay afin de former un agent à l'aide d'un réseau Deep Q. Vous utiliserez le même environnement Lunar Lander que celui utilisé pour construire votre Barebone DQN.

À chaque étape, au lieu d'utiliser uniquement les enseignements tirés de la transition la plus récente pour mettre à jour le réseau, le tampon Experience Replay 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 son 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 également disponible pour décrire les métriques à la fin de chaque épisode.

Cet exercice fait partie du cours

<cours>Apprentissage par renforcement profond en Python</cours>
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