Antrenarea algoritmului PPO
Vei folosi acum bucla de antrenament A2C cu care ești deja familiarizat pentru a antrena algoritmul PPO.
Această buclă de antrenament nu exploatează din plin funcția obiectiv surrogate cu tăiere (clipped surrogate objective), astfel că algoritmul nu ar trebui să performeze cu mult mai bine decât A2C. Scopul ei este să ilustreze conceptele învățate despre funcția obiectiv surrogate cu tăiere și bonusul de entropie.
Acest exercițiu face parte din cursul
Deep Reinforcement Learning în Python
Instrucțiuni pentru exercițiu
- Elimină bonusul de entropie din loss-ul actorului, folosind valoarea 0,01 pentru parametrul \(c_{entropy}\).
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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)