Playing Atari with Deep Reinforcement Learning

Playing Atari with Deep Reinforcement Learning

我们提出了第一个利用强化学习直接从高维感官输入成功学习控制策略的深度学习模型。该模型是一个卷积神经网络,用Q-learning的一个变种进行训练,其输入是原始像素,其输出是一个估计未来奖励的价值函数。我们将我们的方法应用于街机学习环境中的七个Atari 2600游戏,没有调整结构或学习算法。我们发现,它在其中6个游戏上的表现超过了以前所有的方法,在其中3个游戏上超过了人类专家。

1 Introduction

学习直接从视觉和语音等高维感官输入中控制代理是强化学习(RL)的长期挑战之一。在这些领域操作的大多数成功的RL应用都依赖于手工制作的特征与线性值函数或策略表示相结合。显然,这种系统的性能在很大程度上依赖于特征表示的质量。

深度学习的最新进展使得从原始感官数据中提取高级特征成为可能,从而在计算机视觉[11, 22, 16]和语音识别[6, 7]方面取得了突破。这些方法利用了一系列的神经网络架构,包括卷积网络、多层感知器、受限玻尔兹曼机和递归神经网络,并利用了监督和无监督学习。似乎很自然地要问,类似的技术是否也能对感官数据的RL有益。

然而,从深度学习的角度来看,强化学习提出了几个挑战。首先,到目前为止,大多数成功的深度学习应用都需要大量的标记训练数据。另一方面,RL算法必须能够从标量奖励信号中学习,该信号经常是稀疏的、有噪声的和延迟的。与监督学习中发现的输入和目标之间的直接关联相比,行动和结果奖励之间的延迟可能长达数千个时间段(timesteps),似乎特别令人生畏。另一个问题是,大多数深度学习算法假设数据样本是独立的,而在强化学习中,人们通常会遇到高度相关的状态序列。此外,在RL中,数据分布随着算法学习新的行为而改变,这对于假设有固定基础分布的深度学习方法来说是有问题的

本文表明,卷积神经网络可以克服这些挑战,在复杂的RL环境中从原始视频数据中学习成功的控制策略。该网络是用Q-learning[26]算法的一个变种来训练的,用随机梯度下降来更新权重。为了缓解相关数据和非平稳分布的问题,我们使用了一种experience replay mechanism[13],该机制对以前的转换(transitions)进行随机采样,从而使训练分布在许多过去的行为中变得平滑。

我们将我们的方法应用于一系列在Arcade Learning Environment(ALE)中实现的Atari 2600游戏[3]。Atari 2600是一个具有挑战性的RL测试平台,它为agents提供了高维度的视觉输入(210×160 RGB视频,60Hz)和一系列多样化的、有趣的任务,这些任务被设计成对人类玩家来说是困难的。我们的目标是创建一个单一的神经网络代理,能够成功地学习玩尽可能多的游戏。

网络没有被提供任何游戏特定的信息或手工设计的视觉特征,也不了解模拟器的内部状态;它只从视频输入、奖励和终端信号以及可能的行动集合中学习,就像人类玩家一样。此外,网络结构和用于训练的所有超参数在所有游戏中都保持不变。到目前为止,该网络在我们尝试的七种游戏中的六种上的表现超过了以前所有的RL算法,在其中三种上超过了人类专家玩家。图1提供了用于训练的五个游戏的截图样本。

在这里插入图片描述

2 Background

我们考虑的任务是,agent与环境E互动,在这种情况下是Atari模拟器,在一连串的行动、观察和奖励中。在每个 time-step,agent从合法游戏行动的集合中选择一个行动, A = { 1 , . . , K } \mathcal A=\{1, . . , K\} A={1,..,K}. 该行动被传递给仿真器并修改其内部状态和游戏得分。一般来说,E可能是随机的。仿真器的内部状态不被代理观察;相反,它从仿真器观察到一个图像 x t ∈ R d x_t∈\mathbb R^d xtRd,这是一个代表当前屏幕的原始像素值的向量。此外,它还收到一个代表游戏分数变化的奖励 r t r_t rt。请注意,一般来说,游戏得分可能取决于整个先前的行动和观察序列;关于一个行动的反馈可能只有在经过成千上万个时间步骤之后才能收到。

