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
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)