Kom igångKom igång gratis

Träna PPO-algoritmen

Nu ska du använda den välbekanta A2C-träningsloopen för att träna PPO-algoritmen.

Den här träningsloopen utnyttjar inte den klippta surrogatmålfunktionen fullt ut, vilket innebär att algoritmen inte bör prestera märkbart bättre än A2C. Den fungerar som en illustration av de koncept du lärt dig om den klippta surrogatmålfunktionen och entropibonusen.

Den här övningen är en del av kursen

Djup förstärkningsinlärning i Python

Visa kurs

Övningsinstruktioner

  • Ta bort entropibonusen från aktörförlusten och använd värdet 0,01 för parametern \(c_{entropy}\).

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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)
Redigera och kör kod