IniziaInizia gratis

Applicare il Double Q-learning

In questo esercizio metterai in pratica l'algoritmo di Double Q-learning nello stesso ambiente personalizzato che hai risolto con Expected SARSA, per confrontarne le differenze. Il Double Q-learning, utilizzando due Q-table, aiuta a ridurre il bias di sovrastima insito nel Q-learning tradizionale e offre maggiore stabilità nell'apprendimento rispetto ad altri metodi di differenza temporale. Userai questo approccio per muoverti nell'ambiente a griglia, puntando al reward più alto ed evitando le montagne per raggiungere l'obiettivo il più rapidamente possibile.

new_cust_env.png

Questo esercizio fa parte del corso

Reinforcement Learning con Gymnasium in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Aggiorna le Q-table usando la funzione update_q_tables() che hai scritto nell'esercizio precedente.
  • Combina le Q-table sommando i loro valori.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

Q = [np.zeros((num_states, num_actions))] * 2
for episode in range(num_episodes):
    state, info = env.reset()
    terminated = False   
    while not terminated:
        action = np.random.choice(num_actions)
        next_state, reward, terminated, truncated, info = env.step(action)
        # Update the Q-tables
        ____
        state = next_state
# Combine the learned Q-tables        
Q = ____
policy = {state: np.argmax(Q[state]) for state in range(num_states)}
render_policy(policy)
Modifica ed esegui il codice