用递减的 epsilon-greedy 策略求解 CliffWalking
为改进 epsilon-greedy 策略,我们加入衰减因子,使探索率 epsilon 随着智能体对环境了解的加深逐步降低。这样在学习早期鼓励探索,而当智能体更熟悉环境后则更多利用已学到的知识。现在,您将把这一策略应用到 CliffWalking 环境中。
环境已初始化,可通过变量 env 访问。变量 epsilon、min_epsilon 和 epsilon_decay 已为您预先定义。函数 epsilon_greedy() 和 update_q_table() 已导入。
本练习是课程的一部分
Python 中的 Gymnasium 强化学习
练习说明
- 实现完整训练循环:选择一个
action,执行该动作,将获得的reward累加到episode_reward,并更新 Q 表。 - 按
epsilon_decay衰减epsilon,同时确保其不低于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))