DQN met experience replay
Je gaat nu Experience Replay introduceren om een agent te trainen met een Deep Q Network. Je gebruikt dezelfde Lunar Lander-omgeving als bij het bouwen van je Barebone DQN.
In plaats van bij elke stap alleen de leerervaring van de meest recente transitie te gebruiken om het netwerk te updaten, laat de Experience Replay-buffer de agent leren van een willekeurige batch recente ervaringen. Dit verbetert de mogelijkheid om over de omgeving te leren aanzienlijk.
De QNetwork- en ReplayBuffer-klassen uit eerdere oefeningen zijn beschikbaar en als volgt geïnstantieerd:
q_network = QNetwork(8, 4)replay_buffer = ReplayBuffer(10000)
De functie describe_episode() is ook weer beschikbaar om aan het einde van elke episode de statistieken te beschrijven.
Deze oefening maakt deel uit van de cursus
Deep Reinforcement Learning in Python
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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)