开始使用免费开始使用

带有经验回放的 DQN

现在,您将引入经验回放(Experience Replay),使用深度 Q 网络来训练智能体。您将继续使用构建基础版 DQN 时使用的同一个 Lunar Lander 环境。

在每一步中,与其只用最新一次状态转移的学习来更新网络,经验回放缓冲区会让智能体从一批随机抽取的近期经验中学习。这将显著提升其对环境的学习能力。

来自前面练习的 QNetworkReplayBuffer 类已为您提供,并按如下方式实例化:

  • q_network = QNetwork(8, 4)
  • replay_buffer = ReplayBuffer(10000)

函数 describe_episode() 也再次可用,用于在每个回合结束时描述各项指标。

本练习是课程的一部分

Python 中的深度强化学习

查看课程

交互式实操练习

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

for episode in range(10):
    state, info = env.reset()
    done = False
    step = 0
    episode_reward = 0
    while not done:
        step += 1
        q_values = q_network(state)        
        action = torch.argmax(q_values).item()
        next_state, reward, terminated, truncated, _ = env.step(action)
        done = terminated or truncated
        # Store the latest experience in the replay buffer
        replay_buffer.____        
        state = next_state
        episode_reward += reward    
    describe_episode(episode, reward, episode_reward, step)
编辑并运行代码