Ausbildung des Barebone DQN

Es ist an der Zeit, einen Barebone DQN Algorithmus in der Lunar Lander Umgebung zu trainieren. Vergiss nicht, dass dies noch ein einfacher Algorithmus ist, also wird die Leistung nicht großartig sein, aber du wirst sie später verbessern.

Sieh es als den ersten Schritt, um deinen Lunar Lander auf dem Mond landen zu lassen!

Die q_network Instanz, die du zuvor definiert hast, steht dir zur Verfügung.

Für die Übungen in diesem Kurs enthält deine Python-Umgebung auch eine describe_episode() Funktion, die am Ende jeder Episode einige Informationen darüber ausgibt, wie sich der Agent geschlagen hat.

Diese Übung ist Teil des Kurses

Deep Reinforcement Learning in Python

Kurs anzeigen

Anleitung zur Übung

  • Wähle die Aktion des Agenten in der inneren Schleife.
  • Berechne den Verlust.
  • Führe einen Schritt des Gradientenabstiegs durch, um die Netzgewichte zu aktualisieren.

Interaktive Übung zum Anfassen

Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.

for episode in range(10):
    state, info = env.reset()
    done = False
    step = 0
    episode_reward = 0
    while not done:
        step += 1     
        # Select the action
        action = ____(____, ____)
        next_state, reward, terminated, truncated, _ = (env.step(action))
        done = terminated or truncated
        # Calculate the loss
        loss = ____(q_network, state, action, next_state, reward, done)
        optimizer.zero_grad()
        # Perform a gradient descent step
        loss.____
        optimizer.____
        state = next_state
        episode_reward += reward
    describe_episode(episode, reward, episode_reward, step)