2.4 展望与总结
尽管我们已经成功地在一些游戏中应用了强化学习方法来生成高质量的AI,但是这个方向依然需要探索,从实际应用的角度考虑,强化学习方法的效率与能力需要进一步提升。如何让机器自动生成的AI和人类的表现越来越接近,而不仅仅是能力上的接近,这是一个非常重要而困难的问题。
从整个游戏产业发展的角度来看,强化学习技术只有不断降低使用门槛,才能让更多的游戏从业人员轻松地在自己的游戏产品中应用,并创造更多的游戏可能性。可喜的是,这几个方面在近些年得到了学术界和游戏从业者的关注,相关研究如雨后春笋般出现,这给了我们充足的信心相信强化学习技术会在未来的游戏开发中占有非常重要的地位。
下面我们将分别从AI行为复杂化、AI表现拟人化和AI制作产品化来展望一下强化学习游戏AI未来的图景。
2.4.1 AI行为复杂化
随着计算机计算性能的大幅提升,不论是在PC领域、主机领域,还是在移动领域,游戏的品类与玩法都在日新月异地发展。前面的章节向大家介绍了机器学习技术在制作竞速类游戏和格斗类游戏AI中的应用,这两类游戏玩法相对简单,但是机器学习技术已经可以在更复杂的游戏品类中一展身手了,如OpenAI在2018年制作的Openai Five,就让AI表现出了合作与对抗博弈的复杂行为[3]。
《Dota》是一个大型的多人在线竞技游戏,游戏分为两个阵营,每个阵营有5个能力各不相同的角色。在游戏中,玩家需要控制自己的角色,通过击杀小兵、野怪、建筑等获得金币、经验、能力加成等资源,最终在与对手的对抗和队友的合作中消灭对手的基地取得胜利。可以看到,《Dota》游戏中的元素非常多,既有合作又有博弈,是一个玩法非常丰富的游戏。对于以往的规则系统而言,这种类型的游戏AI非常难编写。但是OpenAI利用强化学习方法,自动地生成了非常高水平的AI。
在OpenAI的研究中,工作人员从游戏中获取各种人类玩家同样可以获取的数据(见图2.21),如角色的信息、队友的信息、可见对手的信息等,并通过深度神经网络将这些信息编码为强化学习的感知部分。
图2.21 《Dota》中的观测空间
为了完成复杂的训练任务,工作人员设计了一个超大规模的分布式强化学习训练框架,如图2.22所示。这个框架有Rollout Worker的部件,会不断地利用当前的策略与游戏客户端进行通信,产生样本轨迹,并将这些轨迹传递到优化器的缓存空间中,优化器会从这个缓存空间中采样数据来对策略进行强化学习的优化,优化后的策略会交由Rollout Worker使用,以产生更优质的轨迹。
图2.22 《Dota》的分布式强化学习训练框架
基于此框架利用模型之间的自我对弈,不断地训练模型去打败过去的模型,从而达到提升模型能力的目的。最终,模型经过约一年的训练战胜了《Dota》的世界冠军。《Dota》模型的能力变化如图2.23所示。
图2.23 《Dota》模型的能力变化
这种高水平的复杂行为AI是以往基于状态机和行为树之类的方法难以企及的。目前这种方法对于计算资源的要求还比较高,在实际落地应用时对开发成本依然有着比较大的考验,但是我们有理由相信,随着技术的不断完善,强化学习的训练会越来越高效,在制作复杂行为AI上将会迸发出更强的活力。这对于适应越来越丰富的游戏品类和玩法有着重要的意义。
2.4.2 AI表现拟人化
如果想在游戏中打造极致的AI服务体验,最重要的就是让玩家察觉不到这是一个AI。计算机科学之父阿兰·图灵曾经提出过这样一种思想实验:如图2.24所示,假设有一个人和一台机器被隔开,现在有一个测试者通过一些装置对人和机器随意提问。如果机器能够让测试者做出超过30%的误判,那么这台机器就通过了测试。这就是著名的图灵测试。
对于制作高水平的游戏AI而言,实际上就是要在游戏这个小场景里,让AI通过图灵测试,即让玩家在大部分时候分不清他的对手或队友是机器还是真实的玩家。机器制作的角色往往是受游戏制作者控制的,游戏制作者可以通过它们来为玩家精心打造好的体验,这是所有游戏制作者希望达到的一种终极形态。
图2.24 图灵测试
实际上,这种形态离我们并没有那么远。目前已经有很多工作一直在研究如何让机器根据人类的行为学习,从而又快又好地得到一个行为策略。这个研究方向通常被称为模仿学习(Imitation Learning),如图2.25所示。模仿学习可以把人类玩家的数据利用起来以提高模型的学习能力。这些数据是由轨迹组成的,如,每个轨迹都包含人类处于不同状态时的决策,在状态和动作之间建立机器学习预测模型[4]。模型训练的目标就是使模型生成的状态和动作轨迹的分布和输入的轨迹分布匹配。当模型的预测精度足够高时,模型就能够产生和人类类似的决策,从而达到拟人的目的。
图2.25 模仿学习
当然,这里面还存在很多问题。一方面,人类的高质量数据获取并不容易。另一方面,采集的数据中可能有很多特殊的状态并没有被涵盖,导致机器在预测的时候不知所措。由于序列决策问题,这些错误会逐渐累积,因此AI的整体表现会变得怪异。
2.4.3 AI制作产品化
游戏AI的打造与游戏本身的机制紧密相关。制作AI的目的是更好地服务游戏的产品内核,因此对于游戏AI的制作方向,游戏产品的主导者(游戏策划、制作人)往往有更深刻的理解,但是他们不一定具备编写AI的基本技能,更不要说深入理解机器学习来调优AI的表现。因此有必要将AI制作的流程进行产品化的打造,对于非技术类型的游戏制作者而言,不必要的技术细节应当进行透明化。
UC Berkeley的人工智能实验室做了这样的一项研究[5]:如图2.26所示,首先让用户提供一些完成任务的样例数据,然后基于这些数据训练一个任务成功与否的判断分类器,将分类器的结果作为奖励,用以进行强化学习的训练,并在这个过程中搜集分类器的负样本。最后依据学习的结果,选择一些样本对用户进行询问。不断迭代这个过程就能够得到一个不错的AI。这种技术称为主动学习技术。
可以看到,利用主动学习技术是有可能为非技术人员提供更为直接的设计游戏AI的途径的。对于能够明确定义目标的任务,只需要设定目标后,利用强化学习进行学习。如果不能准确描述出来,则可以使用示范的形式。在这个过程中,将强化学习的细节进行透明化,非技术人员只需要用一些简单的接口去定义想要的AI,剩下的事情就交给机器自动完成了。
图2.26 主动学习
2.4.4 总结
如何能够低成本地研发高质量AI一直是游戏开发中困扰开发者的难题,也是广大游戏从业者一直希望有所突破的方向。传统的游戏AI开发方法,受限于技术内核,需要依据策划对游戏深入的理解及编写复杂的游戏逻辑,不但开发周期长,而且规则逻辑、参数调整都非常麻烦,具有非常高昂的人力成本。另外,这类AI的行为模式往往单一且能力水平有限,难以满足广大玩家的需求。
本章介绍了强化学习方法在制作游戏AI方面的一些探索。利用强化学习方法,只需要部分的人工参与,就可以在竞速类、格斗类等游戏上建立快速的高质量游戏AI生成流程。这个流程不仅能够生产在竞技水平上与一流的人类玩家相匹配的AI,还在能力分级、拟人行为等方面做了许多适应实际游戏开发需要的工作。
● 基于强化学习方法解决了业务冷启动问题。
● 通过对算法和分布式系统的优化,提升了模型的训练效率,一定程度上解决了机器学习模型训练时间成本高昂的问题。
● 在自对弈策略、奖励设计等方面形成了设计模板,可以快速实现不同风格玩法的Bot。
● 通过奖励设计、动作优化、利用示例数据等手段解决强化学习方法的拟人化问题。
● 通过改变输入状态、动作优化等方式实现模型分级,以适配不同水平玩家的需求。
● 实现了包括离线训练、模型评估、模型管理、数据分析和发布的一套完整系统,并通过系统API实现自定义的自动化工作流。
通过这些探索,我们可以看到强化学习方法在游戏AI制作领域具有巨大的潜力,相信强化学习方法能够为游戏AI制作的工作模式带来新的变革,从而进一步改变整个游戏的形态。
[1] SUTTON R Baito A. Reinforcement learning: An introduction[M]. MIT press, Cambridge, MA, 2018.
[2] DAVID S, Julian S, HASSABIS D, et al. Mastering the game of go without human knowledge[J]. Nature, 2017, 550(7676): 354-359.
[3] CHRISTOPHER B, Brockman G,CHAN B, et al. Dota 2 with large scale deep reinforcement learning[OL].arXiv preprint arXiv:1912.06680, 2019.
[4] JONATHAN H, ERMON S. Generative adversarial imitation learning[C]//In: Advances in Neural Information Processing Systems(NIPS),Barcelona, Spain, 2016: 4565-4573.
[5] SINGH A,Yang L, LEVINE S, et al. End-to-end robotic reinforcement learning without reward engineering[J]. Robotics: Science and Systems, 2019, 13, 14-14.