PPO algoritmasını eğitme
Şimdi tanıdık A2C eğitim döngüsünü kullanarak PPO algoritmasını eğiteceksin.
Bu eğitim döngüsü, kırpılmış vekil amaç fonksiyonunun tüm avantajlarını kullanmaz; bu nedenle bu algoritmanın A2C'den çok daha iyi performans göstermesi beklenmez. Buradaki amaç, kırpılmış vekil amaç ve entropi bonusu etrafında öğrendiğin kavramları örneklemektir.
Bu egzersiz, kursun bir parçasıdır
Python ile Deep Reinforcement Learning
Egzersiz talimatları
- Aktör kaybından entropi bonusunu kaldır; \(c_{entropy}\) parametresi için 0.01 değerini kullan.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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)