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 merupakan bagian dari kursus
Deep Reinforcement Learning dengan Python
Instruksi latihan
- Hapus entropy bonus dari loss aktor, gunakan nilai 0,01 untuk parameter \(c_{entropy}\).
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
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)