IniziaInizia gratis

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

Visualizza il corso

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)
Modifica ed esegui il codice