LoslegenKostenlos starten

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

<Kurs>Reinforcement Learning mit Gymnasium in Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • 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 praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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