Aan de slagGa gratis aan de slag

Double Q-learning toepassen

In deze oefening ga je het Double Q-learning-algoritme toepassen in dezelfde aangepaste omgeving die je eerder met Expected SARSA hebt opgelost, zodat je het verschil kunt onderzoeken. Double Q-learning gebruikt twee Q-tabellen om de overschatting-bias van het traditionele Q-learning te verminderen en biedt meer stabiliteit tijdens het leren dan andere temporal-difference-methoden. Je gebruikt deze aanpak om door de roosteromgeving te navigeren, met als doel de hoogste beloning te behalen terwijl je bergen ontwijkt om zo snel mogelijk het doel te bereiken.

new_cust_env.png

Deze oefening maakt deel uit van de cursus

Reinforcement Learning met Gymnasium in Python

Cursus bekijken

Oefeninstructies

  • Werk de Q-tabellen bij met de functie update_q_tables() die je in de vorige oefening hebt geschreven.
  • Combineer de Q-tabellen door ze op te tellen.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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)
Code bewerken en uitvoeren