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

แก้ปัญหา CliffWalking ด้วยกลยุทธ์ epsilon-greedy แบบลดค่าตามเวลา

เพื่อพัฒนากลยุทธ์ epsilon-greedy ให้มีประสิทธิภาพมากขึ้น จึงมีการนำ decay factor เข้ามาใช้เพื่อค่อยๆ ลดอัตราการสำรวจ (epsilon) ลงเรื่อยๆ ขณะที่ agent เรียนรู้สภาพแวดล้อมมากขึ้น แนวทางนี้ส่งเสริมการสำรวจในช่วงต้นของการเรียนรู้ และเปลี่ยนมาใช้ประโยชน์จากความรู้ที่สะสมไว้เมื่อ agent คุ้นเคยกับสภาพแวดล้อมมากขึ้น ในแบบฝึกหัดนี้ จะนำกลยุทธ์ดังกล่าวไปใช้แก้ปัญหาในสภาพแวดล้อม CliffWalking

สภาพแวดล้อมได้รับการกำหนดค่าเริ่มต้นแล้ว และเข้าถึงได้ผ่านตัวแปร env ตัวแปร epsilon, min_epsilon และ epsilon_decay ได้ถูกกำหนดไว้ให้แล้ว รวมถึงฟังก์ชัน epsilon_greedy() และ update_q_table() ได้รับการนำเข้ามาให้เรียบร้อยแล้ว

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

Reinforcement Learning with Gymnasium ใน Python

ดูคอร์ส

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

  • สร้าง training loop แบบครบวงจร โดยเลือก action ดำเนินการ action นั้น สะสม reward ที่ได้รับลงใน episode_reward และอัปเดต Q-table
  • ลดค่า epsilon โดยใช้อัตรา epsilon_decay โดยให้แน่ใจว่าค่าจะไม่ต่ำกว่า min_epsilon

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

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

rewards_decay_eps_greedy = []
for episode in range(total_episodes):
    state, info = env.reset()
    episode_reward = 0
    for i in range(max_steps):
      	# Implement the training loop
        action = ____
        new_state, reward, terminated, truncated, info = ____
        episode_reward += ____       
        ____      
        state = new_state
    rewards_decay_eps_greedy.append(episode_reward)
    # Update epsilon
    epsilon = ____
print("Average reward per episode: ", np.mean(rewards_decay_eps_greedy))
แก้ไขและรันโค้ด