DQN原文解读-2015-Human-level control through deep reinforcement learning

论文:doi:10.1038/nature14236

第一部分:

强化学习理论提供了一种规范性解释,深深植根于动物行为的心理学和神经科学观点,说明智能体如何优化对环境的控制。然而,为了在接近现实世界复杂性的情况下成功使用强化学习,智能体面临着一项艰巨的任务:他们必须从高维模态输入中获得环境的有效表示,并利用这些将过去的经验推广到新的情况。值得注意的是,人类和其他动物似乎通过强化学习和分层感觉处理系统的和谐结合来解决这个问题。大量的神经数据证明了前者,揭示了多巴胺神经元发出的相位信号与时间差异强化之间的显着相似之处学习算法. 虽然强化学习智能体在多个领域取得了一些成功6-8,但它们的适用性之前仅限于可以手工制作有用特征的领域,或具有完全观察的低维状态空间的领域。在这里,我们利用深度神经网络9-11训练方面的最新进展来开发一种新型人工智能体,称为深度Q网络,它可以使用端到端强化学习直接从高维感觉输入中学习成功的策略。我们在经典 Atari 2600 游戏的挑战性领域测试了该代理12。我们证明,仅接收像素和游戏得分作为输入的深度 Q 网络代理能够超越之前所有算法的性能,并在 49 款游戏中达到与专业人类游戏测试员相当的水平,使用相同的算法、网络架构和超参数。这项工作弥合了高维感官输入和动作之间的鸿沟,从而产生了第一个能够学习并在各种具有挑战性的任务中表现出色的人工智能体。

我们着手创建一种单一算法,能够在各种具有挑战性的任务上培养广泛的能力——这是通用人工智能13的中心目标,而之前的努力却未能实现8、14、15。为了实现这一目标,我们开发了一种新型代理,即深度 Q 网络 (DQN),它能够将强化学习与一类称为深度神经网络的人工神经网络 16 相结合。值得注意的是,深度神经网络9-11的最新进展,其中使用多层节点来构建逐渐更抽象的数据表示,使得人工神经网络可以直接从原始感官数据中学习诸如对象类别之类的概念。 我们使用一种特别成功的架构,即深度卷积网络17,它使用平铺卷积滤波器的分层层来模拟感受野的效果——受到 Hubel 和 Wiesel 在早期视觉皮层前馈处理方面的开创性工作的启发——从而利用存在的局部空间相关性图像中,并建立对自然变换(例如视点或比例的变化)的鲁棒性。

我们考虑智能体通过一系列观察、行动和奖励与环境交互的任务。智能体的目标是以最大化累积未来奖励的方式选择行动。更正式地说,我们使用深度卷积神经网络来近似最佳动作值函数:

Q^*(s,a) = max_{\pi}E[r_t+\gamma r_{t+1} + \gamma^2r_{t+2}+\cdot\cdot\cdot|s_t =s,a_t=a,\pi],这是在进行观察 (s) 并采取行动 (a) 后,通过行为策略\pi = P(a|s)可实现的每个时间步 t 由 \gamma 折扣的奖励r_t 的最大总和(参见方法)19。

