用一个学习的模型掌握Atari、围棋、国际象棋和将棋的规划问题
摘要:构建具有规划能力的Agent长期以来一直是追求社会智能的主要挑战之一。基于树的计划方法在所有域(如象棋和围棋)中都获得了成功,在这些域中可以使用一个完美的模拟器。然而,在现实问题中,控制环境的动力往往是复杂和未知的。在这项工作中,我们提出了MuZero算法,该算法通过将基于树的搜索与学习模型相结合,在一系列具有挑战性和视觉复杂性的领域中实现超人的性能,而不需要了解它们的底层动力学。MuZero学习了一个模型,当迭代应用时,它预测与计划最直接相关的数量:奖励、行动选择策略和价值函数。当对57个不同的Atari游戏进行评估时,我们的新算法达到了一个新的技术水平,这57个游戏是测试技术的标准视频游戏环境,其中基于模型的计划方法已被历史所证实。在进行评估时,国际象棋和将棋在不了解游戏规则的情况下,MuZero与游戏规则提供的AlphaZero算法的超人性能相匹配。
1 序言
基于前瞻搜索的规划算法在人工智能领域取得了显著的成功。人类世界的冠军在经典游戏中被击败,如跳棋[34]、国际象棋[5]、围棋[38]和扑克[3,26],规划算法在从逻辑到综合情况的演化(logistics [47] to chemical synthesis)应用中产生了现实世界的影响。然而,这些规划算法都依赖于环境动力学的知识,如游戏规则或精确的模拟器,阻止了它们直接应用于现实世界的领域,如机器人、工业控制或智能助理。(说明了当前规划算法的最大问题,不具有通用性)
基于模型的强化学习(RL)[42]旨在通过首先学习环境动力学模型,然后针对所学模型进行规划来解决这一问题。通常,这些模型要么关注于重建真实的环境状态[8,16,24],要么关注于完整观测序列[14,20]。然而,以前的工作[4,14,20]仍然远远没有在视觉丰富的领域,如Atari2600游戏的技术水平[2]。相反,最成功的方法是基于无模型RL[9,21,18]——也就是说,它们直接从与环境的交互作用中估计最优策略和/或价值函数。然而,无模型算法在那些需要精确计算和复杂预测的推演艺术领域就表现得差强人意,比如国际象棋和围棋。(说明了当前基于模型的强化学习主要在之前取得成果,但是在需要像素输入的可视化领域,无模型的强化学习比较成功,可也没有很好的解决具有一定灵感的博弈问题,比如围棋等,补充阿尔法狗利用的离线和在线相结合,MCTS进行探索,本质还是初步基于模型的方法起步,然后再利用无模型训练)
本文介绍了一种新的基于模型的RL方法MuZero,该方法在视觉复杂的领域Atari 2600中实现了最新的性能,同时在象棋、shogi和Go等精确规划任务中保持了超人的性能。MuZero建立在AlphaZero[39]强大的搜索和基于搜索的策略迭代算法的基础上,但在训练过程中加入了一个学习模型。MuZero还将AlphaZero扩展到更广泛的环境集,包括单代理域和中间时间步的非零回报。
2 前期工作
强化学习可分为两大类:基于模型的和无模型的[42]。基于模型的RL作为中间步骤构建环境模型。经典上,该模型由马尔可夫决策过程(MDP)表示,MDP由两个部分组成:预测下一个状态的状态转移模型和预测该转移期间的预期报酬的报酬模型。该模型通常取决于所选的操作,或一个时间抽象的行为,如选项[43]。一旦建立了模型,就可以直接应用MDP规划算法,如值迭代[31]或蒙特卡罗树搜索(MCTS)[7],来计算MDP的最优值或最优策略。在大范围或部分观测的环境中,算法必须首先构造模型应该预测的状态表示。这种表示学习、模型学习和规划之间的三方分离可能存在问题,因为Agent无法优化其表示或模型以实现有效的规划,因此,例如,建模错误可能会导致规划的不准确。(前期的工作主要分为基于模型和无模型的强化学习,经典模型的问题)
基于模型的RL的一种常用方法是在像素级直接建模观测流。有人假设,深度随机模型可以缓解复合误差的问题[14,20]。然而,在大规模问题中,像素级粒度的规划在计算上是不可处理的。其他方法是建立一个潜在状态空间模型,该模型能够在像素级构建观察流[48,49],或预测其未来的潜在状态[13,11],这有助于更有效的规划,但仍将模型的大部分容量集中在潜在的不相关细节上。这些先前的方法都没有构建一个模型,该模型有助于在视觉上复杂的领域(如Atari)中进行有效的规划;结果落后于经过良好调整的、无模型的方法,甚至在数据效率方面也是如此[45]。(基于模型的强化学习在像素级的大规模数据处理方面还是有瓶颈,虽然有尝试建立一个潜在状态空间模型,但是总体表现仍然比无模型的强化学习要差)
最近开发了一种完全不同的基于模型的RL方法,重点是端到端预测值函数[41]。这些方法的主要思想是构造一个抽象的MDP模型,使抽象MDP中的规划等价于现实环境中的规划。这种等价性是通过确保值等价来实现的,也就是说,从相同的真实状态开始,通过抽象MDP的轨迹的累积报酬与真实环境中轨迹的累积报酬相匹配。
predictron[41]首次引入了价值等价模型,用于预测价值(无行动)。尽管底层模型仍然采用MDP的形式,但是它的转换模型不需要匹配环境中的实际状态。相反,MDP模型被视为深层神经网络的一个隐藏层。展开的数据是指预期的累积收益与实际环境的预期价值相匹配,例如通过时间差分学习。(引进新的思路,利用构建的抽象MDP模型,核心是抽象MDP中的规划等价于现实环境中的规划)
图1:使用学习的模型进行计划、行动和训练
(A)如何使用其模型进行规划。该模型由表示、动力学和预测三部分组成。给定一个先前的隐藏状态sk-1和一个候选动作ak,动力学函数g生成一个即时奖励rk和一个新的隐藏状态sk。Policy pk和Value function vk由一个预测函数f从hidden state sk计算得出。初始隐藏状态s0是通过将过去的观察结果(例如Go board或Atari屏幕)传递到一个表示函数h来获得的。(总体:利用一个H函数从屏幕获取state,然后在该状态选择一个action进行到下一个状态,利用一个g函数生成执行这个action的reward和下一步的state,利用f函数得出策略网络和价值网络)
(B)在环境中的行为。在每个时间步t执行Monte Carlo树搜索,如A中所述。从搜索策略πt中采样at+1处的操作,该策略πt与根节点中每个操作的访问计数成比例。环境接收到该动作并生成新的观察ot+1和奖励ut+1。在这一回合的结尾,轨迹数据被存储在回放缓冲区中。(横向:每一步的状态都执行MCTS,利用策略网络选择下一步的可执行动作,把MCTS搜索获得的结果获胜比例返回存储到根节点,生成新的ot+1和ut+1,再执行下一步,但是有个问题,MCTS和action的关系,MCTS给policy?)
(C) MuZero如何训练它的模型。一个策略集合从播放缓冲区中不断提取。对于初始步骤,h函数输入的是该策略下的一系列状态o1,…,ot。随后,该模型将重复展开K个步骤。在每一个K步,g函数输入前面若干个状态以及实际执行动作At+k。然后表示函数的参数、动力函数g的参数以及预测函数的参数联合训练,用的是端到端的反向传播算法,去预测三个量,策略函数、价值函数、以及回报值,其中回报值从样本返回的结果中采样,包括了最终的结果或者执行过程中的回报。(纵向:利用缓冲区提取之前观察到的observation,然后利用g函数执行若干步,随后回来进行训练三个函数,但是训练的目标函数是什么?)
价值等价模型随后被扩展到优化价值(有行动)。TreeQN[10]学习了一个抽象的MDP模型,使得在该模型上的树搜索(由树结构的神经网络表示)逼近最优值函数。值迭代网络[44]学习本地MDP模型,使得该模型上的值迭代(表示为卷积神经网络)近似于最优值函数。价值预测网络[28]可能是最接近MuZero的先驱:它们学习基于实际行动的MDP模型;展开的MDP经过训练,使得基于简单的前瞻搜索生成的实际行动序列的累积奖励总和与实际环境相匹配。与MuZero不同,它没有策略预测,搜索只使用值预测。
3. Muzero算法
我们现在更详细地描述MuZero算法。在每个时间步t,对于k=1…k步中的每一步,通过参数θ的模型,根据过去的观测值o1,…,ot和+1,…,at+k的未来作用,进行预测。模型预测三个输出量:
(Muzero整个流程)
在内部,在每个时间步骤t(为了简单起见,下标t被简化),模型由表示函数、动力学函数和预测函数的组合来表示。动力学函数rk,sk=gθ(sk-1,a k)是一个递归过程,在每个假设步骤k计算立即奖励rk和内部状态sk。它反映了MDP模型的结构,该模型计算给定状态和操作的预期回报和状态转换。然而,与基于模型的RL的传统方法不同[42],这种内部状态sk没有附加环境状态的语义-它只是整个模型的隐藏状态,其唯一目的是准确预测相关的未来数量:策略、价值和回报。本文对动力学函数作了确定性的表示,并将其推广到随机跃迁的研究中。策略和值函数由预测函数pk,vk=fθ(sk)从内部状态sk计算,类似于AlphaZero的联合策略和值网络。“根”状态s0使用一个表示函数来初始化,该表示函数对过去的观测值进行编码,s0=hθ(o1,…,ot);同样,除了对未来预测的支持之外,它没有特殊的语义。(模型的构成本质上三个函数,动力学函数、策略和值函数,h函数状态表征输入)
给定这样一个模型,就可以在假设的未来轨迹a1,…,ak上搜索给定的过去观测值o1,…,ot(用这些过去的观测值可以帮助选择未来的动作序列)。例如,简单的搜索可以简单地选择最大化value function的k步动作序列。更一般地,我们可以将任何MDP规划算法应用于由动态函数引起的内部奖励和状态空间。具体来说,我们使用类似于AlphaZero搜索的MCTS算法,广义上允许单代理域和中间奖励(参见方法)。在每个内部节点,利用当前模型参数θ产生的策略、价值和报酬估计。MCTS算法输出一个推荐策略πt和估计值νt。然后选择At+1∼πt处的操作。(三个函数指导后面的策略和行动)
对模型的所有参数进行联合训练,以使每个假设步骤k的策略、值和报酬与经过k个实际时间步骤后观察到的相应目标值精确匹配。与AlphaZero类似,改进后的策略目标由MCTS搜索生成;第一个目标是最小化预测策略pk t和搜索策略πt+k之间的误差。与AlphaZero一样,改进后的值目标由玩游戏或MDP生成。然而,与AlphaZero不同,我们允许在初始值的两个输出中有n个步骤的折扣和中间折扣,zt=ut+1+γut+2+…+γn−1ut+n+γnνt+n。在棋盘游戏中的最终结果{lose,draw,win}被视为在该事件的最后一步发生的奖励ut∈{1,0,+1}。具体来说,第二个目标是最小化预测值vk t和值目标zt+k 1之间的误差。奖励目标仅仅是观察到的奖励;第三个目标是在预测的数据流标记t和观察到的数据流+k之间重新确定期望值。最后,还添加了一个L2正则化项,导致总体损失:(训练的target)
4、结果
在每种情况下,我们训练K=5个假设步骤的MuZero。在棋盘游戏中进行了1百万个2048号的小批量训练,在阿塔里进行了1024号的小批量训练。在训练和评估期间,MuZero在棋盘游戏中每次搜索使用800个模拟,在Atari中每次搜索使用50个模拟。表示函数使用与AlphaZero相同的卷积[23]和残差[15]架构,但使用16个残差块而不是20个。动态函数使用与表示函数相同的体系结构,预测函数使用与AlphaZero相同的体系结构。所有网络使用256个隐藏平面(有关详细信息,请参见方法)。
图2 蓝线Muzero 橙线AlphaZero 实现虚线(平均、中位数)
表1:MuZero与Atari以前的Agent的比较。我们分别与在大(顶部)和小(底部)数据设置中训练的代理进行比较;除了MuZero之外,所有代理都使用无模型RL技术。与人类测试员相比,给出了平均分和中位数。最好的结果用粗体突出显示。MuZero在这两个设置中都设置了一个新的技术状态。每个游戏都会调整一个超参数
5 结论
人工智能的许多突破都是基于高性能规划[5,38,39]或无模型强化学习方法[25,29,46]。本文介绍了一种将两种方法结合起来的方法。我们的算法MuZero在他们喜欢的领域(逻辑上复杂的棋盘游戏,如国际象棋和围棋)中与高性能规划算法的超人性能相匹配,在他们喜欢的领域(可视化的复杂Atari游戏)中优于无模型的强化学习算法的状态。关键的是,我们的方法不需要任何游戏规则或环境动力学知识,这可能为将强大的学习和规划方法应用于现实世界中没有完美模拟器的领域铺平了道路。