LoslegenKostenlos loslegen

DQN mit Erlebniswiedergabe

Du wirst nun Experience Replay einführen, um einen Agenten mit einem Deep Q Network zu trainieren. Du verwendest die gleiche Lunar Lander-Umgebung wie beim Bau deines Barebones DQN.

Anstatt bei jedem Schritt nur die Erkenntnisse aus dem letzten Übergang zu verwenden, um das Netzwerk zu aktualisieren, ermöglicht der Erfahrungswiederholungspuffer dem Agenten, aus einem zufälligen Stapel der letzten Erfahrungen zu lernen. Das verbessert seine Fähigkeit, etwas über die Umwelt zu lernen, erheblich.

Die Klassen QNetwork und ReplayBuffer aus den vorherigen Übungen stehen dir zur Verfügung und wurden wie folgt instanziiert:

  • q_network = QNetwork(8, 4)
  • replay_buffer = ReplayBuffer(10000)

Die Funktion describe_episode() ist auch wieder verfügbar, um am Ende jeder Episode Metriken zu beschreiben.

Diese Übung ist Teil des Kurses

Deep Reinforcement Learning in Python

Kurs anzeigen

Interaktive Übung

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

for episode in range(10):
    state, info = env.reset()
    done = False
    step = 0
    episode_reward = 0
    while not done:
        step += 1
        q_values = q_network(state)        
        action = torch.argmax(q_values).item()
        next_state, reward, terminated, truncated, _ = env.step(action)
        done = terminated or truncated
        # Store the latest experience in the replay buffer
        replay_buffer.____        
        state = next_state
        episode_reward += reward    
    describe_episode(episode, reward, episode_reward, step)
Code bearbeiten und ausführen