深度强化学习课程文档

深度Q网络(DQN)

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

深度Q网络(DQN)

这是我们的深度Q学习网络的架构

Deep Q Network

作为输入,我们接收一个通过网络作为状态的4帧堆栈,并输出该状态下每个可能动作的Q值向量。然后,像Q学习一样,我们只需要使用我们的epsilon-greedy策略来选择要采取的行动。

当神经网络初始化时,Q值估计很差。但在训练过程中,我们的深度Q网络代理将把情况与适当的行动关联起来,并学会玩好游戏

输入预处理和时间限制

我们需要预处理输入。这是一个必不可少的步骤,因为我们希望降低状态的复杂性,以减少训练所需的计算时间

为了实现这一点,我们将状态空间缩小到84x84并将其灰度化。我们可以这样做,因为雅达利环境中的颜色不添加重要信息。这是一个很大的改进,因为我们将三个颜色通道(RGB)减少到1个

我们还可以裁剪一些游戏中屏幕的一部分,如果它不包含重要信息的话。然后我们将四帧堆叠在一起。

Preprocessing

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

Temporal Limitation

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

时间限制 这就是为什么,为了捕捉时间信息,我们将四帧堆叠在一起。

然后堆叠的帧由三个卷积层处理。这些层使我们能够捕捉并利用图像中的空间关系。而且,由于帧是堆叠在一起的,我们还可以利用这些帧之间的一些时间特性

如果你不知道什么是卷积层,别担心。你可以查看Udacity的这门免费深度学习课程的第4课

最后,我们有几个全连接层,它们输出该状态下每个可能动作的Q值。

Deep Q Network

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

< > 在 GitHub 上更新