IniziaInizia gratis

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

Visualizza il corso

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)
Modifica ed esegui il codice