深度强化学习课程文档
从 Q-Learning 到 Deep Q-Learning
加入 Hugging Face 社区
并获得增强的文档体验
开始使用
从 Q-Learning 到 Deep Q-Learning
我们学习到 Q-Learning 是一种用于训练 Q 函数的算法,Q 函数是一种动作价值函数,它确定在特定状态并采取特定动作的价值。

Q 来自于在该状态下该动作的“质量”。
在内部,我们的 Q 函数由 Q 表编码,Q 表是一个表格,其中每个单元格对应于一个状态-动作对的值。可以将此 Q 表视为我们 Q 函数的记忆或备忘单。
问题在于 Q-Learning 是一种表格方法。如果状态和动作空间不够小,无法通过数组和表格有效地表示,这就会成为问题。换句话说:它不具有可扩展性。Q-Learning 在小型状态空间环境中运行良好,例如
- FrozenLake,我们有 16 个状态。
- Taxi-v3,我们有 500 个状态。
但是想想我们今天要做什么:我们将训练一个智能体学习玩太空侵略者,这是一个更复杂的游戏,使用帧作为输入。
正如 Nikita Melkozerov 提到的,Atari 环境的观察空间形状为 (210, 160, 3)*,包含从 0 到 255 的值,因此这给了我们可能的观察结果(为了比较,我们大约有可观测宇宙中的原子)。
- Atari 中的单帧由 210x160 像素的图像组成。考虑到图像是彩色的 (RGB),因此有 3 个通道。这就是形状为 (210, 160, 3) 的原因。对于每个像素,值可以从 0 到 255。

因此,状态空间是巨大的;因此,为该环境创建和更新 Q 表将效率低下。在这种情况下,最好的方法是使用参数化的 Q 函数来近似 Q 值 .
这个神经网络将近似地给出给定状态下每个可能动作的不同 Q 值。这正是 Deep Q-Learning 所做的。

现在我们了解了 Deep Q-Learning,让我们更深入地研究 Deep Q 网络。
< > 在 GitHub 上更新