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