开始使用免费开始使用

应用 Double Q-learning

本练习要求您在与 Expected SARSA 相同的自定义环境中应用 Double Q-learning 算法,以比较两者差异。Double Q-learning 通过使用两个 Q 表,可以减少传统 Q-learning 算法固有的过高估计偏差,并且比其他时序差分方法具有更稳定的学习过程。您将使用该方法在网格环境中导航,力争获得最高回报,同时避开山地,以尽快到达目标。

new_cust_env.png

本练习是课程的一部分

Python 中的 Gymnasium 强化学习

查看课程

练习说明

  • 使用上一练习中编写的 update_q_tables() 函数来更新两个 Q 表。
  • 通过将两个 Q 表相加来合并它们。

交互式实操练习

通过完成这段示例代码来试试这个练习。

Q = [np.zeros((num_states, num_actions))] * 2
for episode in range(num_episodes):
    state, info = env.reset()
    terminated = False   
    while not terminated:
        action = np.random.choice(num_actions)
        next_state, reward, terminated, truncated, info = env.step(action)
        # Update the Q-tables
        ____
        state = next_state
# Combine the learned Q-tables        
Q = ____
policy = {state: np.argmax(Q[state]) for state in range(num_states)}
render_policy(policy)
编辑并运行代码