在濕滑的 Frozen Lake 上評估策略
在濕滑的 Frozen Lake 環境中,只靠從已學得的 Q-table 推導策略,還不足以判斷其成效。若要準確評估一個已學得策略是否合適,你必須執行多個情節並觀察所得到的平均報酬。本練習會把已學得策略的成效,與以隨機策略進行訓練時所建立的基準進行比較。你的任務是將已學得的策略執行多個情節,根據收集到的平均報酬分析其表現,並與隨機策略階段的平均報酬進行對照。
Q-table Q、num_states、num_actions,以及 avg_reward_per_random_episode 都已為你預先載入。
NumPy 函式庫已以 np 名稱匯入。
本練習屬於課程
使用 Python 的 Gymnasium 進行強化學習
練習說明
- 在每次迭代中,根據已學得的 Q-table
Q選擇最佳動作。 - 計算每個已學得情節的平均報酬
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: ", ____)