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
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)