ประเมิน 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: ", ____)