CommencezCommencez gratuitement

Entraîner l'algorithme PPO

Vous allez maintenant utiliser la boucle d'entraînement A2C que vous connaissez pour entraîner l'algorithme PPO.

Cette boucle d'entraînement ne tire pas pleinement parti de la fonction objectif approchée tronquée. Par conséquent, cet algorithme ne devrait pas offrir des performances bien supérieures à A2C; il sert plutôt à illustrer les concepts vus sur l'objectif approché tronqué et la prime d'entropie.

Cette activité fait partie du cours

Deep Reinforcement Learning en Python

Voir le cours

Instructions de l’exercice

  • Retirez la prime d'entropie de la perte de l'acteur en utilisant la valeur 0,01 pour le paramètre \(c_{entropy}\).

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

for episode in range(10):
    state, info = env.reset()
    done = False
    episode_reward = 0
    step = 0
    while not done:    
        step += 1
        action, action_log_prob, entropy = select_action(actor, state)
        next_state, reward, terminated, truncated, _ = env.step(action)
        episode_reward += reward
        done = terminated or truncated
        actor_loss, critic_loss = calculate_losses(critic, action_log_prob, action_log_prob,
                                                   reward, state, next_state, done)
        # Remove the entropy bonus from the actor loss
        actor_loss -= ____ * ____
        actor_optimizer.zero_grad(); actor_loss.backward(); actor_optimizer.step()
        critic_optimizer.zero_grad(); critic_loss.backward(); critic_optimizer.step()
        state = next_state
    describe_episode(episode, reward, episode_reward, step)
Modifier et exécuter le code