论文学习——Playing Atari with Deep Reinforcement Learning

论文学习——Playing Atari with Deep Reinforcement Learning

1 背景

在**「强化学习」(RL)领域,直接从高维的原始输入(例如图像和声音)中学习以控制「代理」(agents)是一个比较大的挑战。大部分成功的 RL 算法都依赖于「人工提取」的特征结合线性的值函数或策略表示,因此系统的表现很大程度上取决于特征提取的质量。近年来,「深度学习」**(DL)的发展使得我们可以直接从复杂的原始输入中捕获特征,而无需手工提取。然而,深度学习和强化学习又存在着一些差别,导致难以直接将深度神经网络应用于 RL:

  • DL 通常基于大量的人工标注训练数据进行训练,而 RL 则是基于可能存在**「延时」**的奖励进行学习,很难通过标准的网络结构将输入直接与奖励进行关联
  • 大部分 DL 算法都假定数据样本之间相互**「独立」**,而 RL 则一般应用于高度相关的状态序列
  • 在 RL 中当算法学习到新的行为后,数据分布可能发生改变,而 DL 通常假设数据分布是**「不变」**的

论文中提出了一种**「卷积神经网络」(CNN)以解决上述挑战,在复杂的 RL 环境中直接通过视频数据生成控制策略。该网络基于 Q-learning 算法的变种进行训练,通过随机梯度下降来更新权重。为了缓解数据相关性以及分布的不稳定性,作者使用了一种「经验回放机制」**(experience replay mechanism)来随机采样之前的状态转移,以平滑训练数据的分布。

该方法被用于多款 Atari 2600 游戏的训练,其输入为 60Hz 的 210×160 RGB 视频流。原文旨在通过**「单个网络」来学习尽可能多的游戏,即不提供游戏特定的信息以及手工设计的特征,使用完全和人类玩家同等的「视频信号」「动作集」以及「奖励」**来训练代理,且网络的结构与超参数在训练不同的游戏时保持不变。结果表明,该网络在总共七款游戏中有六款的表现超越了之前的 RL 算法,且在其中三款中击败了专业的人类玩家。下图展示了用于训练的五款游戏的截图。
在这里插入图片描述

2.1 算法解读

与之前的类似方法相比,本研究使用了一种称为**「经验回放」(experience replay)的技术,将代理在每一个时间步的体验 $e_t=(s_t,a_t,r_t,s_{t+1}) $ 存放在数据集 D = e 1 , … , e N D=e_1,…,e_N D=e1,,eN 中,通过多个回合积累为一个「回放记忆」**(replay memory)。在算法的内循环中,我们将 Q-learning 更新应用于从存储的记忆中随机采样的小批量经验样本 e ∼ D e∼D eD。在执行完经验回放后,代理循 「ϵ 贪婪策略」选择并执行一个动作。由于标准神经网络难以处理不定长的输入,所以本研究通过一个函数 ϕ 先将序列状态映射为一个「固定长度」的表示,再作为 Q-函数的输入。完整的算法称为「深度 Q-learning」,如下图所示:

在这里插入图片描述

