Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

一图尽展视频游戏 AI 技术,DQN 无愧众算法之鼻祖

游戏中的人工智能技术纷繁杂乱,近期来自来自哥本哈根大学和纽约大学的几位研究人员发表的一篇论文对相关技术做了详尽的综述,并用一张图描述出了游戏 AI 技术的历史沿革,DQN 以其巨大影响成为众算法之鼻祖。

如今,将人工智能技术应用到游戏中已经是一个成熟的研究领域,有许多会议和专门的期刊对此进行讨论。来自哥本哈根大学和纽约大学的几位研究人员近期发布的一篇综述文章中,梳理并回顾了视频游戏深度学习领域的最新进展,详细介绍了各种游戏研究平台及相关深度学习方法的演化历史,同时讨论了重要的开放性挑战。据作者介绍,其撰写该论文旨在从不同类型游戏的视角来回顾这个研究领域,指出它们对深度学习的挑战,以及如何利用深度学习来玩这些游戏。

我们感兴趣的是,在不存在前向模型的情况下,使用像素数据或特征向量,玩好一款特定的视频游戏(不同于围棋等棋盘游戏)的方法。

值得注意的是,尽管这篇文章收集并讨论了大量的游戏 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 扩展到如此复杂的水平是一个重要的开放性挑战。

理论游戏深度学习综述论文深度强化学习DQN
4
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

自动编码器技术

自动编码器是用于无监督学习高效编码的人工神经网络。 自动编码器的目的是学习一组数据的表示(编码),通常用于降维。 最近,自动编码器已经越来越广泛地用于生成模型的训练。

深度强化学习技术

强化学习(Reinforcement Learning)是主体(agent)通过与周围环境的交互来进行学习。强化学习主体(RL agent)每采取一次动作(action)就会得到一个相应的数值奖励(numerical reward),这个奖励表示此次动作的好坏。通过与环境的交互,综合考虑过去的经验(exploitation)和未知的探索(exploration),强化学习主体通过试错的方式(trial and error)学会如何采取下一步的动作,而无需人类显性地告诉它该采取哪个动作。强化学习主体的目标是学习通过执行一系列的动作来最大化累积的奖励(accumulated reward)。 一般来说,真实世界中的强化学习问题包括巨大的状态空间(state spaces)和动作空间(action spaces),传统的强化学习方法会受限于维数灾难(curse of dimensionality)。借助于深度学习中的神经网络,强化学习主体可以直接从原始输入数据(如游戏图像)中提取和学习特征知识,然后根据提取出的特征信息再利用传统的强化学习算法(如TD Learning,SARSA,Q-Learnin)学习控制策略(如游戏策略),而无需人工提取或启发式学习特征。这种结合了深度学习的强化学习方法称为深度强化学习。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

重构技术

代码重构(英语:Code refactoring)指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

规划技术

人工智能领域的「规划」通常是指智能体执行的任务/动作的自动规划和调度,其目的是进行资源的优化。常见的规划方法包括经典规划(Classical Planning)、分层任务网络(HTN)和 logistics 规划。

蒙特卡罗树搜索技术

蒙特卡洛树搜索(英语:Monte Carlo tree search;简称:MCTS)是一种用于某些决策过程的启发式搜索算法,最引人注目的是在游戏中的使用。一个主要例子是电脑围棋程序,它也用于其他棋盘游戏、即时电子游戏以及不确定性游戏。

数据压缩技术

数据压缩是指在不丢失有用信息的前提下,缩减数据量以减少存储空间,提高其传输、存储和处理效率,或按照一定的算法对数据进行重新组织,减少数据的冗余和存储的空间的一种技术方法。数据压缩包括有损压缩和无损压缩。在计算机科学和信息论中,数据压缩或者源编码是按照特定的编码机制用比未经编码少的数据位元(或者其它信息相关的单位)表示信息的过程。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

Q学习技术

Q学习是一种用于机器学习的强化学习技术。 Q-Learning的目标是学习一种策略,告诉智能体在什么情况下要采取什么行动。 它不需要对环境建模,可以处理随机转换和奖励的问题,而无需进行调整。

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

大数据技术技术

大数据,又称为巨量资料,指的是传统数据处理应用软件不足以处理它们的大或复杂的数据集的术语。

目标函数技术

目标函数f(x)就是用设计变量来表示的所追求的目标形式,所以目标函数就是设计变量的函数,是一个标量。从工程意义讲,目标函数是系统的性能标准,比如,一个结构的最轻重量、最低造价、最合理形式;一件产品的最短生产时间、最小能量消耗;一个实验的最佳配方等等,建立目标函数的过程就是寻找设计变量与目标的关系的过程,目标函数和设计变量的关系可用曲线、曲面或超曲面表示。

迁移学习技术

迁移学习是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,但是促进迁移学习的算法的开发是机器学习社区持续关注的话题。 迁移学习对人类来说很常见,例如,我们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

进化策略技术

进化策略(Evolutionary Strategies,ES)是由德国的I. Rechenberg和HP. Schwefel于1963年提出的。ES作为一种求解参数优化问题的方法,模仿生物进化原理,假设不论基因发生何种变化,产生的结果(性状)总遵循零均值、某一方差的高斯分布。

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

聚类技术

将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。

推荐文章
暂无评论
暂无评论~