CommencerCommencer gratuitement

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

Afficher le cours

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