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
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)