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
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)