Playing Atari with Deep Reinforcement Learning

文章标题:使用深度强化学习玩雅达利游戏
作者/机构:Volodymyr Mnih, Koray Kavukcuoglu, David Silver, Alex Graves, Ioannis Antonoglou, Daan Wierstra, Martin Riedmiller (DeepMind Technologies)

A1 主要贡献

本文提出首个能够直接从高维感官输入(如原始像素)中,通过强化学习成功学习控制策略的深度学习模型。

图1:五款雅达利2600游戏的截图:(从左到右)Pong, Breakout, Space Invaders, Seaquest, Beam Rider
图1:五款雅达利2600游戏的截图:(从左到右)Pong, Breakout, Space Invaders, Seaquest, Beam Rider

A3 背景知识与相关工作

背景知识

智能体与环境的交互 本文考虑智能体与环境E(在此为雅达利模拟器)在一系列动作、观察和奖励中进行交互的任务。在每个时间步,智能体从合法的游戏动作集合 $A = \{1, ..., K\}$ 中选择一个动作 $a_t$。该动作被传递给模拟器,从而改变其内部状态和游戏得分。环境E通常是随机的。智能体无法观察到模拟器的内部状态,而是观察到一个来自模拟器的图像 $x_t \in R^d$,这是一个代表当前屏幕的原始像素值向量。此外,它还会收到一个代表游戏得分变化的奖励 $r_t$。值得注意的是,游戏得分可能取决于整个先前的动作和观察序列,对某个动作的反馈可能在数千个时间步之后才能收到。

部分可观察性与状态定义 由于智能体仅观察当前屏幕的图像,任务是部分可观察的,并且许多模拟器状态在感知上是混淆的(perceptually aliased),即仅从当前屏幕 $x_t$ 无法完全理解当前情况。因此,本文考虑动作和观察的序列,$s_t = x_1, a_1, x_2, ..., a_{t-1}, x_t$,并学习依赖于这些序列的游戏策略。模拟器中的所有序列都假定在有限的时间步内终止。这种形式化产生了一个巨大但有限的马尔可夫决策过程(MDP),其中每个序列都是一个独特的状态。因此,我们可以通过简单地使用完整的序列 $s_t$ 作为时间 $t$ 的状态表示,来应用MDP的标准强化学习方法。

目标函数与最优动作-价值函数 智能体的目标是通过选择动作与模拟器交互,以最大化未来的奖励。本文做出标准假设,即未来奖励按每时间步因子 $\gamma$ 进行折扣,并将时间 $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')$ 是已知的,那么最优策略就是选择能最大化 $r + \gamma Q^*(s', a')$ 期望值的动作 $a'$。

贝尔曼方程
贝尔曼方程

