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