CommencerCommencer 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

Apprentissage par renforcement profond en Python

Afficher le cours

Instructions

  • 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 cet exemple de code.

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