Formation du DQN minimal
Il est temps de former un algorithme Barebone DQN dans l'environnement Lunar Lander. Gardez à l'esprit qu'il s'agit encore d'un algorithme basique, donc les performances ne seront pas excellentes, mais vous pourrez l'améliorer plus tard.
Considérez cela comme la première étape pour faire atterrir votre Lunar Lander sur la Lune !
L'instance q_network que vous avez définie précédemment est à votre disposition.
Tout au long des exercices de ce cours, votre environnement Python est également fourni avec une fonction d'describe_episode() qui permet d'imprimer à la fin de chaque épisode des informations sur les performances de l'agent.
Cet exercice fait partie du cours
Apprentissage par renforcement profond en Python
Instructions
- Sélectionnez l'action de l'agent dans la boucle interne.
- Veuillez calculer la perte.
- Effectuez une étape de descente de gradient pour mettre à jour les poids du réseau.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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)