在湿滑的 Frozen Lake 上评估策略
在湿滑的 Frozen Lake 环境中,仅通过已学习的 Q 表来推断策略,无法充分评估其效果。要准确判断已学习策略是否合适,您需要运行多个 episode,并观察其获得的平均回报。本练习将把已学习策略的效果,与在训练期间遵循随机策略所建立的基线进行比较。您的任务是:在若干个 episode 中执行已学习的策略,根据所收集的平均回报来分析其表现,并将其与随机策略阶段获得的平均回报进行对比。
Q(Q 表)、num_states、num_actions 和 avg_reward_per_random_episode 已为您预先加载。
NumPy 库已以 np 导入。
本练习是课程的一部分
Python 中的 Gymnasium 强化学习
练习说明
- 在每次迭代中,基于已学习的 Q 表
Q选择要执行的最优动作。 - 计算每个已学习 episode 的平均回报
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: ", ____)