MulaiMulai sekarang secara gratis

Melatih algoritma PPO

Sekarang Anda akan menggunakan loop pelatihan A2C yang sudah familiar untuk melatih algoritma PPO.

Loop pelatihan ini tidak sepenuhnya memanfaatkan fungsi objektif surrogate yang dipotong (clipped surrogate objective). Akibatnya, algoritma ini seharusnya tidak berkinerja jauh lebih baik daripada A2C; tujuannya adalah untuk mengilustrasikan konsep yang telah dipelajari tentang clipped surrogate objective dan entropy bonus.

Latihan ini adalah bagian dari kursus

Deep Reinforcement Learning dengan Python

Lihat Kursus

Petunjuk latihan

  • Hapus entropy bonus dari loss aktor, gunakan nilai 0,01 untuk parameter \(c_{entropy}\).

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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)
Edit dan Jalankan Kode