Addestrare l'algoritmo PPO
Ora userai il familiare ciclo di training A2C per addestrare l'algoritmo PPO.
Questo ciclo di training non sfrutta appieno la funzione obiettivo surrogate con clipping e, di conseguenza, questo algoritmo non dovrebbe andare molto meglio di A2C; serve a illustrare i concetti appresi riguardo al clipped surrogate objective e all'entropy bonus.
Questo esercizio fa parte del corso
Deep Reinforcement Learning in Python
Istruzioni dell'esercizio
- Rimuovi l'entropy bonus dalla perdita dell'attore, usando il valore 0,01 per il parametro \(c_{entropy}\).
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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)