众所周知,当使用神经网络等非线性函数逼近器来表示动作值(也称为 Q)函数时,强化学习会不稳定甚至发散20。这种不稳定性有几个原因:观察序列中存在的相关性Q 的小更新可能会显着改变策略并因此改变数据分布,以及动作值 (Q) 和目标值r+\gamma max_{a^{'}} Q(s^{'},a^{'})之间的相关性。我们通过 Q 学习的一种新颖变体来解决这些不稳定性,它使用了两个关键思想。首先,我们使用了一种受生物学启发的机制,称为经验重播21-23,该机制对数据进行随机化,从而消除观察序列中的相关性并平滑数据分布的变化(详细信息见下文)。其次,我们使用迭代更新将动作值(Q)调整为仅定期更新的目标值,从而减少与目标的相关性

虽然存在其他稳定的方法用于在强化学习设置中训练神经网络,例如神经拟合 Q 迭代24,但这些方法涉及对网络进行数百次迭代的从头重复训练。因此,与我们的算法不同,这些方法效率太低,无法成功用于大型神经网络。我们使用下图 所示的深度卷积神经网络参数化近似值函数 Q(s,a;\theta_i),其中 \theta_i 是 Q 网络在迭代 i 时的参数(即权重)。为了执行经验重放,我们将代理在每个时间步 t 的经验 e_t = (s_t,a_t,r_t,s_{t+1}) 存储在数据集 D_t = \left \{ e_1,e_2,\cdot\cdot\cdot,e_t \right \}中。在学习过程中,我们对从存储样本池中均匀随机抽取的经验样本(或小批量)(s,a,r,s^{'}) \sim U(D) 应用 Q 学习更新。迭代 i 处的 Q 学习更新使用以下损失函数:

L_i(\theta_i) = E_{(s,a,r,s^{'})\sim U(D)}\left [ \left ( r+\gamma max_{a^{'}}Q(s^{'},a^{'};\theta^{-}_i) - Q(s,a;\theta _i) \right ) ^2\right ]

其中\gamma是确定代理视野的折扣因子,\theta_i是迭代i时Q网络的参数,\theta ^{-}_i是用于计算迭代i时目标的网络参数。目标网络参数 \theta ^{-}_i 仅在每 C 个步骤中使用 Q 网络参数 \theta_i 进行更新,并且在各个更新之间保持固定(参见方法)。

为了评估我们的DQN代理,我们利用了Atari 2600平台,该平台提供了各种各样的任务(n = 49),旨在为人类玩家提供困难和吸引人的任务。我们在整个过程中使用相同的网络架构、超参数值(参见扩展数据表1)和学习过程(以高维数据(60 Hz 的 210|160 彩色视频)作为输入,以证明我们的方法仅基于感官输入(即 输入数据只是视觉图像,以及每个游戏中可用的动作数量,而不是它们的对应关系;请参阅方法)。值得注意的是,我们的方法能够以稳定的方式使用强化学习信号和随机梯度下降来训练大型神经网络,这通过两个学习指数的时间演化来说明(代理的每集平均得分和平均预测 Q 值;参见图 2 和补充讨论以了解详细信息)。

我们将 DQN 与强化学习文献中的最佳性能方法进行了比较,涉及 49 款游戏,其中有结果 12,15。除了学习到的智能体之外,我们还报告了专业人类游戏测试员在受控条件下玩游戏的分数以及随机均匀选择动作的策略(扩展数据表 2 和图 3,用 100%(人类)和 0% 表示) (随机)在 y 轴上;参见方法)。我们的 DQN 方法在 43 款游戏中的表现优于现有的最佳强化学习方法,而无需结合其他方法使用的有关 Atari 2600 游戏的任何额外先验知识(例如,参考文献 12、15)。此外,我们的 DQN 代理在 49 场比赛中的表现与专业人类游戏测试人员相当,在一半以上的游戏(29 场比赛;见图3,补充讨论和扩展数据表2)。在其他模拟中(参见补充讨论和扩展数据表 3 和 4),我们通过禁用它们并演示 DQN 代理的各个核心组件对性能的不利影响来证明(重播内存、单独的目标 Q 网络和深度卷积网络架构)的重要性。

接下来我们检查了 DQN 学习到的表示,这些表示支持代理在游戏《太空入侵者》中的成功表现(有关 DQN 性能的演示,请参阅补充视频 1),方法是使用一种为高维可视化而开发的技术。称为“t-SNE”25 的维度数据(图 4)。正如预期的那样,t-SNE 算法倾向于将感知相似状态的 DQN 表示映射到附近的点。有趣的是,我们还发现了t-SNE算法为DQN表示生成相似嵌入的实例,这些状态在预期奖励方面接近,但在感知上不同(图4,右下角,左上角和中间),这与网络能够从高维感官输入中学习支持自适应行为的表征的概念一致。此外,我们还表明,DQN 学习到的表示能够泛化到从策略生成的数据,而不是它自己的数据 - 在模拟中,我们将其作为人类和代理玩游戏期间经历的网络游戏状态的输入,记录了最后的表示隐藏层,并可视化 t-SNE 算法生成的嵌入(扩展数据图 1 和补充讨论)。扩展数据图 2 进一步说明了 DQN 学习的表示如何使其能够准确预测状态和动作值。

值得注意的是,DQN 擅长的游戏性质极其多样,从横向卷轴射击游戏(River Raid)到拳击游戏(Boxing)和三维赛车游戏(Enduro)。

事实上,在某些游戏中,DQN 能够发现相对长期的策略(例如,Breakout:智能体学习最佳策略,即首先在墙的一侧挖一条隧道,让球绕过墙的一侧发送)。返回以销毁大量块;请参阅补充视频 2,了解训练过程中 DQN 性能发展的说明)。尽管如此,需要更多时间扩展规划策略的游戏仍然对包括 DQN 在内的所有现有智能体构成重大挑战(例如《蒙特祖玛的复仇》)。

在这项工作中,我们证明了单一架构可以在一系列不同环境中成功学习控制策略,只需非常少的先验知识,仅接收像素和游戏分数作为输入,并在网络上使用相同的算法、网络架构和超参数。每个游戏,仅了解人类玩家的输入。与之前的工作24,26相比,我们的方法结合了“端到端”强化学习,利用奖励不断塑造卷积网络内的表示,以实现有助于价值估计的环境显着特征。这一原理借鉴了神经生物学证据,即感知学习期间的奖励信号可能会影响灵长类动物视觉皮层内的表征特征27,28。值得注意的是,强化学习与深度网络架构的成功集成很大程度上取决于我们合并重放算法21-23,其中涉及最近经历的转换的存储和表示。收敛的证据表明,海马体可能支持哺乳动物大脑中这一过程的物理实现,在离线期间最近经历的轨迹的时间压缩重新激活21,22(例如,清醒休息)提供了一种假定的机制,通过该机制,可以通过与基底神经节的相互作用来有效地更新价值功能22。未来,探索将经验重放内容偏向显着事件的潜在用途将很重要,这种现象是经验观察到的海马重放的特征29,并且与强化学习中“优先清扫”30的概念相关。总而言之,我们的工作说明了利用最先进的机器学习技术和受生物学启发的机制来创建能够学习掌握各种具有挑战性的任务的代理的力量。

方法:

预处理

直接处理原始 Atari 2600 帧(即具有 128 色调色板的 210 × 3 160 像素图像)对计算和内存的要求可能很高。我们应用了一个基本的预处理步骤,旨在减少输入维度并处理 Atari 2600 模拟器的一些问题。首先,为了对单个帧进行编码,我们采用正在编码的帧和前一帧上每个像素颜色值的最大值。这是消除游戏中出现的闪烁所必需的,游戏中某些对象仅出现在偶数帧中,而其他对象仅出现在奇数帧中,这是由于 Atari 2600 可以同时显示的精灵数量有限而造成的现象。其次,我们从 RGB 帧中提取 Y 通道(也称为亮度),并将其重新调整为 84 * 84。下面描述的算法 1 中的函数 \phi将此预处理应用于最近的 m 帧,并将它们堆叠起来以生成输入到 Q 函数,其中 m = 4,尽管该算法对于不同的 m 值(例如 3 或 5)具有鲁棒性。

代码可用性

源代码可在 https://sites.google.com/a/deepmind.com/dqn 访问,仅供非商业用途。(现在找不到了已经哈哈哈哈)

模型架构

使用神经网络参数化 Q 有多种可能的方法。因为 Q 将历史-动作对映射到其 Q 值的标量估计,所以历史和动作已被一些先前的方法用作神经网络的输入24,26。这种类型的架构的主要缺点是需要单独的前向传递来计算每个动作的 Q 值,从而导致成本随动作数量线性扩展。相反,我们使用一种架构,其中每个可能的动作都有一个单独的输出单元,并且只有状态表示是神经网络的输入。输出对应于输入状态的各个动作的预测 Q 值。这种类型的架构的主要优点是能够计算给定状态下所有可能动作的 Q 值,而只需通过网络进行一次前向传递

确切的架构如图 1 所示,神经网络的输入由预处理图 \phi生成的 84 * 84 * 4 图像组成。第一个隐藏层将 8 * 8 个步长为 4 的 32 个滤波器与输入图像进行卷积,并应用非线性整流器。第二个隐藏层将 4 * 4 的 64 个滤波器与步长 2 进行卷积,后面同样是一个非线性整流器。接下来是第三个卷积层,该层对 64 个 3 * 3 的滤波器进行卷积,步长为 1,后跟一个整流器。最终隐藏层是全连接的,由 512 个整流器单元组成。输出层是一个全连接的线性层,每个有效动作都有一个输出。在我们考虑的游戏中,有效动作的数量在 4 到 18 之间变化。

训练详情

我们对 49 款 Atari 2600 游戏进行了实验,结果可用于所有其他类似方法12,15。每个游戏都训练了不同的网络:所有游戏都使用相同的网络架构、学习算法和超参数设置(参见扩展数据表 1),这表明我们的方法足够强大,可以在各种游戏上工作,同时只包含最少的先验知识(见下文)。虽然我们在未修改的游戏上评估我们的代理,但我们仅在训练期间对游戏的奖励结构进行了一项更改。由于不同游戏的分数大小差异很大,我们将所有正奖励削减为 1,将所有负奖励削减为 -1,保留 0 奖励不变。以这种方式削减奖励可以限制误差导数的规模,并且可以更轻松地在多个游戏中使用相同的学习率。同时,它可能会影响我们代理的表现,因为它无法区分不同大小的奖励。对于有生命计数器的游戏,Atari 2600 模拟器还会发送游戏中剩余的生命数,然后用于在训练期间标记剧集的结束。

在这些实验中,我们使用了 RMSProp(参见 http://www.cs.toronto.edu/,tijmen/csc321/slides/lecture_slides_lec6.pdf)算法,小批量大小为 32。训练期间的行为策略是 e-greedy 的e 在前一百万帧中从 1.0 线性退火到 0.1,此后固定为 0.1。我们总共训练了 5000 万帧(即总共约 38 天的游戏体验),并使用了最近 100 万帧的重放内存。

遵循以前玩 Atari 2600 游戏的方法,我们还使用了简单的跳帧技术15。更准确地说,代理在每个第 k 帧而不是每一帧上查看并选择动作,并且在跳过的帧上重复其最后一个动作。由于向前运行模拟器一步所需的计算量比让代理选择动作要少得多,因此该技术允许代理玩大约 k 倍的游戏,而不会显着增加运行时间。我们对所有游戏都使用 k 5 4。

所有超参数和优化参数的值都是通过对 Pong、Breakout、Seaquest、Space Invaders 和 Beam Rider 游戏进行非正式搜索来选择的。由于计算成本较高,我们没有进行系统的网格搜索。然后,这些参数在所有其他游戏中保持固定。扩展数据表 1 中提供了所有超参数的值和描述。

我们的实验设置相当于使用以下最低限度的先验知识:输入数据由视觉图像组成(激发我们使用卷积深度网络)、游戏特定得分(未经修改)、动作数量,尽管不是它们的对应关系(例如,向上“按钮”的规范)和生命计数。

评估程序

通过使用不同的初始随机条件(“noop”;参见扩展数据表 1)和\varepsilon= 0.05 的 \varepsilon -greedy 策略玩每个游戏 30 次,每次最多 5 分钟,对经过训练的智能体进行评估。采用此程序是为了最大限度地减少评估过程中过度拟合的可能性。随机代理作为基线比较,并选择每六帧一次的 10 Hz 随机动作,在中间帧上重复其最后一个动作。10 Hz 大约是人类玩家选择“开火”按钮的最快速度,将随机代理设置为该频率可以避免少数游戏中出现虚假基线分数。我们还评估了以 60 Hz(即每帧)选择动作的随机代理的性能。这产生的影响很小:仅在六款游戏(《拳击》、《突破》、《疯狂攀登者》、《恶魔攻击》、《克鲁尔》和《机器人坦克》)中,标准化 DQN 性能就改变了 5% 以上,并且在所有这些游戏中,DQN 的表现都远远超过了人类专家。

专业的人体测试人员使用与代理相同的模拟器引擎,并在受控条件下进行游戏。人类测试人员不得暂停、保存或重新加载游戏。与原始 Atari 2600 环境中一样,模拟器以 60 Hz 运行,并且禁用音频输出:因此,人类玩家和代理之间的感官输入是等同的。人类表现是每场游戏大约 20 集、每场游戏持续最多 5 分钟、每场游戏进行大约 2 小时练习后获得的平均奖励。

算法

我们考虑代理与环境(在本例中为 Atari 模拟器)交互的任务,包括一系列动作、观察和奖励。在每个时间步,代理从合法游戏动作集A = \left \{ 1,\cdot\cdot\cdot,K \right \}中选择一个动作a_t。该动作被传递到模拟器并修改其内部状态和游戏分数。一般来说,环境可能是随机的。代理无法观察到模拟器的内部状态;相反,代理观察来自模拟器的图像 x_t \in\mathbb{R}^{d},它是表示当前屏幕的像素值向量。此外,它还收到代表游戏分数变化的奖励r_t。请注意,一般来说,游戏得分可能取决于之前的整个动作和观察序列;有关某个操作的反馈可能只有在经过数千个时间步之后才能收到

由于代理仅观察当前屏幕,因此任务被部分观察33,并且许多模拟器状态在感知上是混叠的(即,不可能仅从当前屏幕x_t完全了解当前情况)。因此,动作和观察序列s_t = x_1,a_1,x_2,\cdot\cdot\cdot,a_{t-1},x_t被输入到算法中,然后算法根据这些序列学习游戏策略。假设模拟器中的所有序列都以有限数量的时间步终止。这种形式主义产生了一个大型但有限的马尔可夫决策过程(MDP),其中每个序列都是一个不同的状态。因此,我们可以将标准的强化学习方法应用于 MDP,只需使用完整的序列 s_t 作为时间 t 的状态表示即可。

代理的目标是通过以最大化未来奖励的方式选择操作来与模拟器进行交互。我们做出标准假设,即未来奖励在每个时间步按 \gamma因子进行折扣(\gamma 始终设置为 0.99),并将时间 t 处的未来折扣回报定义为 R_t = \sum_{t^{'}=t}^{T}\gamma ^{t^{'} - t}r_{t^{'}},其中 T 是游戏终止的时间步长。我们将最优行动价值函数Q^{*}(s,a) 定义为在看到一些序列 s 然后采取一些行动之后,遵循任何策略可实现的最大预期回报 a, Q^{*}(s,a) = max_{\pi}E[R_t|s_t = s,a_t = a,\pi]其中 \pi 是将序列映射到操作(或操作上的分布)的策略。

最佳行动价值函数遵循一个重要的恒等式,称为贝尔曼方程。这是基于以下直觉:如果已知所有可能的动作 a^{'} 在下一个时间步的序列 s^{'}的最优值 Q^{*}({s^{'},a^{'}}),那么最优策略是选择动作 a^{'}最大化期望值r + \gamma Q^{*}(s^{'},a^{'}):

Q^{*}(s,a) = E_{s^{'}}[r + \gamma max_{a^{'}}Q^{*}(s^{'},a^{'})|s,a]

许多强化学习算法背后的基本思想是通过使用贝尔曼方程作为迭代更新来估计动作价值函数Q_{i+1}(s,a) = E_{s^{'}}[r + \gamma max_{a^{'}}Q_{i}(s^{'},a^{'})|s,a]

这种值迭代算法收敛到最优动作值函数 Q_i \rightarrow Q^{*} (as) i\rightarrow \infty。在实践中,这种基本方法是不切实际的,因为动作价值函数是针对每个序列单独估计的,没有任何概括。相反,通常使用函数逼近器来估计动作值函数 Q(s,a;\theta)\approx Q^{*}(s,a).在强化学习社区中,这通常是线性函数逼近器,但有时也会使用非线性函数逼近器,例如神经网络。我们将权重为 \theta的神经网络函数逼近器称为 Q 网络。一个Q网络可以通过调整迭代 i 处的参数 \theta来训练 Q 网络,以减少贝尔曼方程中的均方误差,其中最优目标值 r + \gamma max_{a^{'}}Q^{*}(s^{'},a^{'})替换为近似目标值y = r + \gamma max_{a^{'}}Q(s^{'},a^{'};\theta_{i}^{-})使用来自先前迭代的参数 \theta 。这导致损失函数L_i(\theta _i) 的序列在每次迭代 i 时发生变化,

请注意,目标取决于网络权重;这与监督学习使用的目标形成鲜明对比,后者在学习开始之前就已确定。在优化的每个阶段,我们在优化第 i 个损失函数L_i(\theta _i)时保持前一次迭代 \theta _i的参数固定,从而产生一系列明确定义的优化问题。最后一项是目标的方差,它不依赖于我们当前正在优化的参数 \theta _i,因此可以被忽略。将损失函数与权重微分,我们得到以下梯度:

通过随机梯度下降来优化损失函数通常在计算上是方便的,而不是计算上述梯度中的全部期望。通过在每个时间步后更新权重、使用单个样本替换期望以及设置 \theta ^{-}_i = \theta _{i-1}.

请注意,该算法是无模型的:它直接使用模拟器中的样本来解决强化学习任务,而无需明确估计奖励和转换动态 P(r,s^{'}|s,a)。也是off-policy的:它学习贪婪策略 a = argmax_{a^{'}}Q(s,a^{'};\theta) 遵循确保充分探索状态空间的行为分布。在实践中,行为分布通常是通过 \varepsilon贪婪策略来选择的,该策略遵循概率为 1 - \varepsilon的贪婪策略并选择概率为 \varepsilon的随机动作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值