CommencerCommencez gratuitement

Formation de l'algorithme PPO

Vous allez maintenant utiliser la boucle d'apprentissage A2C, que vous connaissez déjà, pour entraîner l'algorithme PPO.

Cette boucle d'apprentissage n'exploite pas pleinement la fonction objective de substitution tronquée. Par conséquent, cet algorithme ne devrait pas être beaucoup plus performant que l'algorithme A2C. Il sert à illustrer les concepts appris concernant la fonction objective de substitution tronquée et le bonus d'entropie.

Cet exercice fait partie du cours

<cours>Apprentissage par renforcement profond en Python</cours>
Voir le cours

Instructions de l’exercice

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

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