Kom igångKom igång gratis

Tillämpa dubbel Q-inlärning

I den här övningen ska du tillämpa algoritmen för dubbel Q-inlärning i samma anpassade miljö som du löste med Expected SARSA, för att undersöka skillnaden. Dubbel Q-inlärning använder två Q-tabeller och minskar därigenom den överskattningsbias som finns i den traditionella Q-inlärningsalgoritmen – det ger också mer stabilitet i inlärningen jämfört med andra metoder för temporal-difference-inlärning. Du använder den här metoden för att navigera genom rutnätsmiljön med målet att uppnå högsta möjliga belöning, undvika berg och nå målet så snabbt som möjligt.

new_cust_env.png

Den här övningen är en del av kursen

Reinforcement Learning med Gymnasium i Python

Visa kurs

Övningsinstruktioner

  • Uppdatera Q-tabellerna med funktionen update_q_tables() som du kodade i föregående övning.
  • Kombinera Q-tabellerna genom att summera dem.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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)
Redigera och kör kod