深度强化学习课程文档
深度 Q 网络 (DQN)
并获得增强的文档体验
开始使用
深度 Q 网络 (DQN)
这是我们的深度 Q-Learning 网络的架构

作为输入,我们接受堆叠的 4 帧,将其作为状态传递到网络中,并输出一个向量,其中包含该状态下每个可能动作的 Q 值。然后,就像 Q-Learning 一样,我们只需要使用 epsilon-贪婪策略来选择要采取的动作。
当神经网络初始化时,Q 值估计非常糟糕。但在训练期间,我们的深度 Q 网络智能体将情况与适当的动作相关联,并学会好好玩游戏。
预处理输入和时间限制
我们需要预处理输入。这是一个重要的步骤,因为我们希望降低状态的复杂性,以减少训练所需的计算时间。
为了实现这一点,我们将状态空间缩小到 84x84 并将其灰度化。我们可以这样做,因为 Atari 环境中的颜色不会添加重要的信息。这是一个很大的改进,因为我们将三个颜色通道 (RGB) 减少到 1。
如果某些游戏屏幕的一部分不包含重要信息,我们也可以裁剪屏幕的该部分。然后我们将四个帧堆叠在一起。

我们为什么要将四个帧堆叠在一起? 我们将帧堆叠在一起是因为它有助于我们处理时间限制问题。让我们以 Pong 游戏为例。当您看到这个帧时

你能告诉我球往哪里去吗? 不,因为一个帧不足以感知运动! 但是,如果我再添加三个帧呢? 在这里你可以看到球正向右移动。

然后堆叠的帧由三个卷积层处理。这些层使我们能够捕获和利用图像中的空间关系。而且,由于帧堆叠在一起,我们可以利用这些帧之间的一些时间属性。
如果您不知道什么是卷积层,请不要担心。您可以查看 Udacity 的免费深度学习课程的第 4 课
最后,我们有几个全连接层,它们输出该状态下每个可能动作的 Q 值。

因此,我们看到深度 Q-Learning 使用神经网络来近似给定状态下每个可能动作的不同 Q 值。现在让我们研究深度 Q-Learning 算法。
< > 在 GitHub 上更新