通过深度强化学习实现人类水平的控制
Volodymyr Mnih1,Koray Kavukcuoglu1,
David Silver1, Andrei A. Rusu1...
December 13, 2018
Abstract
强化学习理论对关于智能体在一个环境中如何优化他们的行为提供了规范性的说明,其
根源是对动物行为研究得到的关于心理学和神经学的观点。在接近真实世界复杂度的情境
下,强化学习已经获得了一些成果;然而智能体也面对一些困难的挑战:必须从环境中的高
维感觉输入中得到有效的特征,并且要使用它们概括过去的经验来应付新的场景。明显地,
人类和其他动物看起来通过优雅地联合强化学习与多层次感觉处理系统来处理这些问题,大
量神经数据证明神经元发射的多巴胺相位信号与时间差分强化学习算法有明显的相似。当强
化学习智能体在多领域获得成功,它们的适用性以前仅限于可以手工制作有用特性的领域,
或者可以被完全观察、处于低维状态空间的领域。因此我们最近提出了通过训练深度神经网
络来开发一个称为“Deep Q-Network”的新型人工智能体,它可以通过高维感觉输入直
接学习成功的策略来实现端到端的强化学习。我们在传统 Atari2600 游戏挑战领域测试了
这个智能体。我们确信深度 Q 网络智能体仅仅从像素和游戏得分获取输入,使用相同的算
法、网络结构和超参数实现了对于 49 个游戏与专业人类游戏测试人员同等级别的表现,能
够超越以前所有算法。这项工作链接了高维感觉输入和行动,从而产生了第一个能够在各种
挑战中学习性能优异的人工智能体。
1 前言
我们打算创造一个单一算法,使其能够在多种具有挑战性的任务上做范围广泛的开发——
一个一般人工智能已经放弃努力的核心目标。为了达到这个目的,我们开发了一种新型智能体,
深度 Q 网络(DQN),可以让一类我们熟知的人工神经网络(例如深度神经网络)与强化学习
结合,在各自层里的节点逐步地建立更抽象的数据特征,让人工神经网络学习概念(例如直接
来自原始感观数据的对象类别)成为可能。我们使用了一种特别成功的结构,深度卷积网络,这
种网络使用分层的卷积核来模拟感受野效应——受到 Hubei 和 Wiesel 关于前视觉皮层前馈过
程研究工作的启发——从而利用图像中存在的局部空间相关性,建立对自然变换的鲁棒性,例
如视点或比例的变化。
我们考虑到智能体通过一系列的观察、动作和奖赏与环境进行交互。智能体的目标是选择
一种可以使未来累计奖赏最大的一种动作。更书面地说,我们使用了一个深度卷积神经网络来
近似一个最佳动作值函数:
Q
(s; a) = max
E[rt + rt+1 + 2rt+2 + :::jst = s; at = a; ]
(1)
1
其中奖赏 t 的最大和受到每一个时刻 t 的折扣,来实现一个行为策略 = P (ajs),然后通过
观察状态(s)来做一个动作(a)。众所周知,强化学习在当一个非线性函数逼近时,例如一个
神经网络作为动作值(比如 Q)时,不稳定甚至会偏离实际。这种不稳定有一些原因:序列观察
的存在相关性,小的 Q 值的更新会显著地改变策略从而导致数据分布的改变,还有动作值(Q)
′
)。我们通过一个 Q-Learning 算法的新变种解决了这些不稳定性,
和目标值 r + 最大化 Q(s
; a
′
有两个主要思路。第一,我们使用了一种称为经验重播的生物启发机制,对数据进行初始化,从
而去除观察序列的相关性与平滑变化的数据分布(详见下文)。第二,我们采用迭代更新来调整
动作值(Q)接近仅仅周期性更新的目标值,以此来减少与目标的相关性。
虽然在强化学习的设置中存在其他稳定的方法来训练神经网络,例如神经拟合 Q 迭代,但
是这些方法会在训练网络的过程中导致成百上千次重复的迭代。因此不像我们的算法,这些方
法太低效以至于需要更大的神经网络来成功训练。我们使用深度卷积神经网络参数化了一个近
似值函数 Q(s; a; i),见图 1,其中 i 是 Q 网络在第 i 次迭代时的超参数(权重)。为了进行经
验重播,我们在数据集 Dt = e1; :::; et 的每一时间步 t 存储了智能体的经验 et = (st; at; rt; st+1)。
) U (D) 应用 Q 学习更新,从存储的样本
训练时,我们在样本(或小批量中)的经验 (s; a; r; s
池中均匀地随机绘制。在第 i 次迭代中,Q 学习更新使用如下损失函数:
′
Li(i) = E(s;a;r;s′) U (D)[(r + max
′
a′ Q(s
′
; a
;
i ) Q(s; a; i))2]
(2)
其中 是用来确定智能体水平的折扣因子,i 是 Q 网络在第 i 次迭代的参数,
第 i 次迭代目标的参数。目标网络参数
次更新之前恒定。
i 是用来计算
i 仅仅在 Q 网络参数(i)每隔 C 步更新,并且在下
1.png 1.bb
j 卷积神经网络示意图。结构细节在方法中有说明。神经网络的输入由经过预处理的
Figure 1:
映射 ϕ 产生的一个 84×84×4 的图像组成,接下来是三个卷积层(备注:像蛇一样的蓝色线条
代表每一个卷积核在输入图像上滑动)和两个全连接层,最后是一个代表单个合法操作输出的
全连接层,每一个隐藏层后面是一个非线性整流单元(即 max(0; x))。
2
2.png 2.bb
j 跟踪智能体平均得分和平均预测行动值的训练曲线。 a. 每一点是智能体在空间中
Figure 2:
使用 e-greedy 策略(e50.05) 运行 520k 帧后每一幕所得分数的平均。b. 任务每幕的平均得分。
c.Space Invaders 上一组状态的平均预测动作值。曲线上的每一点是动作值 Q 在持续状态集的
计算结果。请注意,由于奖励的衰减,Q 值会缩放(参见方法)。d. 任务中的平均预测动作值。
细节详见补充讨论。
为了评估我们的 DQN 智能体,我们利用了 Atari 2600 平台,它提供各种各样的挑战(n=49),
被用来吸引人类玩家, 供玩家挑战。我们使用了相同的网络结构、超参数值(见附加数据表 1)
和不变的学习程序——获取高维数据(60Hz 的 210×160 彩色视频)作为输入——来证明我们
的方法可以在仅仅基于感官的输入且具有很少先验知识的情况下可以成功地学习到各种各样的
游戏策略(输入仅仅是可视化图像,和每个游戏中可用的动作数量,但是没有一一对应的关系,
见方法)。值得注意的是,我们的方法可以以一种稳定的方式使用强化学习信号和随机梯度下降
训练巨大的神经网络——通过两个学习指标的时间演变来说明(智能体的每幕的平均得分和预
测 Q 值的平均值;参见图 2 和补充讨论的细节)。
我们比较了 DQN 和其他在 49 个结果可复现的游戏中表现最好的强化学习文献方法。除
了已学习的智能体之外,我们还报告了在受控条件下测试的专业人类游戏测试人员的分数以及
随机统一选择行动的一种策略(扩展数据表 2 和图 3,表示为 y 轴上的 100%(人类)和 0%(随
机);见方法)。我们的 DQN 方法在 43 个游戏中优于现有的最佳强化学习方法,而不包含任何
其他方法采用的有关 Atari 2600 游戏的其他先验知识。此外我们的 DQN 智能体在 49 场比赛
中的表现与专业人类游戏测试员的水平相当,在超过半数的游戏中,达到了高于人类得分 75%
的成绩(29 场游戏,见图 3,补充讨论和扩展数据表 2)。此外,在其他模拟中(参见补充讨论
和扩展数据表 3 和 4)。我们通过禁用重放内存、分离目标 Q 网络和深度卷积网络结构对性能
的不利影响来演示这些个人得分组件对于 DQN 智能体的重要性。
3
3.png 3.bb
j DQN 智能体和文献中其他智能体的对比。 DQN 的性能相对于专业人类游戏测试
Figure 3:
员(100% 级别)和随机游戏(0%)级别进行标准化。注意以百分比表示的 DQN 标准化计算方
式为 100×(DQN 得分-随机游戏得分)/(人类得分-随机游戏得分). 可以看出,DQN 在几乎
所有游戏中都优于竞争方法(参见扩展数据表 2),并且在大多数游戏中与专业人类游戏测试员
的水平相仿或更高。人类玩家和智能体都禁用了音频输出,误差条表示在 S.D. 的 30 幕预测中,
用不同的初始条件开始。
4
4.png 4.bb
j DQN 在玩 Space Invaders 时最后一个隐藏层表示的二维 t-SNE 嵌入。该图
Figure 4:
通过 DQN 智能体玩 2 小时真实游戏时间,并且在由 DQN 分配给每个所经历的游戏状态的最
后一层隐藏层运行 t-SNE 算法。根据 DQN 针对相应游戏状态(从暗红色(最高 V)到深蓝色
(最低 V))预测的状态值(V,状态的最大预期奖励)对点进行着色,并显示对应点的屏幕截
图。DQN 智能体预测完整截图(右上方屏幕截图)和几乎完整屏幕截图(左下方屏幕截图)的
高状态值,因为它已经学习到完成一个屏幕会导致新屏幕充满敌人的舰队。部分完成的屏幕截
图(底部屏幕截图)被分配较低的状态值,因为其可用的即时奖励较少。右下角和左上角以及
中间显示的屏幕看起来相似,但仍映射到附近的表示和类似值,因为橙色掩体在一个级别附近
的结束不具有重要意义。经 SEL 许可。
5
接下来我们通过使用一种叫做“t-SNE 25”(见图 4)的高位数据可视化技术来检验 DQN
所学到的表示,这些表示在游戏 Space Invaders 的背景下 DQN 在智能体上的成功表现。正如
预期,t-SNE 算法倾向于将感知相似状态的 DQN 表示映射到附近点。有趣的是,我们还发现
了一个实例,其中 t-SNE 算法为 DQN 的状态表示生成了类似的嵌入,这些表示在预期奖励方
面接近,但是在感知上不相似(图 4,右下角、左上角和中间), 与网络能够学习来自高维感官
输入的自适应行为的表示的概念一致。此外我们还证明,DQN 学习的表示能够推广到自己的模
拟之外的策略生成的数据,其中我们将其作为人类和智能体游戏过程中所经历的的网络状态的
输入,记录了最后一个隐藏层,并可视化了 t-SNE 算法生成的嵌入图(扩展数据图 1 和补充讨
论)。扩展数据图 2 提供了 DQN 学习表示如何准确预测状态和动作值的附加说明。
值得注意的是,DQN 擅长的游戏性质极为不同,从横向滚动射击游戏(River Raid)到拳
击游戏(Boxing)和三维赛车游戏(Enduro)。事实上,在某些游戏中,DQN 能发现一些相对
长期的策略(例如,Breakout:智能体学习最佳策略,即先挖掘围墙侧面的隧道,允许球在周围
发送回来摧毁一个更大数量的块)。尽管如此,要求更多延时规划策略的游戏仍然是所有现有智
能体(包括 DQN)的主要挑战(例如,Montezuma’s Revenge)。
在这项工作中,我们证明单一架构可以成功地学习一系列不同环境中的控制策略,只需要
极少的先验知识,只接受像素和游戏分数作为输入,并使用相同的算法,网络架构和每个游戏
都有超参数,只知道人类玩家的输入。与之前的工作相比,我们的方法结合了“端到端”强化
学习,利用奖励在卷积网络中连续塑造表征,促进环境的显著特征与价值评估。该原理借鉴了
神经生物学证据,即在感知学习过程中奖励信号可能会影响灵长类动物视觉皮层中的表征特征。
值得注意的是,强化学习与深度网络架构的成功整合在很大程度上取决于我们是否整合了重放
算法,该算法涉及最近经历的转换的存储和表示。一些证据表明,海马体可能支持哺乳动物大
脑中这种过程的物理实现,在离线阶段(如浅睡眠)中重新激活最近经历的记忆,通过这种机
制可以通过与基底神经节的相互作用有效地更新价值函数。在未来重要的是探索如何将经验重
放的内容偏向突出事件的潜在用途,这是一种海马体以经验观察重播为特征的现象,并且涉及
到强化学习中“优先清扫”的概念。总之,我们的工作体现了利用最先进的机器学习技术和生
物启发机制的力量,创造能够学习掌握各种具有挑战性任务的智能体。
2 方法
2.1 预处理。
直接使用原始的雅达利 (Atari)2600 帧图像 (210160 像素,128 个调色板), 在计算和内存
需求方面可能会有很大的要求。我们应用了一个基本的预处理步骤,旨在减少输入维度并处理
Atari 2600 模拟器的一些伪像。首先,为了对单个帧进行编码,我们对被编码帧和前一帧上的
每个像素的颜色值取极大值。这对于消除某些对象只出现在偶数帧而其他对象只出现在奇数帧
的游戏中的闪烁是必要的,这是由雅达利 2600 有限的帧图像数量所导致的假象。然后,我们从
RGB 帧中提取 Y 通道,也称为亮度,并将其重新缩放到 8484 像素。来自算法 1 的函数 ,
描述了将该预处理应用于 m 个最近的帧并且将它们堆叠以产生函数 Q 的输入,其中 m = 4,尽
管该算法对于 m 的不同值是鲁棒的。(例如,m = 3 或 m = 5)
6
2.2 代码复用。
需要源代码的可以访问 https://sites.google.com/a/deepmind.com/dqn,仅用于非商
业用途。
2.3 模型架构。
有几种可能的方法可以通过神经网络来参数化 Q。因为 Q 将历史-动作对映射到其 Q 值
的标量估计,所以历史和动作已经被先前的一些方法用作神经网络的输入。这种体系结构的主
要缺点就是需要单独的前向传递来计算每个动作的 Q 值,从而导致成本与动作的数量成线性比
例。我们改为使用另一种体系结构,其中每一个可能的动作都有一个单独的输出单元,只有状
态表示是神经网络的输入。此输出对应于输入状态的各个动作所预测的 Q 值。这种类型的体系
结构的主要优点是能够在给定的状态下计算所有可能操作的 Q 值,只需通过神经网络的一次正
向传输。
这个确切的架构,在图 1 中以图示的形式给出如下。神经网络的输入包括有预处理映射
所产生的 84844 图像。第一个隐藏层将 32 个 88 的滤波器与步幅 4 和输入图像进行卷积,
并应用非线性整流器。第二个隐藏层将 64 个 44 滤波器与步幅 2 进行卷积,再次跟随非线性
整流器。接下来是第三个卷积层,它将 64 个过滤器 33 与步幅 1 和一个整流器卷积在一起。
最后的隐藏层是全连接的,由 512 个整流器单元组成。输出层是一个完全连接的线性层,每个
有效动作都有一个输出。在我们考虑的游戏中,有效行动的数量在 4 到 18 之间变化。
2.4 训练细节。
我们在 49 个 Atari 2600 游戏中进行了实验,其结果可用于所有其他类似方法. 在每个游
戏上训练不同的网络:在所有游戏中使用相同的网络架构,学习算法和超参数设置(参见扩展
数据表 1),表明我们的方法足够强大,适用于各种游戏,同时仅包含最少的游戏先验知识(见
下文)。虽然我们在未经修改的游戏中评估我们的智能体,但我们仅在培训期间对游戏的奖励结
构进行了一次更改。由于分数的比例因游戏而异,我们将所有积极奖励剪裁为 1,所有负面奖励
均为 1,将 0 奖励保持不变。以这种方式剪切奖励限制了误差导数的规模,并且使得在多个游
戏中使用相同的学习速率更容易。同时,它可能会影响我们的智能体的表现,因为它无法区分
不同程度的奖励。对于有生命计数器的游戏,Atari 2600 模拟器还会发送游戏中剩余的生命数,
然后用于标记训练期间的一个阶段的结束。
在这些实验中,我们使用 RM SP rop 算法和大小为 32 的 M ini batch 梯度下降。训练期
间的行为策略是 " greedy,在前一百万帧中从 1.0 到 0.1 进行 " 线性训练,之后固定为 0.1。我
们总共训练了 5000 万帧(即总共约 38 天的游戏体验)并且使用了最近 100 万帧的重放记忆。
按照以前播放 Atari 2600 游戏的方法,我们也使用简单的跳帧技术(frame-skipping tech-
nique)。更准确地说,智能体在每个第 k 帧而不是每个帧上执行查看和选择动作,并且在跳过
的帧上重复其最后一个动作。因为向前运行模拟器一步需要比使用智能体选择动作少得多的计
算,这种技术允许智能体在不显着增加运行时间的情况下玩大约 k 倍的游戏。我们对所有游戏
使用 k = 4。通过对游戏 Pong,Breakout,Seaquest,Space Invaders 和 Beam Rider 进行非
7
正式搜索来选择所有超参数和优化参数的值。由于计算成本高,我们没有进行系统的网格搜索。
然后,这些参数在所有其他游戏中保持固定。扩展数据表 1 中提供了所有超参数的值和描述。
我们的实验设置相当于使用以下最小的先验知识:输入数据由视觉图像(激励我们使用卷
积深度网络),游戏特定得分(没有修改),动作数量组成,但不是它们的对应关系(例如,向
上’ 按钮’ 的规范)和寿命计数。
2.5 程序评估。
通过每次游戏 30 次,每次最多 5 分钟,使用不同的初始随机条件(’noop’; 参见扩展数据
表 1)和 " = 0:05 的 " greedy 策略来评估训练有素的智能体。采用该程序以最小化评估期间
过度拟合的可能性。随机智能体作为基线比较,并选择 10Hz 的随机动作,即每隔六帧,重复其
对中间帧的最后一次动作。10Hz 是人类玩家可以选择“开火”按钮的最快速度,并且将随机智
能体设置为此频率可避免少数游戏中的虚假基线分数。我们还评估了选择 60Hz(即每帧)动作
的随机智能体的性能。这影响很小:只有六场比赛(Boxing,Breakout,Crazy Climber,Demon
Attack,Krull 和 Robotank)将标准化的 DQN 性能提高了 5%以上,并且在所有这些游戏中,
DQN 的表现远远超过了专家。
专业的人类测试人员使用与代理相同的仿真器引擎,并在受控条件下进行测试。人类测试
人员不允许暂停,保存或重新加载游戏。与最初的 Atari 2600 环境一样,仿真器以 60Hz 的频
率运行,音频输出被禁用:因此,感知输入在人类玩家和智能体之间等同。
2.6 算法。
我们考虑智能体与环境(在本例中为 Atari 仿真器)在一系列操作,观察和奖励中交互的
任务。在每个时间结点,智能体从合法游戏动作集合中选择一个动作,A = f1:::Kg。该操作将
传递给仿真器并修改其内部状态和游戏分数。通常,环境可以是随机的。智能体不会观察到仿
真器的内部状态; 相反,智能体从仿真器观察图像 xt 2 ℜd,仿真器是表示当前屏幕的像素值的
向量。此外,它接收表示游戏分数变化的奖励 rt。注意,通常游戏得分可以取决于整个先前的
动作和观察序列; 关于动作的反馈可以仅在经过数千个时间步骤之后才被接收。
因为智能体仅观察当前屏幕,所以其任务是部分观察并且许多仿真器状态是感知别名的
(即,不可能仅从当前屏幕 xt 完全理解当前情况)。因此,动作和观察的序列,st = x1; a1; x2; :::; at1; xt,
被输入到算法,然后算法根据这些序列学习游戏策略。假设仿真器中的所有序列都以有限的时
间步长终止。这种形式主义产生了一个大而有限的马尔可夫决策过程(M DP ),其中每个序列
都是一个不同的状态。因此,我们可以为 M DP 应用标准的强化学习方法,只需使用完整序列
st 作为时间 t 的状态表示。
∑
T
′
t
=t t
智能体的目标是通过以最大化未来奖励的方式选择操作来与仿真器进行交互。我们做出标
准假设,即未来的奖励每时间步长为 因子( 始终设为 0.99),并在时间 t 定义未来的折扣
′ ,其中 T 是游戏终止的时间步长。我们定义了最优动作 - 值函数
回报为 Rt =
(s; a),作为通过遵循任何策略可实现的最大预期回报,在看到一些序列 s 然后采取一些动作
Q
(s; a) = maxE[Rtjst = s; at = a; ] 其中 是策略映射序列到动作(或动作上的分
a 之后,Q
′trt
布)。
8