Entraîner le DQN minimaliste
Il est temps d'entraîner un algorithme DQN minimaliste dans l'environnement Lunar Lander. Gardez en tête qu'il s'agit encore d'un algorithme de base, donc les performances ne seront pas excellentes, mais vous l'améliorerez par la suite.
Voyez cela comme la première étape pour amener votre Lunar Lander à se poser sur la Lune !
L'instance q_network que vous avez définie plus tôt est à votre disposition.
Dans tous les exercices de ce cours, votre environnement Python inclut aussi une fonction describe_episode() qui affiche, à la fin de chaque épisode, des informations sur la performance de l'agent.
Cette activité fait partie du cours
Deep Reinforcement Learning en Python
Instructions de l’exercice
- Sélectionnez l'action de l'agent dans la boucle interne.
- Calculez la perte (loss).
- Effectuez une étape de descente de gradient pour mettre à jour les poids du réseau.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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)