智能博弈领域已逐渐成为当前AI研究的热点之一,游戏AI领域、智能兵棋领域都在近年取得了一系列的研究突破。但是,游戏 AI 如何应用到实际的智能作战推演依然面临巨大的困难。综合分析智能博弈领域的国内外整体研究进展,详细剖析智能作战推演的主要属性需求,并结合当前最新的强化学习发展概况进行阐述。从智能博弈领域主流研究技术、相关智能决策技术、作战推演技术难点3个维度综合分析游戏AI发展为智能作战推演的可行性,最后给出未来智能作战推演的发展建议。以期为智能博弈领域的研究人员介绍一个比较清晰的发展现状并提供有价值的研究思路。
http://www.infocomm-journal.com/znkx/article/2022/2096-6652/2096-6652-4-2-00157.shtml
以2016年AlphaGo的成功研发为起点,对智能博弈领域的研究获得突飞猛进的进展。2016年之前,对兵棋推演的研究还主要集中在基于事件驱动、规则驱动等比较固定的思路。到2016年,受AlphaGo的启发,研究人员发现智能兵棋、智能作战推演的实现并没有想象得那么遥远。随着机器学习技术的发展,很多玩家十分憧憬游戏中有 AI 加入从而改善自己的游戏体验[1]。同时,在智能作战推演领域,不断发展的机器学习游戏 AI 技术也为智能作战推演的发展提供了可行思路[2]。传统作战推演AI主要以基于规则的AI和分层状态机的AI决策为主,同时以基于事件驱动的机制进行推演[3-4]。然而,随着近些年国内外在各种棋类、策略类游戏领域取得新突破,智能作战推演的发展迎来了新的机遇[5]。
国内游戏 AI 领域取得了标志性的进步。腾讯《王者荣耀》的《觉悟AI》作为一款策略对抗游戏取得了显著成绩,可以击败97%的玩家,并且多次击败顶尖职业团队[6]。网易伏羲人工智能实验室在很多游戏环境都进行了强化学习游戏 AI 的尝试[6],如《潮人篮球》《逆水寒》《倩女幽魂》。超参数科技(深圳)有限公司打造了游戏AI平台“Delta”,集成机器学习、强化学习、大系统工程等技术,通过将AI与游戏场景结合,提供人工智能解决方案[7]。启元AI“星际指挥官”在与职业选手的对抗中也取得了胜利[8]。北京字节跳动科技有限公司也收购了上海沐瞳科技有限公司和北京深极智能科技有限公司,准备在游戏AI领域发力。除了游戏AI领域,国内在智能兵棋推演领域也发展迅速。国防大学兵棋团队研制了战略、战役级兵棋系统,并分析了将人工智能特别是深度学习技术运用在兵棋系统上需要解决的问题[9]。中国科学院自动化研究所在2017年首次推出《CASIA-先知1.0》兵棋推演人机对抗AI[10],并在近期上线“庙算·智胜”即时策略人机对抗平台[11]。此外,由中国指挥与控制学会和北京华戍防务技术有限公司共同推出的专业级兵棋《智戎·未来指挥官》在第三届、第四届全国兵棋推演大赛中成为官方指定平台。中国电科认知与智能技术重点实验室开发了MaCA智能博弈平台,也成功以此平台为基础举办了相关智能博弈赛事。南京大学、中国人民解放军陆军工程大学、中国电子科技集团公司第五十二研究所等相关单位也开发研制了具有自主知识产权的兵棋推演系统[12,13,14,15]。2020年,国内举办了4次大型智能兵棋推演比赛,这些比赛对于国内智能博弈推演的发展、作战推演领域的推进具有积极影响。游戏 AI 和智能兵棋的发展也逐渐获得了国内学者的关注,胡晓峰等人[5]提出了从游戏博弈到作战指挥的决策差异,分析了将现有主流人工智能技术应用到战争对抗过程中的局限性。南京理工大学张振、李琛等人利用PPO、A3C算法实现了简易环境下的智能兵棋推演,取得了较好的智能性[16-17]。中国人民解放军陆军工程大学程恺、张可等人利用知识驱动及遗传模糊算法等提高了兵棋推演的智能性[18-19]。中国人民解放军海军研究院和中国科学院自动化研究所分别设计和开发了智能博弈对抗系统,对于国内智能兵棋推演系统的开发具有重要参考价值[20]。中国人民解放军国防科技大学刘忠教授团队利用深度强化学习技术在《墨子•未来指挥官系统》中进行了一系列智能博弈的研究,取得了突出的成果[21]。中国科学院大学人工智能学院倪晚成团队提出一种基于深度神经网络从复盘数据中学习战术机动策略模型的方法,对于智能博弈中的态势认知研究具有重要参考价值[22]。
总体来说,国内在智能博弈领域进行了一系列的研究,尝试将该技术应用到作战推演领域,建立了具有自主产权的博弈平台,技术层面也不断突破,不再局限于传统的行为决策树、专家知识库等,开始将强化学习技术、深度学习技术、遗传模糊算法等引入智能博弈,取得了一系列的关键技术的突破。但是,当前的研究主要聚焦在比较简单的智能博弈环境,对复杂环境及不完全信息的博弈对抗研究仍然需要进一步探索。
国外游戏 AI 领域则取得了一系列突出成果,尤其是深度强化学习技术的不断发展,游戏 AI 开始称霸各类型的游戏[23]。2015年DeepMind团队发表了深度Q网络的文章,认为深度强化学习可以实现人类水平的控制[24]。2017年,DeepMind团队根据深度学习和策略搜索的方法推出了AlphaGo[25],击败了围棋世界冠军李世石。此后,基于深度强化学习的 AlphaGo Zero[26]在不需要人类经验的帮助下,经过短时间的训练就击败了AlphaGo。2019年, DeepMind 团队基于多智能体(agent)深度强化学习推出的AlphaStar[27]在《星际争霸II》游戏中达到了人类大师级的水平,并且在《星际争霸II》的官方排名中超越了 99.8%的人类玩家。《Dota 2》AI“OpenAI Five”在电竞游戏中击败世界冠军[28], Pluribus 在 6 人无限制德州扑克中击败人类职业选手[29]。同时DeepMind推出的MuZero在没有传授棋类运行规则的情况下,通过自我观察掌握围棋、国际象棋、将棋和雅达利(Atari)游戏[30]。与军事推演直接相关的《CMANO》和《战争游戏:红龙》(Wargame:Red Dragon),同样也结合了最新的机器学习技术提升了其智能性[31]。美国兰德公司也对兵棋推演的应用进行相关研究,利用兵棋推演假设分析了俄罗斯和北大西洋公约组织之间的对抗结果,并利用智能兵棋推演去发现新的战术[32]。兰德研究员也提出将兵棋作为美国军事人员学习战术战法的工具[33]。美国海军研究院尝试使用深度强化学习技术开发能够在多种单元和地形类型的简单场景中学习最佳行为的人工智能代理,并将其应用到军事训练及军事演习[34-35]。
但就目前而言,国外的研究也遇到了瓶颈。虽然也尝试将深度强化学习技术利用到作战领域,但是就目前发表的论文和报告来看,国外学者、研究人员将机器学习技术应用到作战推演 AI 中还有很多问题需要解决,现阶段也是主要在游戏 AI 领域及简单的作战场景进行实验验证及分析。作战推演AI 的设计也不仅仅是把机器学习技术照搬照用这么简单。但是必须肯定的是,随着未来计算机硬件的发展和机器学习技术的完善,作战推演 AI 会迎来一波革命式的发展,给各类作战智能指挥决策带来翻天覆地的变化。本文从智能博弈的重要应用领域——作战推演分析了国内外整体背景,进而引出作战推演的技术需求,并给出当前可参考的主流及小众技术思路。同时,对可能出现的技术难点进行了分析并给出解决方案建议。最后,对作战推演的未来发展提出建议。
状态空间是作战推演中的每个作战实体的位置坐标、所处环境、所处状态等要素的表现,是深度强化学习进行训练的基础。在围棋中,状态空间就是棋盘上每个点是否有棋子。在《觉悟AI》中,状态空间是每一帧、每个单位可能有的状态,如生命值、级别、金币[36,37,38,39]。在《墨子·未来指挥官系统》中,状态空间主要是每个作战单元实体的状态信息,是由想定中敌我双方所有的作战单元信息汇聚形成的。本节尤其要明确状态空间和可观察空间是可区分的,可观察空间主要是每个 agent 可以观察到的状态信息,是整个状态空间的一部分。作战推演中的状态空间将更加复杂,具有更多的作战单位和单位状态。针对敌我双方的不同作战单位、不同单位属性、不同环境属性等定义作战推演的状态空间属性。例如敌我双方坦克单元应包括坐标、速度、朝向、载弹量、攻击武器、规模等。陆战环境应包括周围道路信息、城镇居民地、夺控点等。
动作空间是指在策略对抗游戏中玩家控制算子或游戏单元可以进行的所有动作的集合。对于围棋来说,动作空间为361个,是棋盘上所有可以落子的点。对于《王者荣耀》和《Dota》这类游戏来说,动作空间主要是玩家控制一个“英雄”进行的一系列操作,玩家平均水平是每秒可以进行一个动作,但是需要结合走位、释放技能、查看资源信息等操作。例如《觉悟AI》的玩家有几十个动作选项,包括24个方向的移动按钮和一些释放位置/方向的技能按钮[34]。因此每局多人在线战术竞技(multiplayer online battle arena,MOBA)游戏的动作空间可以达到1060 000+。假设游戏时长为45 min,每秒30帧,共计81 000帧,AI每4帧进行一次操作,共计20 250次操作,这是游戏长度。任何时刻每个“英雄”可能的操作数是170 000,但考虑到其中大部分是不可执行的(例如使用一个尚处于冷却状态的技能),平均的可执行动作数约为1 000,即动作空间[37]。因此,操作序列空间约等于1 00020 250= 1060 750。而对于《星际争霸》这类实时策略对抗游戏来说,因为需要控制大量的作战单元和建筑单元,动作空间可以达到1052 000[38]。而对于《CMANO》和《墨子·未来指挥官系统》这类更加贴近军事作战推演的游戏来说,需要对每个作战单元进行大量精细的控制。在作战推演中,每个作战单元实际都包括大量的具体执行动作,以作战飞机为例,应包括飞行航向、飞行高度、飞行速度、自动开火距离、导弹齐射数量等。因此,实际作战推演需要考虑的动作空间可以达到10100 000+。可以看出,对于作战推演来说,庞大的动作空间一直是游戏 AI 迈进实际作战推演的门槛。现有的解决思路主要是考虑利用宏观AI训练战略决策,根据战略决策构建一系列绑定的宏函数,进行动作脚本设计。这样的好处是有效降低了动作空间设计的复杂度,同时也方便高效训练,但是实际问题是训练出来的 AI 总体缺乏灵活性,过于僵化。
对于动作空间,还需要考虑其是离散的还是连续的,Atari和围棋这类游戏动作都是离散动作空间[25,39-40],《星际争霸》《CMANO》《墨子·未来指挥官系统》这类游戏主要是连续动作空间[38]。对于离散动作,可以考虑基于值函数的强化学习进行训练,而对于连续动作,可以考虑利用基于策略函数的强化学习进行训练。同时,离散动作和连续动作也可以互相转化。国内某兵棋推演平台由原先的回合制改为时间连续推演,即把回合制转化为固定的时间表达。同时对于连续动作,也可以在固定节点提取对应的动作,然后将其转化为离散动作。
智能博弈中的决策主要是指博弈对抗过程中的宏观战略的选择以及微观具体动作的选择。宏观战略的选择在《墨子·未来指挥官系统》推演平台中体现得比较明显。在推演比赛开始前,每个选手要进行任务规划,这个任务规划是开始推演前的整体战略部署,例如分配导弹打击目标,规划舰艇、战斗机活动的大致区域,以及各个任务的开始执行时间等。这一决策空间与想定中的作战单元数量、任务规划数量相关。在制定完成宏观战略决策后,推演阶段即自主执行所制定的宏观战略决策。同时,在推演过程中也可以进行微观具体动作的干预,这一阶段的具体动作和作战单元数量、作战单元动作空间成正比。在实际作战推演中利用智能算法进行智能决策,首先需要明确决策空间数量。在现有的《墨子·未来指挥官系统》中,针对大型对抗想定,计算机基本需要每秒进行数百个决策,一局想定推演中双方博弈决策空间数量预估为 1080+个,而对于《星际争霸》《Dota 2》和《王者荣耀》这类即时战略(real-time strategy,RTS)游戏,决策空间会低一些。实际作战推演每小时的决策空间数量将高于 1050+个。对于这类智能决策的方案,现有 RTS游戏中提出的思路是利用分层强化学习的方法进行解决,根据具体对抗态势进行宏观战略决策的选择,然后根据不同的决策再分别执行对应的微观具体动作,这样可以有效降低智能决策数量,明显提高智能决策的执行效率。
博弈对抗的胜利是一局游戏结束的标志。而不同游戏中的胜利条件类型也不同,围棋、国际象棋这些棋类博弈对抗过程中有清晰明确的获胜条件[30]。而 Atari 这类游戏[40]只需要获得足够的分数即可获得胜利。对于《王者荣耀》这类推塔游戏,不管过程如何,只要最终攻破敌方水晶就可以获取胜利。这些胜利条件使得基于深度强化学习技术的游戏AI开发相对容易,在回报值设置中给予最终奖励更高的回报值,总归能训练出较好的 AI 智能。然而对于策略对抗游戏,甚至实际作战推演来说,获胜条件更加复杂,目标更多。比如,有时可能需要考虑在我方损失最低的情况下实现作战目标,而有时则需要不计代价地快速实现作战目标,这些复杂多元的获胜条件设置将使得强化学习的回报值设置不能是简单地根据专家经验进行赋值,而需要根据真实演习数据构建奖赏函数,通过逆强化学习技术满足复杂多变的作战场景中不同阶段、不同目标的作战要求。
博弈对抗过程中最核心的环节是设置回报值,合理有效的回报值可以保证高效地训练出高水平AI。对于《星际争霸》《王者荣耀》等游戏,可以按照固定的条件设置明确的回报值,例如将取得最终胜利设置为固定的回报值。但是一局游戏的时间有时较长,在整局对抗过程中,如果只有最终的回报值将导致训练非常低效。这就是作战推演中遇到的一个难题,即回报值稀疏问题。为了解决这个难题,现有的解决方案都是在对抗过程中设置许多细节条件,如获得回报值或损失回报值的具体行为。比如在“庙算·智胜”平台中的博弈对抗,可以设置坦克击毁对手、占领夺控点即可获得回报值,如果被打击、失去夺控点等则会损失回报值,甚至为了加快收敛防止算子长期不能达到有效地点,会在每步(step)都损失微小的回报值。《觉悟AI》也同样设置了详细的奖赏表[36],从资源、KDA(杀人率(kill,K),死亡率(death,D),支援率(assista, A))、打击、推进、输赢 5 个维度设置了非常详细的具体动作回报值。这样就可以有效解决回报值稀疏的问题。但是,对于复杂的作战推演来说,设计回报函数可能还需要更多的细节。因为作战情况将更加复杂多样,需要利用逆强化学习[41-42],通过以往的作战数据反向构建奖赏函数。
战争迷雾主要是指在博弈对抗过程中存在信息的不完全情况,我方并不了解未探索的区域实际的态势信息。围棋、国际象棋这类博弈对抗游戏中不存在这类问题。但是在《星际争霸》《Dota 2》《王者荣耀》以及《CMANO》等RTS游戏中设计了这一机制。实际的作战推演过程中同样也存在此类问题,但是情况更加复杂。在实际作战推演中,可以考虑利用不完全信息博弈解决这个问题,已有学者利用不完全信息博弈解决了德州扑克中的不完全信息问题[29],但是在实际作战推演中这一问题还需要进一步探讨研究。
这里需要对智能博弈中的观察信息与游戏状态空间进行区分,观察信息主要是指博弈的 agent在当前态势下可以获取的态势信息,是部分状态信息。由于在智能博弈对抗过程中会产生战争迷雾问题,因此需要在处理博弈信息时设置 agent 可以获取到的信息。《星际争霸》中观察信息主要有两层意思,一个层面是屏幕限制的区域更易于获取态势信息,因为玩家更直观的注意力在屏幕局域,部分注意力在小地图局域。为了更加符合实际, AlphaStar也按照这种限制对《星际争霸》中的注意力区域进行限制,从而更好地防止 AI 产生作弊行为。而这也是部分《星际争霸》AI被人诟病的原因,即没有限制机器的关注区域。另一个层面是对《星际争霸》中作战单元可观察区域内的态势信息进行获取,对于不能获取的态势信息则只能评估预测,而这一部分则涉及对手建模部分,主要利用部分可观察马尔可夫决策过程(partially observable Markov decision process,POMDP)[43],这一技术明显难于完全信息博弈。而对于围棋游戏来说,其中的态势信息是完全可获取的,属于完全信息博弈,态势信息即观察信息。并且围棋游戏属于回合制,相对于即时策略游戏,其有更加充分的获取态势信息的时间。因此,则可以利用蒙特卡洛树搜索(Monte Carlo tree search,MCTS)算法对所获取的围棋游戏中的观察信息进行详细分析,计算出所有可能的结果,进而得出最佳的方案策略。《Dota 2》中的观察信息是指所控制的某个“英雄”所获取的态势信息,其主要也是对主屏幕的态势信息和小地图的态势信息进行结合处理。《王者荣耀》也与此类似,其主要以小地图的宏观信息进行训练,然后以此为基础为战略方案提供支持,如游戏中的“英雄”是去野区发育还是去中路对抗。同时,对主屏幕态势信息进行特征提取,结合强化学习训练,可以得出战术层面的方案和建议,是去选择回塔防御还是进草丛躲避,或者推塔进攻。墨子兵棋推演系统和《CMANO》则更加接近真实作战推演,在作战信息获取各个方面都高度模拟了作战推演的场景,需要获取具体的对空雷达、对地雷达、导弹探测、舰艇雷达等信息后才能判断态势信息,这部分可观察信息非常复杂,需要结合各种情况才能发现部分目标,对于战争迷雾更加真实。因此,作战推演观察信息完全可以借鉴POMDP进行可观察信息建模,但还需要设置各种更加符合真实装备的作战情况,需要在环境中提前设置有针对性的条件。
在博弈对抗过程中对手 AI 的建模也是至关重要的,不同水平的AI会导致博弈对抗的胜率不同,并且直接影响推演对抗的价值[39,40,41,42,43,44,45]。如果对手 AI水平过低,就不能逼真地模拟假设对手,博弈过程和推演结果也价值不高。在 DeepMind 开发的AlphaGo和AlphaStar中,AI性能已经可以击败职业选手,通过训练后产生的决策方案已经可以给职业选手新的战术启发。国内《墨子•未来指挥官系统》也与国内高校合作,研发的基于深度强化学习的智能 AI 已经可以击败全国兵棋大赛十强选手。而在中国科学院自动化研究所开发的“庙算•智胜”上,积分排名前三名的均是AI选手,胜率均在80%以上[11]。但是,现有对手建模主要还是聚焦在一对一的对手建模,很少学者研究多方博弈,而这在实际作战推演中更加需要。在实际作战对抗博弈过程中普遍会考虑多方博弈,如在《墨子•未来指挥官系统》的海峡大潮想定中,红方不仅面对蓝方,还有绿方,蓝方和绿方属于联盟关系。这就需要在对手建模中充分考虑这种复杂的博弈关系。
博弈对抗的环境因素也是影响智能决策的重要因素之一。在围棋、国际象棋这些棋类游戏中,想定是永久固定不变的,而且也完全没有环境的影响,因此AlphaGo这类智能AI完全没有考虑环境的因素。在《觉悟 AI》《Dota 2》这类游戏中就需要考虑不同“英雄”在同一个场景中会产生不同的影响。不同的“英雄”阵容搭配也会对推演结果产生不同的影响,《觉悟AI》尝试利用强化学习技术,结合历史数据解决这一问题。这对于作战推演的武器装备搭配也具有启发价值。但是在实时策略游戏中要考虑更加复杂的环境因素及其影响,不仅作战单元会产生变化,并且在不同的作战推演中,不同的环境之中也会有不同的地形、地貌,这些因素会对作战推演的过程产生非常重要的影响。《CMANO》《墨子·未来指挥官系统》《战争游戏:红龙》中都需要考虑地形因素。例如《CMANO》中登陆作战需要考虑水雷所在区域、登陆舰艇吃水深度,否则会产生搁浅,不能在理想区域登陆会对作战目标产生较大负面影响。因此,对于实际作战推演来说,最大的挑战是防止训练的深度强化学习AI 对某个想定产生过拟合。作战场景是千变万化的,传统的基于规则的AI就很难适应变化的想定,早期的《先知•兵圣》比赛中就比较突出地显示了这一问题。强化学习也容易训练出某个过拟合的模型,导致只在某个想定会有较好的AI智能性,假如更换作战想定就需要重新训练很长时间。为了解决这一问题,现有思路是利用迁移学习、先验知识和强化学习的思路来增强算法的适应性,并可以加速回报函数收敛,保证快速训练出高水平的AI模型。
本节针对智能作战推演所需要的关键属性,结合当前游戏AI、智能兵棋等相关博弈平台,利用相关文献[6,8,24-25,29-30,37-39,43,46-49]进行分析,经过对比不难发现游戏 AI 过渡到智能兵棋,甚至是智能作战推演的难度,各个关键属性也是未来需要研究突破的关键点,具体见表1。
2 作战推演的智能决策核心技术思路
agent从环境中感知当前状态st,从动作空间A中选择能够获取的动作at;执行at后,环境给agent相应的奖赏信号反馈 rt+1,环境以一定概率转移到新的状态st+1,等待agent做出下一步决策。在与环境的交互过程中,agent有两处不确定性,一处是在状态 s 处选择什么样的动作,用策略π(a|s)表示agent的某个策略;另一处则是环境本身产生的状态转移概率
2.2.1 基于值函数的强化学习
强化学习早期利用Q-learning算法来建立游戏AI,通过预先设计每步动作可以获得的回报值来采取动作。Q-learning 最大的局限是需要提前设计好所有执行动作的回报值,它用一张Q表来保存所有的Q值,当动作空间巨大时,该算法难以适应。因此,Q-learning 算法只能在比较简单的环境中建模使用,如在简单的迷宫问题中,让 agent 通过Q-learning算法自动寻找出口。
DeepMind在2015年第一次利用DQN(deep Q network)算法在Atari游戏环境中实现了高水平的智能AI,该AI综合评定达到了人类专业玩家的水平[24]。这也使得DQN算法成为强化学习的经典算法。DQN算法通过神经网络拟合Q值,通过训练不断调整神经网络中的权重,获得精准的预测 Q值,并通过最大的Q值进行动作选择。DQN算法有效地解决了Q-learning算法中存储的Q值有限的问题,可以解决大量的离散动作估值问题,并且DQN算法主要使用经验回放机制(experience replay),即将每次和环境交互得到的奖励与状态更新情况都保存起来,用于后面的Q值更新,从而明显增强了算法的适应性。DQN由于对价值函数做了近似表示,因此强化学习算法有了解决大规模强化学习问题的能力。但是 DQN 算法主要被应用于离散的动作空间,且DQN算法的训练不一定能保证Q值网络收敛,这就会导致在状态比较复杂的情况下,训练出的模型效果很差。在 DQN 算法的基础上,衍生出了一系列新的改进 DQN 算法,如 DDQN (double DQN )算法[51]、优先级经验回放 DQN (prioritized experience replay DQN)算法[52]、竞争构架Q网络(dueling DQN)算法[53]等。这些算法主要是在改进Q网络过拟合、改进经验回放中的采样机制、改进目标Q值计算等方面提升传统DQN算法网络的性能。总体来说,DQN系列强化学习算法都属于基于值函数的强化学习算法类型。基于值函数的强化学习算法主要存在 3点不足:对连续动作的处理能力不足、对受限状态下的问题处理能力不足、无法解决随机策略问题。由于这些原因,基于值函数的强化学习方法不能适用所有的场景,因此需要新的方法解决上述问题,例如基于策略的强化学习方法。
2.2.2 基于策略的强化学习
在基于值函数的强化学习方法中,主要是对价值函数进行了近似表示,引入了一个动作价值函数q,这个函数由参数w描述,以状态s与动作a为输入,计算后得到近似的动作价值,即式(4):
在基于策略的强化学习方法中,主要采用类似的思路,只不过主要对策略进行近似表示。此时,策略可以被描述为一个包含参数θ的函数,θ主要为神经网络中的权重,即式(5):
在基于策略的强化学习方法中,比较经典的就是理查德·萨顿(Richard S.Sutton)在2000年提出的 AC(actor-critic)框架强化学习算法。AC 包括两部分:演员(actor)和评价者(critic)。其中actor使用策略函数负责生成动作(action),通过动作与环境进行交互。而critic使用第2.2.1节提到的价值函数来评估actor的表现,并指导actor下一阶段的动作。总体来说,critic 通过 Q 网络计算状态的最优价值Vt,而actor利用Vt迭代更新策略函数的参数,进而选择动作,并得到反馈和新的状态, critic 使用反馈和新的状态更新 Q 网络参数 w,在后面critic会使用新的网络参数w帮助actor计算状态的最优价值Vt。
2016 年 DeepMind 在国际机器学习大会(International Conference on Machine Learning)提出了A3C算法[54]。之前的DQN算法为了方便收敛使用了经验回放的技巧;AC 也可以使用经验回放的技巧。A3C更进一步,还克服了一些经验回放的问题,主要采取随机性策略[55]。这里确定性策略和随机性策略是相对而言的,对于某一些动作集合来说,它可能是连续值,或者非常高维的离散值,这导致动作的空间维度极大。如果使用随机性策略,即像DQN算法一样研究它所有的可能动作的概率,并计算各个可能动作的价值,那需要的样本量是非常大的。于是DeepMind就想出使用确定性策略来简化这个问题[56]。作为深度确定性策略梯度(deep deterministic policy gradient)、critic目标网络和深度双Q网络(double DQN )的当前Q网络,目标Q网络的功能定位基本类似,但是DDPG有自己的actor策略网络,因此不需要贪婪法这样的选择方法,这部分DDQN的功能到了DDPG可以在actor当前网络完成。而对经验回放池中采样的下一状态s'使用贪婪法选择动作a',这部分工作的作用是估计目标 Q 值,因此可以放到 actor 目标网络完成。
此外,actor当前网络也会基于critic目标网络计算出的目标Q值进行网络参数的更新,并定期将网络参数复制到 actor 目标网络。DDPG 参考了DDQN的算法思想,通过双网络和经验回放,以及一些其他的优化,比较好地解决了AC难收敛的问题。因此在实际产品中尤其是与自动化相关的产品中使用得比较多,是一个比较成熟的AC算法。2017年, Open AI在神经信息处理系统大会(Conference and Workshop on Neural Information Processing Systems)上又提出了改进的多 agent 深度确定性策略梯度(multi-agent deep deterministic policy gradient)算法[57],把强化学习算法进一步推广应用到多agent环境。在AC框架下,比较经典的算法还有近端策略优化(proximal policy optimization)算法[58]、柔性演员-评论家(soft actor-critic)算法[59]、双延迟深度确定性策略梯度(twin delayed deep deterministic policy gradient)算法[60]等,这些算法也都是在样本提取效率、探索能力增强方面进一步改进优化AC框架的。
参考文献
[1] 沈宇, 韩金朋, 李灵犀, 等. 游戏智能中的 AI: 从多角色博弈到平 行博弈[J]. 智能科学与技术学报, 2020, 2(3): 205-213.
[2] 胡晓峰, 贺筱媛, 陶九阳. AlphaGo 的突破与兵棋推演的挑战[J]. 科技导报, 2017, 35(21): 49-60.
[3] 叶利民, 龚立, 刘忠. 兵棋推演系统设计与建模研究[J]. 计算机与 数字工程, 2011, 39(12): 58-61.
[4] 谭鑫. 基于规则的计算机兵棋系统技术研究[D]. 长沙: 国防科学 技术大学, 2010.
专知便捷查看
便捷下载,请关注专知公众号(点击上方蓝色专知关注)
后台回复“IGCD” 就可以获取《「智能博弈」最新2022综述:游戏AI对作战推演的启示》专知下载链接