CommencerCommencer 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

Apprentissage par renforcement profond en Python

Afficher le cours

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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