LoslegenKostenlos loslegen

Double Q-learning anwenden

In dieser Übung wendest du den Double-Q-learning-Algorithmus in derselben benutzerdefinierten Umgebung an, die du mit Expected SARSA gelöst hast, um den Unterschied zu untersuchen. Double Q-learning reduziert mithilfe von zwei Q-Tabellen die im traditionellen Q-learning-Algorithmus angelegte Überschätzungsneigung und sorgt für mehr Stabilität beim Lernen als andere Verfahren der zeitlichen Differenz. Du nutzt diese Methode, um dich durch die Gitterumgebung zu bewegen, das höchste Reward zu erzielen und dabei Berge zu vermeiden, um das Ziel so schnell wie möglich zu erreichen.

new_cust_env.png

Diese Übung ist Teil des Kurses

Reinforcement Learning mit Gymnasium in Python

Kurs anzeigen

Anleitung zur Übung

  • Aktualisiere die Q-Tabellen mit der Funktion update_q_tables(), die du in der vorherigen Übung implementiert hast.
  • Fasse die Q-Tabellen zusammen, indem du sie addierst.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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 bearbeiten und ausführen