深度强化学习课程文档

深度Q网络 (DQN)

Hugging Face's logo
加入 Hugging Face 社区

并获得增强文档体验

开始使用

深度 Q 网络 (DQN)

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

Deep Q Network

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

当神经网络初始化时,Q 值估计非常糟糕。但在训练过程中,我们的深度 Q 网络智能体将把某种情况与适当的动作关联起来,并学会玩好游戏

输入预处理和时间限制

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

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

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

Preprocessing

为什么要将四帧堆叠在一起? 我们将帧堆叠在一起,因为它可以帮助我们处理时间限制问题。让我们以乒乓球游戏为例。当你看到这帧时

Temporal Limitation

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

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

然后,堆叠的帧由三个卷积层处理。这些层使我们能够捕获和利用图像中的空间关系。但同样,因为帧是堆叠在一起的,我们可以在这些帧之间利用一些时间特性

如果您不知道什么是卷积层,请不要担心。您可以查看Udacity 提供的这个免费深度学习课程的第 4 课

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

Deep Q Network

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

< > 更新 于 GitHub