如今,将人工智能技术应用到游戏中已经是一个成熟的研究领域,有许多会议和专门的期刊对此进行讨论。来自哥本哈根大学和纽约大学的几位研究人员近期发布的一篇综述文章中,梳理并回顾了视频游戏深度学习领域的最新进展,详细介绍了各种游戏研究平台及相关深度学习方法的演化历史,同时讨论了重要的开放性挑战。据作者介绍,其撰写该论文旨在从不同类型游戏的视角来回顾这个研究领域,指出它们对深度学习的挑战,以及如何利用深度学习来玩这些游戏。
我们感兴趣的是,在不存在前向模型的情况下,使用像素数据或特征向量,玩好一款特定的视频游戏(不同于围棋等棋盘游戏)的方法。
值得注意的是,尽管这篇文章收集并讨论了大量的游戏 AI,但还是有很多在本文中没有涉及到 —— 游戏 AI 是一个广阔而多样的领域。这篇论文的重点在于深度学习方法如何更好地玩视频游戏,而关于如何以靠谱的、有趣的或与人类似的方式玩游戏的研究也有很多。人工智能技术也被用于对玩家的行为、经验或偏好建模,或被用于生成游戏内容(如游戏难度、贴图或规则)。深度学习并不是游戏中唯一使用的人工智能方法。其它比较著名的方法,例如还包括蒙特卡罗树搜索和演化计算。在接下来的内容中,读者需要记住,这篇综述论文涉及的范围还是很有限的。
本文将简单介绍这篇论文的核心内容,并着重介绍关于游戏 AI 中深度学习技术历史演化的部分。
论文标题:Deep Learning for Video Game Playing
链接:https://arxiv.org/abs/1708.07902
摘要:在本文中,我们将回顾近年来深度学习的进展,重点关注深度学习技术如何被用于玩不同类型的电子游戏,如第一人称射击游戏、街机游戏和实时策略游戏。我们分析了不同的游戏类型对深度学习系统的独特要求,并着重讨论了将这些机器学习方法应用于视频游戏时重要的开放性挑战(如通用的游戏玩法、应对巨大的决策空间和稀疏的奖励信号)。
游戏中的深度学习
人工神经网络的架构大致可分为两大类。一类是前馈和递归神经网络(RNN),前馈网络采用单个输入(例如游戏状态的表示),并输出每个可能动作的概率值。另一类是卷积神经网络(CNN),它由可训练的滤波器组成,适用于处理图像数据,例如来自视频游戏屏幕的像素。
RNN 通常应用于时间序列数据,其中网络的输出取决于先前时间步骤的激活。除了网络的先前隐藏状态与下一个输入一起反馈给网络外,RNN 的训练过程类似于前馈网络。这就允许网络通过记忆先前的激活而变得具有上下文感知,这在那种单个观察不代表完整状态的游戏中是非常有用的。对于 shi'pi 视频游戏,通常使用一堆卷积层,然后是循环层和完全连接的前馈层。
机器学习任务中主要有三种任务类型:监督学习、无监督学习和强化学习。这些任务类型中的方法通常基于梯度下降优化。
1、监督学习
在监督学习中,模型是从样本中训练出来的。大数据集通常有利于提高模型的性能。在游戏中这些数据可以来自游戏踪迹(即人类在游戏中的记录),用这些数据可以训练 agent 学习从输入状态到输出动作的映射。
虽然现有数据可以让 agent 快速地学习到最佳实践,但由此获得的模型往往也是脆弱的;可用的数据生产成本可能很高,并且可能缺少 agent 应该处理的关键方案。对于游戏的玩法,算法也仅限于数据中可用的策略,而不能自行探索新算法。因此,在游戏中监督算法通常通过与强化学习算法及一些额外训练相结合来使用。
监督学习在游戏中的另一个应用是学习游戏的状态切换。神经网络可以学习预测动作状态对的下一状态,而不是为给定状态生成动作。
2、无监督学习
无监督学习的目标不是学习数据与其标签之间的映射,而是发现数据中的模式。这些算法可以学习数据集的特征分布,可以用于聚类相似数据,将数据压缩为基本特征,或创建原始数据特征的新合成数据。对于奖励稀疏的游戏,例如蒙特祖玛的复仇(Montezuma』s Revenge),以无监督的方式从数据中学习是一种潜在的解决方案,也是一项重要的开放式深度学习挑战。
深度学习中一种重要的无监督学习技术是自动编码器,它是一种试图学习使输入与输出一致的神经网络。网络由两部分组成:将输入 x 映射到低维隐藏向量 h 的编码器,以及尝试从 h 重构 x 的解码器。主要思想是,为了保持较小的 h,网络必须学会压缩数据,从而学习良好的表示。研究人员将这种无监督算法应用于游戏,可以从高维数据中提取到更有意义的低维数据。但目前这一研究方向仍处于早期阶段。
3、强化学习
在强化学习(RL)中,agent 通过与向 agent 提供奖励信号的环境交互来学习行为。视频游戏可以容易为强化学习设立环境,而玩家则建模为可以在每个步骤采取有限动作集的 agent,奖励信号可以由游戏分数来确定。
在 RL 中,agent 依赖于奖励信号。这些信号可能经常发生,例如游戏中得分的变化;也可能不经常发生,例如用赢或输作为奖励信号。视频游戏可以和 RL 很好地结合,因为大多数游戏都会为成功的策略提供奖励。但开放世界游戏(Open world games)并不总是有明确的奖励模型,因此对 RL 算法具有挑战性。
游戏类型和研究平台
深度学习方法的快速发展无疑受益于公开数据集上的评测。游戏 AI 也是类似,一个游戏 AI 算法的好坏完全由游戏中得分多少或者能否赢得比赛而决定。像 IEEE 计算智能和游戏大会(IEEE Conference on Computational Intelligence and Games)这样的会议在各种游戏环境中进行了广泛的比赛。
论文中对各种与深度学习相关的流行游戏及研究平台的特征及面临的挑战做了详尽的介绍,这里不再一一赘述。
DL 技术历史沿革
上图显示了各种深度学习方法以及它们之间互相影响的示意图(下面的部分相当于对此图的长篇解读)。图中的每一种方法都被着色了,以显示出用于对比的游戏基准。
DQN 是一种影响巨大的算法,它将基于梯度的深度学习应用于基于像素的视频游戏中,其最初被应用于 Atari 基准测试。请注意,还存在一些更早的方法,但是都没有 DQN 成功。Double DQN 和 Dueling DQN 是使用多个网络改进估计过程的早期的对 DQN 的扩展。DRQN 则采用递归神经网络作为 Q 网络。Prioritized DQN 是另一种早期的扩展,它加入了改进后的经验回放采样技术。Boostrapped DQN 建立在 Double DQN 的基础上,采用不同的改进后的采样策略。在 Atari 游戏中对 DQN 的进一步改进包括:C51 算法,该算法基于 DQN,但改变了 Q 函数;使网络随机化从而帮助模型进行探索的 Noisy-Nets;同样从示例中学习的 DQfD;结合了许多最先进的技术的 Rainbow 模型。
Gorila 是第一个基于 DQN 建立的异步方法,接着是 A3C 方法,它为 actor-critic 方法使用了多个异步智能体。2016 年底,UNREAL 进一步扩展了这一概念,它将已有的工作与辅助学习(auxiliary learning)结合起来,从而应对稀疏反馈环境。从那时起,出现了许多对 A3C 技术额外的扩展。IMPALA 通过重点关注一个被训练能够玩所有 Atari 游戏的智能体,对此进行了进一步的扩展。2018 年,随着 Ape-X 的诞生,大规模分布式学习在此领域的研究也得以继续发展。
演化计算技术也见证了视频游戏的复兴。首先 Salimans 等人证明了进化策略在此领域可以与深度强化学习一争高下 [121]。随后,Uber AI 又发表了两篇论文:一篇表明不涉及求导的进化算法可以与深度强化学习相匹敌,另一篇是对进化策略(ES)的扩展。这些工作都得益于简单的并行化处理,并可能在探索过程中具有一定的优势。
在引入 DQN 前后,在 Atari 游戏中被采用的另一种方法是置信域策略优化。该方法更新一个根据环境更新的替代目标函数。2017 年晚些时候,近端策略优化作为一种更鲁棒、更简单的替代优化方案被引入,它也借鉴了 A3C 的创新指出。有些扩展方法是专门为游戏「蒙特祖玛的复仇」(ALE 基准测试中的一款游戏)而开发的,但由于奖励信息稀疏和信息隐藏问题,这款游戏尤其困难。在蒙特祖玛的复仇中表现最好的算法是通过内在动机和层次学习扩展 DQN。吃豆人也是一款非常著名的 Atari 游戏,研究人员针对其不同的部分单独学习奖励函数,以使智能体对新环境更鲁棒。
Doom 是 2016 年被使用的另一个新对比基准。在这款游戏上的大部分工作都是针对为 Atari 设计的方法的扩展,从而处理更丰富的数据。A3C + 递进学习(curriculum learning)的方法提出将递进学习与 A3C 结合使用。DRQN + 辅助学习的方法通过在训练过程中加入额外的奖励来扩展 DRQN。DQN + SLAM 融合了 DQN 与映射未知环境的技术。
DFP 是唯一没有扩展在 Atari 使用过的技术的方法。正如 UCT 对 Atari 游戏的分类结果那样,他们将台球分类为以对象为中心的预测任务 [36],将赛车分类为直接感知任务,DFP 使用监督学习来对游戏进行学习。除了 UCT 的分类结果,所有这些技术都学着直接预测游戏的未来状态,并从这些信息中做出预测。这些不同年代的工作,没有任何工作之间是相互引用的。除了直接感知,在赛车游戏领域唯一独特的工作是 Deep DPG,它扩展了 DQN 将其用于连续控制。这项技术已经游戏中被扩展到机器人足球。
2016 年底,研究人员基于 Q-learning 进行了针对于星际争霸游戏中的微操(单位控制)的研究工作。IQL 通过将所有其他智能体视为环境的一部分,扩展了 Prioritized DQN。COMA 通过计算反事实奖励(每个智能体增加的边际收益)扩展了 IQL。biCNet 和零阶优化也是基于强化学习的方法,但不是从 DQN 中引申出的。另一种流行的方法是层次学习。2017 年,研究人员将回放数据技术与层次学习结合,进行了相关的尝试。2018 年,用两种不同的强化学习方法与层次学习方法相结合的技术取得了目前最佳的性能。
2016 年发表的一些工作将 DQN 扩展到了「我的世界」游戏中。大约在同一时间,研究人员开发出了一些技术,使 DQN 具有上下文感知能力并将其模块化,从而使其能够应对大的状态空间。最近,递进学习技术也被应用到了「我的世界」中。
2015 年,DQN 被应用到了文本冒险游戏中。不久之后,它被修改为针对特定于语言的文字冒险游戏的架构,并使用「state-action」对的相关性作为 Q 值。关于这些游戏的大部分工作都重点关注显式的语言建模上。「golovin ai agent」和「Affordance Based Action Selection」都利用神经网络学习了语言模型,该语言模型为智能体玩游戏提供动作选择机制。最近,在 2018 年,研究人员再次将 DQN 与一个动作消融网络(Action Elimination Network)联合使用。
将以前算法融合、从而进行扩展已经被证明是将深度学习应用于视频游戏的一个很有前途的方向,Atari 是最流行的强化学习对比基准。另一个明显的趋势(如表 2 所示)是对于并行化计算的关注:在多个 CPU 和 GPU 之间分配工作。并行化计算在 actor-critic 方法(如 A2C 和 A3C)以及演化计算方法(如 Deep GA 和进化策略)中最为常见。层次强化学习、内在动机学习和迁移学习是目前视频游戏开发中亟待解决的问题,是值得探索的新方向。
依然存在的挑战
虽然深度学习在视频游戏中取得了显着成效,但仍存在许多重要的开放性挑战。事实上,如果从未来十年或二十年来回顾现在的研究,我们很可能会将现在的研究看做重大研究的初期。在论文中,作者将当前游戏 AI 所面临的挑战分为四大类 —— 代理模型属性、游戏产业、游戏中的学习模型、计算资源等,并做了详细分析。我们在此仅对「代理模型属性」的开放问题作以简单介绍。
1、通用视频游戏(General Video Game Playing)
解决单个问题并不智能,如何设计能够玩所有视频游戏的通用游戏 AI agent,是一个重要的挑战。
2、克服稀疏,延迟或欺骗性的奖励
Montezuma's Revenge 等以稀疏奖励为特征的游戏仍然是大多数深度强化学习方法的挑战;虽然最近将 DQN 与内在动机或专家演示相结合的进步可以提供帮助,但是对于当前深度 RL 方法而言,具有稀疏奖励的游戏仍然是一个挑战。
3、多智能体学习
当前的深度 RL 方法主要涉及训练单个代理。少量智能体合作的情况已经有些研究,但如何将这些研究扩展到更多的智能体仍然是一个开放的挑战。
4、终身适应
当玩家总是在 FPS 地图中的相同位置遭伏击时,人类玩家可以快速改变其行为;然而当前的大多数智能体则需要昂贵的再训练才能适应这种情况以及它们在训练期间未遇到的其他不可预见的情况。
5、类人游戏
大多数方法建模的智能体通常只考虑游戏分数。但如果期望人类在视频游戏中与基于人工智能的机器人对抗或合作,其他因素也会发挥作用。类人游戏是一个活跃的研究领域。
6、可调节的性能水平
目前几乎所有关于 DL 玩游戏的研究都旨在创造尽可能获得高分的智能体。但出于游戏测试、创建教程和演示游戏的目的,能够创建具有特定技能水平的智能体可能很重要。
7、处理极大的决策空间
虽然 Chess 的平均分支因子在 30 左右,而 Go 的平均分支因子在 300 左右,但像星际争霸这样的游戏的分支因子则远远超过这样的数量级。虽然最近进化规划的进展允许在具有更大分支因子的游戏中进行实时和长期规划,但如何将 Deep RL 扩展到如此复杂的水平是一个重要的开放性挑战。