ÎncepețiÎncepe gratuit

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

Vezi cursul

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)
Editează și rulează codul