由于代理人只观察到当前屏幕的图像,任务被部分观察到,许多模拟器的状态在感知上是不一致的,也就是说,不可能只从当前屏幕 x t x_t xt中完全了解当前情况。因此,我们考虑行动和观察的序列, s t = x 1 , a 1 , x 2 , . . . , a t − 1 , x t s_t = x_1, a_1, x_2, ..., a_{t-1}, x_t st=x1,a1,x2,...,at1,xt,并学习取决于这些序列的游戏策略。仿真器中的所有序列都被假定为在有限的时间步数内终止。这种形式主义产生了一个大型但有限的马尔科夫决策过程(MDP),其中每个序列是一个不同的状态。因此,我们可以将标准的强化学习方法用于MDP,只需使用完整的序列 s t s_t st作为时间t的状态表示。

代理人的目标是通过选择行动的方式与仿真器互动,使未来的回报最大化。我们做了一个标准的假设,即未来的回报在每个时间步数上折现为γ系数,并将时间t的未来折现回报定义为 R t = Σ t ′ = t T γ t ′ − t r t ′ R_t=\Sigma^T_{t'=t}γ^{t'-t}r_{t'} Rt=Σt=tTγttrt,其中T是游戏终止的时间步数。我们将最佳行动价值函数 Q ∗ ( s , a ) Q^∗(s, a) Q(s,a)定义为在看到某个序列s并采取某个行动a后,遵循任何策略所能实现的最大预期收益, Q ∗ ( s , a ) = m a x π   E [ R t ∣ s t = s , a t = a , π ] Q^∗(s, a)=max_π\ \mathbb E [R_t|s_t = s, a_t = a, π] Q(s,a)=maxπ E[Rtst=s,at=a,π],其中π是将序列映射到行动(或行动分布)的策略。

最佳行动-价值函数服从于一个重要的特性,即贝尔曼方程。这基于以下的直觉:如果在下一个时间步的序列 s ′ s' s的最优值 Q ∗ ( s ′ , a ′ ) Q^∗(s', a') Q(s,a)对于所有可能的行动 a ′ a' a都是已知的,那么最优策略就是选择行动 a ′ a' a,使 r + γ Q ∗ ( s ′ , a ′ ) r+γQ^∗(s', a') r+γQ(s,a)的预期值最大化:

在这里插入图片描述

许多强化学习算法的基本思想是估计行动值函数,通过使用贝尔曼方程作为迭代更新, Q i + 1 ( s , a ) = E [ r + γ   m a x a ′ Q i ( s ′ , a ′ ) ∣ s , a ] Q_{i+1}(s, a) =\mathbb E [r + γ\ max_{a'} Q_i(s', a')|s, a] Qi+1(s,a)=E[r+γ maxaQi(s,a)s,a] 。这样的价值迭代算法会收敛到最佳行动价值函数, Q i → Q ∗ Q_i → Q^∗ QiQ,as i → ∞ i → ∞ i[23]。

在实践中,这种基本方法是完全不切实际的,因为动作值函数是为每个序列单独估计的,没有任何概括。相反,通常使用一个函数近似器来估计动作值函数, Q ( s , a ; θ ) ≈ Q ∗ ( s , a ) Q(s,a;θ)≈Q^∗(s,a) Q(saθ)Q(sa)。在强化学习领域,这通常是一个线性函数近似器,但有时也会使用非线性函数近似器,如神经网络。我们把具有权重θ的神经网络函数近似器称为Q网络。Q网络可以通过最小化损失函数 L i ( θ i ) L_i(θ_i) Li(θi)序列来训练,该序列在每个迭代i中都会发生变化。

在这里插入图片描述

其中 y i = E s ′ ∼ E [ r + γ   m a x a ′ Q ( s ′ , a ′ ; θ i − 1 ) ∣ s , a ] y_i = E_{s'∼\mathcal E} [r + γ\ max_{a'} Q(s', a'; θ_{i-1})|s, a] yi=EsE[r+γ maxaQ(s,a;θi1)s,a]是iteration i的目标,ρ(s, a)是sequences s和动作a的概率分布,我们称之为行为分布。在优化损失函数 L i ( θ i ) L_i(θ_i) Li(θi)时,前一次迭代的参数 θ i − 1 θ_{i-1} θi1是固定的。请注意,目标取决于网络权重;这与用于监督学习的目标不同,后者在学习开始前就已固定。将将损失函数与权值进行微分,我们得到下面的梯度,

在这里插入图片描述

与其在上述梯度中计算全部期望值,不如通过随机梯度下降来优化损失函数,这在计算上是有利的。如果权重在每个时间步之后被更新,并且期望值分别被行为分布ρ和仿真器E的单个样本所取代,那么我们就得到了熟悉的Q-learning算法[26]。(If the weights are updated after every time-step, and the expectations are replaced by single samples from the behaviour distribution ρ and the emulator E respectively, then we arrive at the familiar Q-learning algorithm [26].)

请注意,这种算法是model-free:它直接使用仿真器E的样本来解决强化学习任务,而不明确构建E的估计值。它也是 off-policy:它学习贪婪策略 a = m a x a   Q ( s , a ; θ ) a = max_a\ Q(s, a; θ) a=maxa Q(s,a;θ),同时遵循一个行为分布,确保对状态空间的充分探索。 In practice, the behaviour distribution is often selected by an ϵ \epsilon ϵ-greedy strategy that follows the greedy strategy with probability 1 − ϵ \epsilon ϵ and selects a random action with probability ϵ \epsilon ϵ.

3 Related Work

也许强化学习最有名的成功案例是TD-gammon,一个完全通过强化学习和自我发挥来学习的双陆棋程序,并达到了超越人类的水平[24]。TD-gammon使用了一种类似于Q-learning的无模型强化学习算法,并使用一个隐藏层的多层感知器来逼近价值函数。

然而,早期对TD-gammon的后续尝试,包括对国际象棋、围棋和跳棋的相同方法的应用都不太成功。这导致人们普遍认为,TD-gammon方法是一个特例,只在双陆棋中有效,也许是因为掷骰子的随机性有助于探索状态空间,也使价值函数特别平滑[19]。

此外,有研究表明,将无模型的强化学习算法,如Qlearning与非线性函数近似器[25],或实际上与off-policy学习[1]相结合,可能会导致Q网络的分歧(diverge)。随后,强化学习的大部分工作集中在具有更好收敛保证的线性函数近似器上[25]

最近,人们对深度学习与强化学习的结合又有了新的兴趣。深度神经网络被用来估计环境E;受限玻尔兹曼机被用来估计价值函数[21];或策略[9]。此外,Q-learning的发散问题已经被梯度时间差法(gradient temporal-difference methods)部分解决。这些方法被证明在用非线性函数近似器评估固定策略时收敛[14];或者在用Q-learning的限制性变体学习线性函数近似的控制策略时收敛[15]。然而,这些方法还没有被扩展到非线性控制。

也许与我们的方法最相似的前期工作是神经拟合Q-learning(NFQ)[20]。NFQ优化方程2中的损失函数序列,使用RPROP算法来更新Q-网络的参数。然而,它使用的是批量更新,每次迭代的计算成本与数据集的大小成正比,而我们考虑的是随机梯度更新,每次迭代的恒定成本很低,并可扩展到大数据集。NFQ也被成功地应用于使用纯视觉输入的简单现实世界的控制任务,首先使用深度自动编码器来学习任务的低维表示,然后将NFQ应用于该表示[12]。

相比之下,我们的方法是直接从视觉输入中进行端到端的强化学习;因此,它可以学习与分辨动作值直接相关的特征。Q-learning以前也曾与experience replay和一个简单的神经网络相结合[13],但同样是从低维状态而不是原始视觉输入开始。

使用Atari 2600模拟器作为强化学习平台是由[3]介绍的,他应用标准的强化学习算法与线性函数近似和通用视觉特征。随后,通过使用更多的特征,并使用tug-of-war hashing将特征随机投射到一个较低维度的空间,结果得到了改善[2]。HyperNEAT进化架构[8]也被应用于Atari平台,它被用来进化(分别为每个不同的游戏)一个代表该游戏策略的神经网络。当使用模拟器的重置设施针对确定性序列反复训练时,这些策略能够利用几个雅达利游戏的设计缺陷。

4 Deep Reinforcement Learning

最近在计算机视觉和语音识别方面的突破依赖于在非常大的训练集上有效训练深度神经网络。最成功的方法是直接从原始输入进行训练,使用基于随机梯度下降的轻型更新。通过向深度神经网络输入足够的数据,通常可以学到比手工制作的特征更好的表征[11]。这些成功的经验促使我们采取强化学习的方法。我们的目标是将强化学习算法连接到一个深度神经网络,该网络直接在RGB图像上运行,并通过使用随机梯度更新来有效地处理训练数据。

Tesauro的TD-Gammon架构为这种方法提供了一个出发点。这个架构直接从算法与环境的互动(或者在双陆棋的情况下,通过self-play游戏)中提取的经验的 on-policy samples样本 s t , a t , r t , s t + 1 , a t + 1 + s_t, a_t, rt, s_{t+1}, a_{t+1}+ st,at,rt,st+1,at+1+来更新估计价值函数的网络参数。由于这种方法在20年前就能超越最好的人类双陆棋手,我们自然会想,20年的硬件改进,加上现代深度神经网络架构和可扩展的RL算法,是否会产生重大进展。

与TD-Gammon和类似的在线方法相比,我们利用一种被称为experience replay的技术[13],我们将agent在每个时间步长的经验 e t = ( s t , a t , r t , s t + 1 ) e_t = (s_t, a_t, r_t, s_{t+1}) et=(st,at,rt,st+1)存储在一个数据集 D = e 1 , . . . , e N D = e_1, ..., e_N D=e1,...,eN中,通过许多情节汇集到一个replay memory。在算法的内循环中,我们对经验样本 e ∼ D e∼\mathcal D eD应用Q-learning更新,或称minibatch更新,这些样本是从存储样本池中随机抽取的。在进行经验回放后,agent根据贪婪政策选择并执行一个行动。由于使用任意长度的历史作为神经网络的输入是很困难的,所以我们的q函数将工作于由函数 ϕ \phi ϕ产生的历史记录的固定长度表示。完整的算法,我们称之为深度q学习,在算法1中提出。

这种方法比标准的在线Q-learning[23]有几个优点。首先,每一步经验都有可能用于许多权重更新,这使得数据效率更高。第二,直接从连续的样本中学习是低效的,因为样本之间有很强的关联性;随机化的样本打破了这些关联性,因此减少了更新的方差。第三,在策略学习时,当前参数决定了参数训练的下一个数据样本。例如,如果动作最大化是向左移动,那么训练样本将被来自左侧的样本所控制;如果最大行动向右移动那么训练分布也会向右移动。很容易看到不必要的反馈循环可能会出现,参数可能会卡在一个糟糕的局部最小值,甚至灾难性地发散[25]。
在实践中,我们的算法只在重放存储器中存储最后的N个经验元组,并在执行更新时从D中均匀地随机采样。这种方法在某些方面是有局限性的,因为内存缓冲区不能区分重要的transitions ,而且由于有限的内存大小N,总是用最近的transitions 来覆盖。同样,统一采样对重放内存中的所有transitions 给予同等的重视。一个更复杂的抽样策略可能会强调我们可以从中学习到最多的transitions ,类似于prioritized sweeping[17]。

4.1 Preprocessing and Model Architecture

直接处理原始的Atari帧,即210×160像素的图像,有128种颜色的调色板,在计算上要求很高,所以我们应用了一个基本的预处理步骤,旨在减少输入维度。对原始帧进行预处理,首先将其RGB表示转换为灰度,并将其下采样为110×84的图像。最终的输入表示是通过裁剪一个84×84的图像区域来获得的,该区域大致涵盖了游戏区域。最后的裁剪阶段是唯一需要的,因为我们使用了来自[11]的二维卷积的GPU实现,它期待着方形输入。在本文的实验中,算法1中的函数 ϕ \phi ϕ将这种预处理应用于历史的最后4帧,并将它们堆叠起来以产生Q函数的输入。

使用神经网络参数化Q有几种可能的方法。由于Q将历史动作对映射到它们的Q值的标量估计,历史和动作已经被一些先前的方法用作神经网络的输入[20,12]。这种架构的主要缺点是,需要单独的 forward pass来计算每个动作的q值,从而导致成本随动作数量线性增加。我们使用的架构是,每个可能的行动都有一个单独的输出单元,而只有state representation是神经网络的输入。

输出对应于输入状态下各个动作的预测Q值。这种结构的主要优点是能够计算一个给定状态下所有可能的行动的Q值,只需通过网络的一次前向传递。

我们现在描述用于所有七个Atari游戏的确切结构。神经网络的输入包括由 ϕ \phi ϕ产生的84×84×4的图像。第一个隐藏层将16个 stride为4的8×8滤波器与输入图像进行卷积,并应用一个rectifier nonlinearity[10, 18]。第二个隐藏层用stride为2的32个4×4的滤波器进行卷积,然后再进行rectifier nonlinearity处理。最后一个隐藏层是全连接的,由256个rectifier units组成。输出层是一个完全连接的线性层,每个有效动作都有一个输出。在我们考虑的游戏中,有效动作的数量在4到18之间变化。我们把用我们的方法训练的卷积网络称为深度Q网络(DQN)。

5.1 Training and Stability

在监督学习中,人们可以通过在训练集和验证集上对模型进行评估来轻松跟踪其训练过程中的表现。然而,在强化学习中,准确评估一个agent在训练期间的进展可能是一个挑战。正如[3]所建议的那样,我们的评估指标是代理在一个情节或游戏中收集的总奖励,在一些游戏中的平均值,我们在训练中定期计算它。平均总奖励指标往往是非常嘈杂的,因为策略权重的微小变化会导致策略访问的状态分布发生巨大变化。

图2中最左边的两幅图显示了在Seaquest和Breakout游戏的训练过程中,平均总奖励的演变情况。这两张平均奖励图确实相当嘈杂,给人的印象是学习算法没有取得稳定的进展。另一个更稳定的指标是策略的估计行动价值函数Q,它提供了agent任何给定状态遵循其策略可以获得多少折现奖励的估计。我们在训练开始前通过运行随机策略收集一组固定的状态,并跟踪这些状态的最大预测Q的平均值。

图2中最右边的两幅图显示,平均预测Q的增长比agent获得的平均总奖励要平稳得多,在其他五场比赛中绘制同样的指标也会产生类似的平稳曲线。在训练期间,除了看到预测Q的相对平滑的改善外,我们在任何实验中都没有遇到任何发散问题。这表明,尽管缺乏任何理论上的收敛保证,我们的方法能够以稳定的方式使用强化学习信号和随机梯度下降来训练大型神经网络。

在这里插入图片描述
图2:左边的两幅图分别显示了训练期间Breakout和Seaquest的per episode平均奖励。这些统计数字是通过运行 ϵ \epsilon ϵ=0.05的e-greedy策略10000步计算出来的。右边的两幅图分别显示了在Breakout和Seaquest上保持的一组状态的平均最大预测行动值。一个epoch相当于50000个minibatch权重更新或大约30分钟的训练时间。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值