价值迭代与函数逼近 许多强化学习算法的基本思想是利用贝尔曼方程作为迭代更新来估计动作-价值函数,$Q_{i+1}(s, a) = E[r + \gamma \max_{a'} Q_i(s', a')|s, a]$。这类价值迭代算法会收敛到最优动作-价值函数,即当 $i \to \infty$ 时,$Q_i \to Q^*$ 【23, Reinforcement Learning: An Introduction, MIT Press, 1998】。在实践中,这种基本方法完全不切实际,因为它为每个序列单独估计动作-价值函数,没有任何泛化能力。因此,通常使用函数逼近器来估计动作-价值函数,$Q(s, a; \theta) \approx Q^*(s, a)$。在强化学习社区中,这通常是线性函数逼近器,但有时也使用非线性函数逼近器,如神经网络。

Q-网络与损失函数 本文将使用权重为 $\theta$ 的神经网络函数逼近器称为Q-网络。Q-网络可以通过最小化在每次迭代 $i$ 时都会变化的损失函数序列 $L_i(\theta_i)$ 来进行训练。

损失函数
损失函数

其中,$y_i = E_{s' \sim E}[r + \gamma \max_{a'} Q(s', a'; \theta_{i-1})|s, a]$ 是迭代 $i$ 的目标,而 $\rho(s, a)$ 是我们称之为行为分布的序列 $s$ 和动作 $a$ 上的概率分布。在优化损失函数 $L_i(\theta_i)$ 时,前一次迭代的参数 $\theta_{i-1}$ 是固定的。注意,目标依赖于网络权重,这与监督学习中在学习开始前就固定的目标形成对比。

梯度计算 对损失函数关于权重求导,我们得到以下梯度:

梯度
梯度

随机梯度下降与Q-learning 与计算上述梯度中的完整期望值相比,通过随机梯度下降来优化损失函数通常在计算上更为便捷。如果权重在每个时间步后都更新,并且期望值分别被行为分布 $\rho$ 和模拟器 $E$ 的单个样本所替代,那么我们就得到了众所周知的Q-learning算法【26, Q-learning, Machine learning, 1992】。

算法特性:无模型与离策略 该算法是无模型的(model-free):它直接使用从模拟器E中采样的样本来解决强化学习任务,而无需显式地构建E的估计模型。它也是离策略的(off-policy):它学习贪婪策略 $a = \max_a Q(s, a; \theta)$,同时遵循一个确保对状态空间进行充分探索的行为分布。在实践中,行为分布通常通过 $\epsilon$-greedy策略来选择,该策略以 $1-\epsilon$ 的概率遵循贪婪策略,以 $\epsilon$ 的概率选择一个随机动作。

相关工作

早期成功案例:TD-Gammon 强化学习最著名的成功案例或许是TD-gammon,一个西洋双陆棋程序,它完全通过强化学习和自我对弈进行学习,并达到了超人的水平【24, Temporal difference learning and td-gammon, Communications of the ACM, 1995】。TD-gammon使用了一种类似于Q-learning的无模型强化学习算法,并使用带有一个隐藏层的多层感知器来逼近价值函数。

早期的挑战与普遍看法 然而,早期对TD-gammon的跟进尝试,包括将相同方法应用于国际象棋、围棋和跳棋,都未能取得同样成功。这导致一种普遍的看法,即TD-gammon的方法是一个特例,只在西洋双陆棋中有效,可能是因为骰子投掷的随机性有助于探索状态空间,并使价值函数特别平滑【19, Why did td-gammon work, Advances in Neural Information Processing Systems 9, 1996】。

非线性函数逼近的收敛性问题 此外,有研究表明,将像Q-learning这样的无模型强化学习算法与非线性函数逼近器【25, An analysis of temporal-difference learning with function approximation, IEEE Transactions on, 1997】结合,或者与离策略学习【1, Residual algorithms: Reinforcement learning with function approximation, ICML 1995】结合,都可能导致Q-网络发散。因此,之后强化学习的大部分工作都集中在具有更好收敛性保证的线性函数逼近器上。

近期进展 近来,将深度学习与强化学习相结合的兴趣重新燃起。深度神经网络已被用于估计环境E;受限玻尔兹曼机已被用于估计价值函数【21, Reinforcement learning with factored states and actions, Journal of Machine Learning Research, 2004】或策略【9, Actor-critic reinforcement learning with energy-based policies, European Workshop on Reinforcement Learning, 2012】。此外,Q-learning的发散问题已通过梯度时间差分(gradient temporal-difference)方法得到部分解决。这些方法在评估固定策略时,使用非线性函数逼近器被证明是收敛的【14, Convergent Temporal-Difference Learning with Arbitrary Smooth Function Approximation, NIPS 22, 2009】;或者在使用线性函数逼近学习控制策略时,使用Q-learning的受限变体也是收敛的【15, Toward off-policy learning control with function approximation, ICML 2010】。然而,这些方法尚未被扩展到非线性控制。

最相似的先前工作:NFQ 与本文方法最相似的先前工作是神经拟合Q学习(Neural Fitted Q-learning, NFQ)【20, Neural fitted q iteration–first experiences with a data efficient neural reinforcement learning method, ECML 2005】。NFQ通过使用RPROP算法更新Q-网络的参数来优化方程2中的损失函数序列。然而,它使用的是批处理更新,每次迭代的计算成本与数据集的大小成正比,而本文考虑的是随机梯度更新,每次迭代的成本较低且恒定,能够扩展到大型数据集。NFQ也已成功应用于简单的现实世界控制任务,其方法是先使用深度自编码器学习任务的低维表示,然后将NFQ应用于此表示【12, Deep auto-encoder neural networks in reinforcement learning, IJCNN 2010】。相比之下,本文的方法是端到端地直接从视觉输入应用强化学习,因此它可以学习到与区分动作价值直接相关的特征。Q-learning之前也曾与经验回放和一个简单的神经网络结合【13, Reinforcement learning for robots using neural networks, Technical report, 1993】,但同样是从低维状态开始,而非原始视觉输入。

Atari 2600平台上的先前工作 将Atari 2600模拟器作为强化学习平台是由【3, The arcade learning environment: An evaluation platform for general agents, Journal of Artificial Intelligence Research, 2013】引入的,他们应用了带有线性函数逼近和通用视觉特征的标准强化学习算法。随后,通过使用更多的特征,并使用“拔河”哈希(tug-of-war hashing)将特征随机投影到低维空间,结果得到了改善【2, Sketch-based linear value function approximation, NIPS 25, 2012】。HyperNEAT演化架构【8, A neuro-evolution approach to general atari game playing, 2013】也已应用于Atari平台,用于(为每个不同的游戏单独)演化一个代表该游戏策略的神经网络。当使用模拟器的重置功能对确定性序列进行重复训练时,这些策略能够利用几个Atari游戏中的设计缺陷。

A2 方法细节

深度强化学习的动机 近期计算机视觉和语音识别领域的突破依赖于在非常大的训练集上高效地训练深度神经网络。最成功的方法是直接从原始输入进行训练,使用基于随机梯度下降的轻量级更新。通过向深度神经网络提供足够的数据,通常可以学到比手工制作的特征更好的表示【11, Imagenet classification with deep convolutional neural networks, NIPS 25, 2012】。这些成功启发了我们对强化学习的方法。我们的目标是将一个强化学习算法与一个直接在RGB图像上操作的深度神经网络连接起来,并通过使用随机梯度更新来高效地处理训练数据。

经验回放机制的引入 Tesauro的TD-Gammon架构为这种方法提供了一个起点。该架构直接从算法与环境交互(或在西洋双陆棋中通过自我对弈)中获得的在策略(on-policy)经验样本 $s_t, a_t, r_t, s_{t+1}, a_{t+1}$ 来更新估计价值函数的网络参数。与TD-Gammon和类似的在线方法不同,我们利用一种称为经验回放(experience replay)的技术【13, Reinforcement learning for robots using neural networks, Technical report, 1993】。我们将智能体在每个时间步的经验 $e_t = (s_t, a_t, r_t, s_{t+1})$ 存储在一个数据集 $D = e_1, ..., e_N$ 中,这个数据集汇集了许多回合(episodes)的经验,形成一个回放记忆库。在算法的内循环中,我们对从存储样本池中随机抽取的经验样本 $e \sim D$ 应用Q-learning更新或小批量更新。执行经验回放后,智能体根据 $\epsilon$-greedy策略选择并执行一个动作。由于将任意长度的历史作为神经网络的输入可能很困难,我们的Q函数转而工作在一个由函数 $\phi$ 产生的固定长度的历史表示上。我们称之为深度Q学习(deep Q-learning)的完整算法在算法1中呈现。

算法1:带经验回放的深度Q学习
算法1:带经验回放的深度Q学习

经验回放的优势 与标准的在线Q-learning【23, Reinforcement Learning: An Introduction, MIT Press, 1998】相比,这种方法有几个优势。
- 首先,每一步的经验都可能被用于多次权重更新,从而提高了数据效率。
- 其次,直接从连续的样本中学习是低效的,因为样本之间存在强相关性;随机化样本可以打破这些相关性,从而减少更新的方差。
- 第三,在在策略(on-policy)学习中,当前的参数决定了下一个用于训练参数的数据样本。例如,如果最大化动作是向左移动,那么训练样本将主要由左侧的样本构成;如果最大化动作接着切换到右侧,训练分布也会随之切换。这很容易产生不必要的反馈循环,导致参数陷入一个差的局部最小值,甚至灾难性地发散【25, An analysis of temporal-difference learning with function approximation, IEEE Transactions on, 1997】。通过使用经验回放,行为分布在其许多先前的状态上被平均,从而平滑了学习过程,避免了参数的振荡或发散。注意,当通过经验回放学习时,有必要进行离策略(off-policy)学习(因为我们当前的参数与生成样本时使用的参数不同),这促使我们选择Q-learning。

经验回放的实现细节与局限性 在实践中,我们的算法只在回放记忆中存储最近的 $N$ 个经验元组,并在执行更新时从 $D$ 中均匀随机抽样。这种方法在某些方面是有限的,因为记忆缓冲区不会区分重要的转换,并且由于有限的内存大小 $N$,总是用最近的转换覆盖旧的。同样,均匀采样对回放记忆中的所有转换赋予了同等的重要性。一个更复杂的采样策略可能会强调那些我们能学到最多的转换,类似于优先扫描(prioritized sweeping)【17, Prioritized sweeping: Reinforcement learning with less data and less real time, Machine Learning, 1993】。

4.1 预处理与模型架构

输入预处理 直接处理原始的雅达利帧(210×160像素、128色调色板的图像)在计算上可能要求很高,因此我们采用了一个旨在降低输入维度的基本预处理步骤。原始帧的预处理首先将其RGB表示转换为灰度图,并将其下采样至110×84的图像。最终的输入表示是通过裁剪图像的一个84×84区域获得的,该区域大致捕捉了游戏区域。最后的裁剪阶段是必需的,仅因为我们使用了来自【11, Imagenet classification with deep convolutional neural networks, NIPS 25, 2012】的2D卷积的GPU实现,该实现期望方形输入。在本文的实验中,算法1中的函数 $\phi$ 对历史记录的最后4帧应用此预处理,并将它们堆叠起来,以产生Q函数的输入。

Q网络架构设计 使用神经网络来参数化Q有几种可能的方式。由于Q将历史-动作对映射到其Q值的标量估计,一些先前的方法【20, Neural fitted q iteration–first experiences with a data efficient neural reinforcement learning method, ECML 2005】、【12, Deep auto-encoder neural networks in reinforcement learning, IJCNN 2010】已将历史和动作作为神经网络的输入。这种类型架构的主要缺点是,计算每个动作的Q值需要一次单独的前向传播,导致成本与动作数量成线性关系。我们转而使用一种架构,其中每个可能的动作都有一个单独的输出单元,只有状态表示是神经网络的输入。输出对应于输入状态下各个动作的预测Q值。这种类型架构的主要优点是,能够在给定状态下,仅通过一次网络前向传播就计算出所有可能动作的Q值。

具体的网络架构(DQN) 现在我们描述用于所有七个雅达利游戏的确切架构。
1. 输入:神经网络的输入是由 $\phi$ 产生的84×84×4的图像。
2. 第一个隐藏层:使用16个8×8的滤波器,步长为4,对输入图像进行卷积,并应用一个整流线性单元(rectifier nonlinearity, ReLU)【10, What is the best multi-stage architecture for object recognition?, CVPR 2009】、【18, Rectified linear units improve restricted boltzmann machines, ICML 2010】。
3. 第二个隐藏层:使用32个4×4的滤波器,步长为2,进行卷积,同样后面跟着一个ReLU。
4. 第三个隐藏层:是一个全连接层,由256个ReLU单元组成。
5. 输出层:是一个全连接的线性层,每个有效动作对应一个输出。在我们考虑的游戏中,有效动作的数量在4到18之间变化。我们将用我们的方法训练的卷积网络称为深度Q网络(Deep Q-Networks, DQN)。

A4 实验

实验环境

实验结果

5.1 训练与稳定性

图2:左侧两图分别显示了Breakout和Seaquest训练期间每回合的平均奖励。该统计数据是通过运行一个epsilon=0.05的e-greedy策略10000步计算的。右侧两图分别显示了在Breakout和Seaquest上,一个固定的状态集的平均最大预测动作价值。一个epoch对应50000次小批量权重更新,或大约30分钟的训练时间。
图2:左侧两图分别显示了Breakout和Seaquest训练期间每回合的平均奖励。该统计数据是通过运行一个epsilon=0.05的e-greedy策略10000步计算的。右侧两图分别显示了在Breakout和Seaquest上,一个固定的状态集的平均最大预测动作价值。一个epoch对应50000次小批量权重更新,或大约30分钟的训练时间。

5.2 价值函数可视化

图3:左图显示了Seaquest游戏一个30帧片段的预测价值函数。三个截图分别对应于标记为A、B和C的帧。
图3:左图显示了Seaquest游戏一个30帧片段的预测价值函数。三个截图分别对应于标记为A、B和C的帧。

5.3 主要评估

表1:上表比较了各种学习方法通过运行epsilon=0.05的e-greedy策略固定步数后的平均总奖励。下表报告了HNeat和DQN单次最佳表现回合的结果。HNeat产生确定性策略,总是得到相同的分数,而DQN使用epsilon=0.05的e-greedy策略。
表1:上表比较了各种学习方法通过运行epsilon=0.05的e-greedy策略固定步数后的平均总奖励。下表报告了HNeat和DQN单次最佳表现回合的结果。HNeat产生确定性策略,总是得到相同的分数,而DQN使用epsilon=0.05的e-greedy策略。

A5 结论

本文介绍了一种用于强化学习的新的深度学习模型(DQN),并展示了它仅使用原始像素作为输入,就能掌握雅达利2600电脑游戏的高难度控制策略。我们还提出了一种在线Q-learning的变体,它将随机小批量更新与经验回放记忆相结合,以简化深度网络在强化学习中的训练。我们的方法在所测试的七款游戏中的六款上取得了最先进的结果,且无需对架构或超参数进行调整。

引用文献分析