เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การเลือก action ใน REINFORCE

เขียนฟังก์ชัน select_action สำหรับ REINFORCE ซึ่ง agent จะใช้ฟังก์ชันนี้เพื่อเลือก action ในทุกขั้นตอน

ใน DQN การ forward pass ของโครงข่ายจะคืนค่า Q-value แต่ใน REINFORCE จะคืนค่าความน่าจะเป็นของแต่ละ action ซึ่งสามารถสุ่ม action ได้โดยตรง

โหลด policy network และ state ไว้ในสภาพแวดล้อมของคุณแล้ว

torch.distributions.Categorical ถูก import มาในชื่อ Categorical

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Deep Reinforcement Learning ด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • คำนวณความน่าจะเป็นของแต่ละ action ในรูปแบบ torch tensor
  • สร้าง torch Distribution ที่สอดคล้องกับความน่าจะเป็นของแต่ละ action
  • สุ่ม action จาก distribution ที่ได้

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

def select_action(policy_network, state):
  # Obtain the action probabilities
  action_probs = ____
  print('Action probabilities:', action_probs)
  # Instantiate the action distribution
  action_dist = Categorical(____)
  # Sample an action from the distribution
  action = ____
  log_prob = action_dist.log_prob(action)
  return action.item(), log_prob.reshape(1)

state = torch.rand(8)
action, log_prob = select_action(policy_network, state)
print('Sampled action index:', action)
print(f'Log probability of sampled action: {log_prob.item():.2f}')
แก้ไขและรันโค้ด