【声明:鄙人菜鸟一枚,写的都是入门级博客,如遇大神路过鄙地,请多赐教;内容有误,请批评指教,如有雷同,属我偷懒转运的,能给你带来收获就是我的博客价值所在。】
【声明】翻译:张永伟(系中国航天系统科学与工程研究院2016级研究生) 修订:博主
这期为大家推荐一篇2017年3月6日发表在 arXiv 上的文章,这篇文章介绍了一种”神经情景控制(Neural Episodic Control)“的新方法,有效提速深度强化学习。后面有时间会单独解析这篇文章,可预读一篇帖子:http://www.dataguru.cn/article-9784-1.html?utm_source=tuicool&utm_medium=referral。文章出来后不久【机器之心】就有人对这篇文章有简要的评论,可参见:https://www.jiqizhixin.com/articles/96e72c9b-6e49-4690-bcad-b902768d955c(虽然只是贴了几张图,翻译了几句话,基本没啥剖析,大家想看的就瞅两眼哈,别认真,主要还是细读原文,英语水平不错的,有耐心的建议读)。
原文来源:Pritzel A, Uria B, Srinivasan S, et al. Neural Episodic Control[J]. 2017. 文章地址:https://arxiv.org/abs/1703.01988
摘要:在诸多领域,深度强化学习的表现已经超越人类。但是这种学习方式效率非常低,与人类相比要达到满意表现所需的数据量要高好几个数量级。为此我们提出了神经情景控制:一种能够快速吸收新经验并依据新经验来采取行动的智能体。该智能体的价值函数采用半值方式表示:一种旧经验缓冲器,包括价值函数渐变状态表示和价值函数快速更新估计两部分。在大量场景下的研究表明,该智能体的学习速度明显快于目前最先进的通用深度强化学习智能体。
基于深度强化学习的智能体在各类复杂环境下取得了最先进的成果(Mnih etal.2015;2016),而且其表现经常会超越人类(Silver etal.2016)。虽然这些智能体的最终表现令人印象深刻,但是通常为达到预期的性能水平,需要与环境进行的互动次数比人类要多几个数量级。例如在Atari 2600个环境集合(Bellemare etal., 2013)中,人类学习两个小时后的游戏水平,深度Q-网络(Mnih et al.,2016)需要200多个小时才能达到(Lake et al., 2016)。对于深度强化学习学习速度慢这一问题有些许合理的解释,我们主要集中于下几个方面的问题:
随机梯度下降优化需要较小的学习率。由于神经网络的全局逼近特性,高学习率会造成灾难性干扰(McCloskey & Cohen,1989)。学习率小意味着经验只能被缓慢地学习到神经网络中去。
由于极少数情况下奖励非零,在奖赏(reward)信号稀疏的环境中神经网络很难对环境进行建模。这可以看作是一种类别不均衡的表现,即低奖励采样以某未知数超过高奖励采样。因此,神经网络在预测更大奖励方面不成比例的表现不佳,造成智能体在最佳行动选择时的困难。
用价值引导技术进行奖励信号传播。如 Q-学习,这导致每与环境交互一次奖励(reward)信息就按先前存储器传播一步。当位置转移时,如果信息更新以相反的顺序发生可能会更加有效。然而,按照不相关最小批DQN-style原则,使用随机选则路径的方式对算法进行训练。并且,为了训练的稳定,需要使用缓慢更新目标网络的方式来进一步放慢奖励传播速度。
本次研究我们将集中精力解决上述三个问题。然而,我们必须指出的是最近在搜索广度(Osbandet al.,2016),分层强化学习(Vezhnevets et al.,2016)和迁移学习(Rusu et al.,2016;Fernando et al.,2017)等方面取得的新进展,同样在深度强化学习基线智能体数据处理效率方面做出了重要贡献。
本文提出的神经情景控制,是一种能够解决上述深度强化学习的缺陷并且能够在广泛环境情景中显著提高学习速度的方法。至关重要的是,我们的智能体能够根据经验快速选择高度成功的策略,而不是像DQN(Mnih etal.,2015)和A3C(Mnih etal.,2016)中需要经过许多优化步骤(例如,统计梯度下降)再做出选择。
这项工作的部分灵感来自于海马体在决策过程中的假设作用(Lengyel &Dayan, 2007; Blundell et al., 2016)和最近一次学习(Vinyals etal., 2016)与神经网络在少量事件存储器方面的研究(Kaiser et al.,2016)。我们的智能体使用半表格式的方式将环境处理的经验(如一些长期存储器,顺序性,前后关系查找的情景存储器)进行保存。半表格是一种只能增加存储器的表示方式,它将缓慢变化的键与价值快速更新结合在一起,使用上下关系搜索键来为在智能体行为选择时找到有用值。因此,智能体的存储器操作与传统的基于表格的RL方法(从状态和行为再到价值估计来建立地图)有非常多的相同之处。与其他强化学习中的神经存储器结构(第3部分详细说明)相比这种存储器方式的独特之处在于从存储器中取回的价值比剩下的深度神经网络要快。回想起在权重更新快速性的工作(Ba et al., 2016;Hinton & Plaut,1987),虽然我们提出的结构全然不同,但同样有助于改进应用于整个网络的随机梯度下降法典型的权重更新慢的问题。不同于其他存储器结构(例如,LSTM和DNC),我们的存储器结构在写入存储器的时候并没有尝试进行学习,这是另一个不同点。由于其他结构学习过慢并且要花费大量时间,我们则采用将所有经验写入存储器的方式,并且与现存的存储器结构(存储器在每个情景结束后扫描Ohet al.(2015);Graves et al. (2016))相比允许它变得非常大。从大量的存储器中读取信息的方式使得基于kd-tree的最近邻搜索变得更加有效(Bentley,1975)。
本文接下来的组织结构如下:在第2部分我们将对深度强化学习进行回顾;在第3部分将对神经情景控制的算法进行描述;在第4部分我们将给出在Atari学习环境下的实验结果;在第5部分我们将讨论其他将存储器用于强化学习的方法;在最后的第6部分,我们将列出以后的工作内容和对NEC算法主要优点的总结。
强化学习智能体(Sutton &Barto, 1998)的行为价值函数的定义如下:
Qπ(s,a)=Eπ[∑t[γtrt|s,a] ,
其中 a 为智能体在初始状态 s 下的初始行为并且根据期望接下来将采取策略。折扣因子用于权衡对短期收益和长期收益的偏好。
深度 Q 网络智能体(DQN; Mnih etal., 2015)使用Q学习(Watkins & Dayan, 1992)来获得一个价值函数 Q(st,at) 来进行排序。其中行为 at 是在步骤状态 st 下的最佳选择。基于这一价值函数,智能体将执行一个策略来实现搜索广度与搜索精度之间的权衡:智能体会统一按照概率 ϵ 随机选择行为,否则就选择价值最大的行为 at=arg maxaQ(st,a) 。
在DNQ中,行为价值函数 Q(st,at) 的参数是通过卷积神经网络来确定的,先将状态 st 表示成 2 维数据来作为输入,输出向量为当前状态下每个行为的价值。当智能体检测到一次转移时,DQN就将数组 (st,at,rt,st+1) 存储到一个回放缓冲区中,其中的数据将用于训练。神经网络是通过最小化网络输出与 Q 学习目标 yt=rt+γ maxaQ(st+1,a) 之间的方差来进行训练的,目的是从回放缓冲区随机采样获得转移子集。目标网络 Q(st+1,a) 是一个按周期更新的老版本价值网络,且目标网络和取自回放缓冲区的不相关样本的运用对稳定的训练至关重要。
近几年也有一些用来改进DQN性能的方法相继被提出,双DQN模型 (Van Hasselt et al., 2016)能够减小在目标计算方面的偏差。通过优化回放策略,优先回放(Schaul et al.,2015b)进一步提高了双DQN模型的性能。一些作者还提出了通过合并在线策略(on-policy)奖励或者增加优化约束的方式提高反馈奖励传播的方法和 Q 学习的反馈机制(Harutyunyan et al., 2016; Munos et al., 2016;He et al., 2016)。 Q∗(λ) (Harutyunyan et al.,2016)和 Retrace(λ) (Munos et al.,2016)将改变 Q 学习的目标形式以合并在线策略样本和在线策略学习与离线策略学习的随机(fluidly)选择。Munoset al.(2016)指出通过合并在线策略样本,能够提升智能体在 Atari 环境中的学习速度,这说明奖励的传播确实是影响深度强化学习效率的一个瓶颈因素。
A3C (Mnih etal., 2016)是另一个众所周知但完全不同于DQN的深度强化学习算法,它是基于策略梯度的,且同时学习策略和与之相关的价值函数,这些完全从在线策略学习中获得(类似于中 λ=1 的情况)。有趣的是,虽然在 Atari 游戏中智能体的表现没有显著提高,(Mnihet al.2016)也在其卷积神经网络中加入了一个LSTM存储器来给智能体建立存储器的概念。
我们的智能体包含三个组成部分:一个用于处理二维图像 s 的卷积神经网络,一系列存储器模块(每个行为一个),以及一个将行为存储器读出到值的网络。其中的卷积神经网络我们用的是与DQN (Mnih et al.,2015)相同的结构。
对于每一个行动,NEC有一个简单的存储模块 Ma=(Ka,Va) ,其中 Ka 和 Va 是同容量且可变维数的向量组。存储器模块的作用是将“键”与相应价值进行自由连接,就像在程序中建立的字典型数据。因此我们称这种存储器模块为可微神经词典(DND)。对DND有两种可能操作:查找和写入,如图1所示。在 DND 上按照键 h 执行查找得到输出值 o :
图2展示了DND作为NEC智能体的一部分,实现单一行为的过程,同时Algorithm1给出了NEC算法的大纲。通过一个卷积神经网络对状态像素 s 进行处理,得到一个键 h 。在DND中查询键值时会用到键 h ,在查询过程中,对于每个数组元素都将获得相应的权重 Wi 。最终,系统输出DND中键值的加权求和。对于NEC智能体,DND中的值就是相应状态的 Q 值,这样键值对在一开始就被写入存储器中了。因此,这一架构对于给定的一个行动 a 能够产生一个估计 Q(s,a) 。在每个DND存储器模块 Ma 共用网络的卷积部分时,对于智能体可取行为 a 都可以通过这一方式来判断。NEC智能体的行动策略是每次都会选择 Q -value最高的行为。在实际中,我们使用 ε− 贪心策略来进行训练, ε 值较小。
随着NEC智能体的移动,新的键-值对也不断地写入存储器。根据卷积神经网络编码的查询键 h 的数值,键被附加到相应动作的存储器上。现在我们转向求一个合适的对应值的问题。在(Blundell etal. 2016)一文中,写到存储器中的是蒙特卡洛返回值。我们发现采用蒙特卡洛返回值(在线策略)和离线策略备份混合的方式效果更好,所以对于NEC我们选用N阶 Q 学习,如Mnih etal.(2016) (也可见 Watkins, 1989; Peng & Williams, 1996)。这样就增加了下面的N个在线策略奖励,并且引导出剩余路线的折扣奖励总额(离线策略)。N阶 Q 值估计如下
智能体的参数更新,是通过对给定行为的预测值 Q 和从回放缓冲器中随机采样获得的最小批损失 L2 最小化实现的。实际上,我们将元组 (st,at,Rt) 存储在回放缓冲器中,其中 N 为 N− 阶 Q 规则的水平,而扮演着DQN中目标网络的角色(我们的回放缓冲器,与DQN中的缓冲器极其相似)。这些(st,at,Rt)元组将通过随机均匀采样来生成用于训练的最小批。注意,图2中的架构是完全可微的,所以我们可以通过梯度下降的方式实现损失最小化。反向传播采用更低的学习率(与查询 (α) 后更新“键值对”时学习率相比)来更新卷积嵌入网络的权重和偏差以及每个特定行为的梯度损失值。
在实际复杂环境中,我们调查了神经情景控制对于更大数据量是否能进行高效率学习。我们选择Atari学习环境(ALE;Bellemare et al., 2013)作为问题的研究范围,使用在Schaul et al.(2015a)中用到的 57个Atari游戏对神经情景控制进行了测试。这是一个有趣的任务集合,因为它们包含各种各样的挑战,例如稀少奖励和游戏得分大小不同。大多数一般的算法(像DQN和A3C的变种)应用于这些领域时会需要几千个小时的游戏时间,即这些算法数据效率低下。
我们选取了5个A3C和DQN的变种以及MFEC(Blundellet al., 2016) 作为基准。我们与A3C(Mnih etal., 2016)和 DQN(Mnih etal., 2015)的基础算法进行了比较。我们还与另外两种算法进行了比较,这两种包含返回值(Sutton, 1988)的算法通过加速信用分配传播的方式来获得更高的数据效率,这两种算法为 Q∗(λ) (Harutyunyan et al., 2016) 和 Retrace(λ) (Munos et al., 2016)。另外,我们还与带有优先回放(Prioritised Replay)的DQN进行了比较,这种DQN通过频繁回放显著行为来提高数据效率。由于不能获得Atari所有游戏的游戏结果,我们没有直接与DRQN(Hausknecht& Stone, 2015)以及FRMQN(Oh etal., 2016)进行比较。但要指出的是,结果显示DRQN的表现劣于优先回放。
除了MEFC的折扣率为 γ=1 之外,其他算法都使用 γ=0.99 的折扣率进行训练。在MFEC实现的过程中,我们使用随机预测作为嵌入函数。该方法从最初发布开始,就在Atari游戏方面获得了良好的表现。就NEC的超参数问题,我们选用与DQN相同的卷积架构,而且对于每个行为的最高信息存储量为5*105。梯度下降训练使用的是RMSProp算法(Tieleman& Hinton, 2012)。处理步骤与(Mnih etal.,2015)相同,包括每个行动要重复4次。对于 N 阶 Q 估计,我们选择 N=100 的水平。重演缓冲器只存储了最近观测的105个状态(相对于DQN的106个)和相应的N阶观测 Q 估计。在所有实验中,我们将最近邻数量 P 设置为50。内核函数是一个在短距离的平均值和大距离的加权反向距离之间插值的函数,具体如下:
近几年,许多学者在神经网络的记忆结构(LSTM;Hochreiter & Schmidhuber, 1997),DNC(Graves etal., 2016),记忆网络(Sukhbaatar etal., 2015; Miller et al., 2016)等方面做了大量研究。按时间进行的后向传播截断法训练的记忆复现神经网络(LSTMs andDNCs)与非复现神经网络同样受到学习速度的限制。其中一些模型已经被应用于强化学习智能体(LSTMs; Bakkeret al., 2003; Hausknecht & Stone,2015), DNCs (Graves et al., 2016), 存储网络 (Ohet al.,2016)。然而这些记忆方式在面对新的应用场景时,都需要重新进行设置。在部分可观或非马尔可夫环境中,当记忆的目的是根据对先前观察进行寻迹以获得最大收益时,这样做是合适的。因此,这些应用可以认为是一种工作记忆。
RNNs能够在记忆中快速描绘出高奖励状态,并且能够学习整个强化学习算法(Wang et al.,2016; Duan et al., 2016)。然而,这项工作需要花费的周期很长,学习时间与问题复杂度相当。
对于Oh et al.(2016)的工作,其想法简述于此。他们在 Q 网络的顶层引入一个记忆适应网,即(FR)MQN。
Kaiser et al.(2016)给出了一种可以加入到神经网络中的键-值对微分层。该层使用余弦相似度来计算k个最近似的记忆的价值的加权平均和。其使用的动态平均更新规则让人想起在第3部分介绍的那个方法。作者给出的结果都是一些基于有监督任务的,他们并没有去考虑在强化学习中的应用问题。其他强化学习算法也都是基于以往的历史经验。事实上,DQN本身就有一个基本的记忆形式:从回放缓冲器到稳定训练可以看作是一个记忆过程。因为这个过程通过不断重复来精炼DQN价值网中的内容。Kumaran et al.(2016)指出,利用DQN重演缓冲器的经验进行训练与动物在睡眠过程中对情景记忆的经验重演的过程是相似的。与其他大多数在深度强化学习记忆方面的研究相比,DQN重演缓冲器的不同指出在于其庞大的规模:保存上百万 (s,a,r,s′) 数组,对DQN来说是很平常的事情。在Q函数近似中用到的局部递归技术是前人提出的:基于与已有记忆的距离,Santamar´ıa et al. (1997)提出使用带启发的K最近邻递归方式来增加记忆。Munos &Moore (1998)提出了重心内插器对价值函数进行建模,并证明了在温和条件下其收敛于最优值函数,但没有给出实证结果。在基于案例推理的范式下(包括启发式存储案例删除),Gabel &Riedmiller (2005) 也建议使用局部回归。Blundell etal.(2016, MFEC)使用k-最近邻的方法进行Q函数估计的局部回归,除了一个需要精确匹配的查询点外,这种方式能够返回其他情形存储的值。他们还提出将从变分自动编码器(Rezende et al.,2014)获得的潜在变量作为嵌入空间,但结果显示随机投射经常获得更好的结果。与此想法相反,上述局部回归的研究都没有通过对奖励信号的学习来得到一个进行局部回归的协变量嵌入空间。我们使用时差学习来得到这个嵌入空间;这是一个关键的区别,正如我们在与MFEC的实验比较中所显示的。
我们提出了神经情景控制(NEC):一种深度强化学习智能体,对于Atari的2600个游戏中的绝大部分游戏,其学习速度显著快于其他基线智能体。NEC的核心是其存储结构:每个潜在行为对应一个可微神经词典(DND)。NEC将最近的状态表示与相应的价值函数插入到合适的DND中。
实验表明,之前提出的智能体(如Prioritised-Replay (Schaul et al., 2015b) 和 Retrace(λ) (Munos et al., 2016))相比,在数据效率方面NEC与环境的交互次数要少一个数量级。我们推测NEC通过融合一下三个智能体特征来实现快速学习:存储架构(DND),使用 N 阶 Q 估计以及卷积神经网络给出的状态表达。
存储架构DND能够快速整合当前经验—状态表达和相应的价值估计—使得这些信息能够被快速应用于之后的行为。这种存储会跨过许多情景,于是我们使用一个快速估计最近邻算法 (kd−tree) 来保证记忆的有效获取。使用 N 阶 Q 值函数在蒙特卡洛估计值和支持非在策估计之间进行插值的方法对 Q 值进行估计。蒙特卡洛估计值反映的是智能体实际获得的奖励,而支持非在策估计的应该更好地代表最优策略的价值,但其变化要慢得多。这两个估计方法的使用,使得NEC可以在两个估计方法之间进行权衡,也可以在他们的优缺点(奖励传播速度 vs 最优性)之间进行权衡。最终,经过一个缓慢变化过程,卷积神经网络输出稳定表达,存储在DND中的键保持相对稳定。
研究表明非参数方法对于深度加强学习工具箱来说是非常有前景的,尤其是在数据效率至关重要的地方。在实验中,我们发现在学习开始的时候,NEC在学习速度方面优于其他智能体;之后Prioritised-Replay在学习方面的表现比NEC要好。进一步改善NEC,使其长期结果显著优于参数智能体这项任务,将纳入到未来的工作中。另一个研究方向则是将本文所述方法应用到更加广泛的任务中去,例如视觉上更复杂的3D世界或真实世界的任务,由于获取数据的成本较高其数据效率非常重要。
声明
本文作者对Daniel Zoran,Dharshan Kumaran, Jane Wang, Dan Belov, Ruiqi Guo, Yori Zwols, Jack Rae,Andreas Kirsch, Peter Dayan, David Silver以及在DeepMind给出有见地的讨论和反馈的朋友表示衷心的感谢。同时感谢Georg Ostrovski,Tom Schaul和 Hubert Soyer提供的基线学习曲线。
参考文献 见原文。