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

ประเมิน policy บน Frozen Lake แบบลื่น

ในสภาพแวดล้อม Frozen Lake แบบลื่น การอนุมาน policy จาก Q-table ที่เรียนรู้มาเพียงอย่างเดียวไม่เพียงพอต่อการวัดประสิทธิภาพที่แท้จริง เพื่อประเมิน policy ที่ได้อย่างแม่นยำ จำเป็นต้องรันหลาย episode และสังเกตค่าเฉลี่ยของ reward ที่ได้รับ แบบฝึกหัดนี้เปรียบเทียบประสิทธิภาพของ policy ที่เรียนรู้มากับ baseline ที่ได้จากการใช้ random policy ในช่วงการฝึก งานของคุณคือรัน policy ที่เรียนรู้มาหลาย episode แล้ววิเคราะห์ประสิทธิภาพจากค่าเฉลี่ย reward ที่ได้ เปรียบเทียบกับค่าเฉลี่ย reward จากช่วง random policy

Q-table Q, num_states, num_actions และ avg_reward_per_random_episode ถูกโหลดไว้ให้แล้ว ไลบรารี NumPy ถูก import ในชื่อ np

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

Reinforcement Learning with Gymnasium ใน Python

ดูคอร์ส

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

  • ในแต่ละ iteration ให้เลือก action ที่ดีที่สุดโดยอิงจาก Q-table Q ที่เรียนรู้มา
  • คำนวณค่าเฉลี่ย reward ต่อ episode จาก policy ที่เรียนรู้ avg_reward_per_learned_episode

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

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

for episode in range(10000):
    state, info = env.reset()
    terminated = False
    episode_reward = 0
    while not terminated:
        # Select the best action based on learned Q-table
        action = ____
        new_state, reward, terminated, truncated, info = env.step(action)
        state = new_state
        episode_reward += reward
    reward_per_learned_episode.append(episode_reward)
# Compute and print the average reward per learned episode
avg_reward_per_learned_episode = ____
print("Average reward per learned episode: ", avg_reward_per_learned_episode)
print("Average reward per random episode: ", ____)
แก้ไขและรันโค้ด