การนำ First-Visit Monte Carlo มาใช้งาน
เป้าหมายของอัลกอริทึม Monte Carlo คือการประมาณค่า Q-table เพื่อหานโยบายที่เหมาะสมที่สุด ในแบบฝึกหัดนี้ จะนำวิธี First-Visit Monte Carlo มาใช้ประมาณค่าฟังก์ชัน action-value Q แล้วคำนวณนโยบายที่เหมาะสมที่สุดเพื่อแก้ปัญหา environment แบบกำหนดเองที่เคยเห็นในแบบฝึกหัดก่อนหน้า เมื่อคำนวณค่า return ให้ใช้ discount factor เท่ากับ 1
อาร์เรย์ numpy ได้แก่ Q, returns_sum และ returns_count ซึ่งเก็บค่า Q-values ผลรวมสะสมของรางวัล และจำนวนครั้งที่เยี่ยมชมสำหรับแต่ละคู่ state-action ตามลำดับ ได้รับการกำหนดค่าเริ่มต้นและโหลดไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Reinforcement Learning with Gymnasium ใน Python
คำแนะนำการฝึกหัด
- กำหนดเงื่อนไข
ifที่ต้องตรวจสอบในอัลกอริทึม First-Visit Monte Carlo - อัปเดตค่า return (
returns_sum) จำนวนครั้ง (returns_count) และvisited_states
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
for i in range(100):
episode = generate_episode()
visited_states = set()
for j, (state, action, reward) in enumerate(episode):
# Define the first-visit condition
if ____ not in ____:
# Update the returns, their counts and the visited states
returns_sum[state, action] += ____([____ for ____ in ____])
returns_count[state, action] += ____
visited_states.____(____)
nonzero_counts = returns_count != 0
Q[nonzero_counts] = returns_sum[nonzero_counts] / returns_count[nonzero_counts]
render_policy(get_policy())