DQN con experience replay
Ora introdurrai l’Experience Replay per addestrare un agente usando una Deep Q Network. Userai lo stesso ambiente Lunar Lander che hai usato per costruire il Barebone DQN.
A ogni passo, invece di usare solo l’informazione dell’ultima transizione per aggiornare la rete, il buffer di Experience Replay permette all’agente di apprendere da un batch casuale di esperienze recenti. Questo migliora notevolmente la sua capacità di imparare sull’ambiente.
Le classi QNetwork e ReplayBuffer degli esercizi precedenti sono a tua disposizione e sono state istanziate così:
q_network = QNetwork(8, 4)replay_buffer = ReplayBuffer(10000)
La funzione describe_episode() è di nuovo disponibile per descrivere le metriche alla fine di ogni episodio.
Questo esercizio fa parte del corso
Deep Reinforcement Learning in Python
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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)