CommencezCommencez gratuitement

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

Voir le cours

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)
Modifier et exécuter le code