PPO एल्गोरिदम को ट्रेन करना
अब आप परिचित A2C ट्रेनिंग लूप का उपयोग करके PPO एल्गोरिदम को ट्रेन करेंगे.
यह ट्रेनिंग लूप क्लिप्ड सरोगेट ऑब्जेक्टिव फंक्शन का पूरा लाभ नहीं उठाता, और नतीजतन यह एल्गोरिदम A2C से बहुत बेहतर प्रदर्शन नहीं करेगा; इसका उद्देश्य क्लिप्ड सरोगेट ऑब्जेक्टिव और entropy बोनस के इर्द-गिर्द सीखे गए कॉन्सेप्ट्स को समझाना है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Deep Reinforcement Learning
अभ्यास निर्देश
- actor loss से entropy बोनस हटा दें, और \(c_{entropy}\) पैरामीटर के लिए मान 0.01 रखें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
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)