算法的详细步骤为:首先**「初始化」容量为 N 的回放记忆 D ,以及随机权重的动作价值函数 Q;然后执行回合迭代(「外循环」,共 M 个回合),在每个回合中,先初始化序列 s 1 = x 1 s1={x1} s1=x1,并将其预处理为定长 ϕ 1 = ϕ ( s 1 ) ϕ1=ϕ(s1) ϕ1=ϕ(s1);再执行时间步迭代(「内循环」**,共 T 步),在每一步中,先基于 ϵ 策略选择动作 at(随机动作或当前最优动作),然后在模拟器中执行 at 观察奖励 r t r_t rt 和图像 x t + 1 x_{t+1} xt+1;设置$ s_{t+1}=s_t,a_t,x_{t+1}$ 并执行预处理 ϕ t + 1 = ϕ ( s t + 1 ) ϕt+1=ϕ(s_{t+1}) ϕt+1=ϕ(st+1);将当前时间步中得到的transition$(ϕ_t,a_t,r_t,ϕ_{t+1}) 存储到 D 中;基于 D 随机采样小批量的 t r a n s i t i o n 存储到 D 中;基于 D 随机采样小批量的transition 存储到D中;基于D随机采样小批量的transition (ϕ_j,a_j,r_j,ϕ_{j+1})$根据 ϕ j + 1 ϕ_{j+1} ϕj+1 是否为终止状态,计算TD target $ y_i$ 为:
y j = { r j f o r t e r m i n a l ϕ j + 1 r j + γ ∗ m a x a Q ( ϕ j + 1 , a ′ ; θ ) f o r n o n − t e r m i n a l ϕ j + 1 y_j=\begin{cases}r_j\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad \quad for \quad terminal \quad ϕ_{j+1}\\r_j+\gamma *max_aQ(ϕ_{j+1},a';θ) \quad for \quad non-terminal \quad ϕ_{j+1} \end{cases} yj={rjforterminalϕj+1rj+γmaxaQ(ϕj+1,a;θ)fornonterminalϕj+1

基于损失函数 l = ( y j − Q ( ϕ j , a j ; θ ) ) 2 l= (y_j−Q(ϕ_j,a_j;θ))^2 l=(yjQ(ϕj,aj;θ))2 执行梯度下降,更新网络参数。执行上述过程直到达到收敛条件或循环结束。

与标准 Q-learning 相比,DQN提出的方法具有如下几点优势:

  • 每一步中获得的经验都可能用于**「多次」**权重更新,这样可以提升数据的利用率;
  • 由于样本间的强**「相关性」**,直接从连续样本中学习是低效的。随机化样本可以打破这种相关性,减少更新的方差;
  • 对于 on-policy 式的学习来说,当前的参数决定了下一次训练所需的数据样本,由于执行当前动作后训练的分布会发生变化,因此延用当前策略可能会导致局部最优、参数发散等**「异常情况」**的发生;经验回放机制基于多个先前的状态对行为分布进行平均,可以平滑学习过程,避免参数的振荡和发散。同时由于使用了经验回放,梯度更新时的参数(状态)和用于生成样本的参数(状态)并不相同,因此自然需要使用 类似 Q-learning 的 「off-policy」 方法。

在实践中,本算法只在回放记忆中存储最近的 N 次回放,在执行更新时从 D 中均匀采样。这种方式存在着一定的**「局限性」**,因为其没有区分出比较重要的转移,只是单纯地用最近产生的转移覆盖之前的转移(受存储空间 N 的限制)。类似地,均匀采样也为回放记忆中的所有转移赋予了同等的重要性。在之后的研究中,可以对采样方法进行改进,关注能够学习到更多东西的转移。

2.2 预处理和模型结构

DQN模型的结构如下:

network layerchannelkernel sizestrideactivationoutput size
InputNANANANA84*84*4
first Conv168*84Relu20*20*16
second Conv324*42Relu9*9*32
Hidden layerNANANARelu256
OutputNANANANA4~18

上述结构对于所有七款游戏都相同,神经网络的输入为$ ϕ $映射的 84×84×4 的图像,第一层隐藏层为卷积层,包含 16 个 8×8 的卷积核,步长为 4,激活函数为 ReLU,对应输出为 20×20×16;第二层隐藏层也为卷积层,包含 32 个 4×4 的卷积核,步长为 2,激活函数为 ReLU,对应输出为 9×9×32;最后一层隐藏层为全连接层,包含 256 个整流单元,输出为 256×1;最终输出层同样为全连接层,输出一个包含每个合法动作 Q 值的向量。参与实验的游戏的合法动作数量为 4 到 18 个不等。本文中使用的卷积神经网络被称为**「深度 Q 网络」**(DQN)。

原始的 Atari 图像为 210×160 像素,每个像素可选颜色为 128 种。为了减小计算复杂度,论文对图像进行了一个简单的预处理步骤以减少输入的维度。

  • 原始图像首先被转化为灰度图像,然后降采样为 110×84 像素大小。
  • 由于使用的 2D 卷积 GPU 实现要求输入为正方形,所以还需要将图像裁剪为 84×84 的大小,作为最终的输入表示。

在本研究的试验中,算法中函数$ϕ $将一个状态序列的最后 4 帧进行上述预处理,并堆叠在一起作为 Q-函数的输入。

关于网络的结构,之前的一些研究将历史状态和动作一起作为网络的输入,这种结构的缺点在于对每一个动作都需要单独进行一次前向传播。本研究中使用的网络结构对于每个可能的动作都提供一个单独的输出(因此动作不能连续),只有**「状态」**被作为网络的输入。网络的输出对应输入状态的每一个可能动作的预测 Q 值。这种结构的优点在于其能够仅通过一次前向传播就计算出一个给定状态的所有可能动作的 Q 值。

3 实验

原文的实验共涉及七款游戏,分别是 Beam Rider、Breakout、Enduro、Pong、Q*bert、Seaquest 和 Space Invaders。如之前所述,为了证明模型的鲁棒性,所有游戏使用相同的网络结构、学习算法和超参数设置。与真实游戏反馈相比,实验的唯一不同在于对游戏的奖励进行了修改。由于不同游戏的实际奖励得分差异较大,为了便于训练,将所有的正向奖励置为 1,负向奖励置为 -1,不变则为 0。这种裁剪可以帮助减少训练误差,让不同的游戏可以使用相同的学习率,提升最终的表现。

实验中使用的具体算法和超参数设置如下:

  • 学习率调整:RMSProp 算法
  • 小批量大小: 32
  • ϵ 策略:前 1,000,000 帧画面中 ϵ 线性地从 1 到 0.1 下降;之后保持 0.1(测试时使用 0.05)
  • 训练总时长:10,000,000 帧画面
  • 回放记忆:最近的 1,000,000 帧画面

此外,实验中还使用了一个简单的 「frame-skipping」 技巧。代理只会在每 k 帧进行观察并选择动作,而不是每一帧,在跳过的帧中重复最近一次选择的动作。由于简单运行模拟器比控制代理选择动作的计算量小很多,所以这一技术可以帮助代理在不显著增加运行时间的前提下玩更多次的游戏。原文中,对于除 Space Invaders 之外的游戏设置了 k=4,由于该游戏设置为 4 会导致激光无法识别,所以设置 k=3。

3.1 训练和稳定性

在监督学习中,我们可以通过模型在训练集和验证集上的表现对其进行评估。然而在强化学习中,在训练中并没有一个很好的评估标准。本研究首先计算了不同训练回合下代理所获得的**「总奖励」,但发现总奖励的变化趋势波动较大,这可能是因为一个策略权重的微小改变会导致策略所访问状态分布的较大变化。下图中左边两张给出了在两个不同游戏中的平均总奖励随训练回合的变化(平均是指分游戏统计),展示效果不是很理想。第二种评估方式则是基于策略的「动作价值函数」** Q,其估计了代理在遵循当前策略下所能得到的未来折扣奖励。实践证明该指标要比第一种更加稳定。具体来说,首先在训练开始前执行随机策略,采集一个固定的状态集合,然后跟踪不同训练回合时这些状态对应的最大预测 Q 值(从所有可能的动作中选)的平均值。下图中右边两张展示了平均预测 Q 值的平滑上升趋势,其他五个游戏也展示了类似的平滑曲线,在训练过程中也没有出现任何不收敛的问题。虽然缺乏理论证明,但是本文提出的方法能够使用强化学习信号和随机梯度下降来训练大型的神经网络,并保证收敛。
在这里插入图片描述

3.2 价值函数可视化

下图给出了在游戏 Seaquest 中学习到的价值函数的可视化展示,三个点分别对应右边的三张画面。可以看到当一个新敌人(绿色的鱼)出现在屏幕中时,预测的价值明显上升(点 A);而当鱼雷快要攻击到敌人时,价值进一步上升达到峰值(点 B);当敌人消失后,价值则快速下降至原来的水平。该图表明本文提出的方法能够学习到价值函数如何在复杂的事件序列中进行演变。
在这里插入图片描述

3.3 主要评估

在本节中,作者首先将 DQN 和之前的一些 RL 方法进行了对比,如下表的前五行所示。表中的数值为以 ϵ 策略执行固定步骤后的平均总奖励(执行多个回合取平均)。除去随机策略和人工玩家,共对比了两种方法:「Sarsa」「Contingency」。这两种方法都在手工提取特征的同时,将画面中的不同颜色进行分离并标注。人工玩家的奖励为玩游戏两小时后获得的奖励的中位数。下表的后三行比较了 DQN 和两种进化策略搜索方法:「HNeat Best」「HNeat Pixel」。HNeat Best 基于人工标注的目标检测算法,输出屏幕上物体的类型和位置;HNeat Pixel 则使用 8 个特别的颜色表示 Atari 游戏中的特定物体类型。这两种方法依赖于找到一个确定的状态序列,不会存在随机扰动,因此对比的是**「单个」**回合下的最佳表现。
在这里插入图片描述

总的来看,我们的方法在 Breakout、Enduro 和 Pong 这三款游戏上击败了人类玩家;在 Beam Rider 上和人类玩家表现接近。而差距较大的三款游戏需要网络基于更长的时间范围寻找策略,因此挑战性更大。

4 结论

本文可以说是将深度学习应用于强化学习领域的开山之作,其在 Atari 2600 游戏上展示了深度学习仅基于原始图像即能够掌握复杂控制策略的能力。本研究提出的方法也可以理解为一种在线 Q-learning 的变种,融合了**「随机小批量更新」「经验回放」**以便于深度网络的训练。在无需额外调整结构和超参数的前提下,本方法在七款游戏中的六款达到了 SOTA 的结果。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值