前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >围棋之后,AI玩FPS游戏也能秀人类一脸!

围棋之后,AI玩FPS游戏也能秀人类一脸!

作者头像
刀刀老高
发布2018-04-10 17:47:50
1.1K0
发布2018-04-10 17:47:50
举报
文章被收录于专栏:奇点大数据奇点大数据

基于经典第一人人称射击游戏毁灭战士DOOM的AI挑战赛“Visual Doom AI Competition @ CIG 2016”尘埃落定,Facebook团队和Intel团队的AI分别拿下两个赛制最佳,同时也涌现出若干优秀的学生参赛AI。本文根据最新的公开信息,对赛事本身和卡耐基梅隆大学参赛团队的AI做出简要介绍。

内容列表

  • 背景介绍
    • 游戏毁灭战士DOOM简介
    • 竞赛平台ViZDOOM简介
  • 赛事介绍
    • 赛制与规则
    • 参赛队伍
    • 赛事结果
  • 卡耐基梅陇大学参赛AI介绍
    • 基本模型与算法
    • 遇到困难与解决问题的创新思路
    • 算法评价
    • 超越人类玩家的实验结果
  • 感言

背景介绍

第一人称射击游戏,杀红眼的死亡竞赛和人工智能,每一个概念充满了话题性,当融合了这三个要素的基于游戏毁灭战士DOOM的AI挑战赛“Visual Doom AI Competition @ CIG 2016”尘埃落定,就是搞个大新闻的时候了:

根据评论更新:这些人工智能算法与玩家们常见的游戏内置bot和外挂有本质区别,内置bot和外挂都是通过获取游戏内部数据来获得不对称优势,而这些算法,他们在测试时和人类一样,只通过游戏屏幕的图像信息来玩游戏。

然而亮点中更有惊喜,本次赛事的两个亮点:

  • Facebook和Intel均派出团队参数;
  • 先前公布出“已经超越人类玩家水平AI”的卡耐基梅隆团队并!未!夺!冠!细思极恐哈哈

毁灭战士DOOM

DOOM于1993年由id software发行,现在已经发行到了第四代。初代的画面是这样的:

DOOM4的游戏画面是这样的:

作为硬核的古典派第一人称射击游戏,就是突出一个“莽”一个“爽”。毁灭战士系列是一个伟大的系列,我个人认为其初代和重返德军总部,毁灭公爵等都可以算是第一人称射击游戏上古时代的开山鼻祖。这一次AI们一起相互伤害的的游戏,是DOOM初代,也就是第一幅图中的游戏画面。

需要向领域外读者们指出的是:AI们在竞赛的时候,获取的信息比人类玩家更少,只有游戏画面数据信息,AI们的行动都仅仅基于图像输入后算法输出的决策控制,连声音也没有!这和游戏内置AI不同,游戏内置AI是能够通过游戏引擎获取所有的游戏内部信息的。

ViZDOOM平台简介

ViZDOOM的官网在此。ViZDOOM是什么,请允许我引用其官网的简介如下:

ViZDoom is a Doom-based AI research platform for reinforcement learning from raw visual information. It allows developing AI bots that play Doom using only the screen buffer. ViZDoom is primarily intended for research in machine visual learning, and deep reinforcement learning, in particular. ViZDOOM是一个基于DOOM的AI研究平台,主要针对面向原始视觉信息输入的增强学习。它可以让研究者开发出只利用游戏屏幕数据玩DOOM的AI机器人。ViZDOOM主要面向的是机器视觉学习,更确切地说,就是深度增强学习。

关于ViZDOOM的详细情况,其作者们于2016年5月在arXiv上发布了论文:《ViZDoom: A Doom-based AI Research Platformfor Visual Reinforcement Learning》,可以通过阅读论文获取。

需要说明的是,基于ViZDOOM,研究者是可以直接访问DOOM的游戏引擎的,可以拿到游戏内部的信息。甚至可以利用这些内部信息来训练自己的AI,但是,在测试阶段,是不能得到内部信息的,只能让AI根据游戏画面来自主决策和行动。

用大白话来说,就是训练AI你可以开上帝模式,我不管你。但是真刀真枪干的时候,你AI老老实实地只能用自己的眼睛看游戏画面玩游戏,作弊是休想的。

赛事介绍

赛事的全程是Visual Doom AI Competition @ CIG 2016,赛事地址在这里。比赛的核心目标就是要回答一个问题:

到底AI能不能只根据原始视觉信息高效地玩毁灭战士?

现在答案已经很明显了,这里啰嗦一下对自己的保守观念的鄙视和被打脸的过程。当时赛事出来,@Flood Sung(他现在玩《守望先锋》,正在前往多拉多.....)就给我说了这个事情,我当时就说:

哎哟,你看deepmind也才把Atari那些游戏玩得差不多,那种偏策略的反馈比较延迟的游戏效果还不太好,这就大跃进地要搞FPS了?肯定效果不好!

前几天,卡耐基梅隆大学参赛团队The Terminators(终结者)的AI机器人Arnold(阿诺德)(哎哟,兄弟们,你们这么明目张胆地取名字,州长来找你们哟)的演示视频和论文(后文会解读)出来了,我一看,直接承认自己被打脸,机器人玩得非常流畅,论文里面的结果显示AI已经把20个卡耐基梅隆大学的学生玩家(平均水平)按在地上摩擦。当时我觉得,这个阿诺德是要发啊,肯定能夺冠!

结果比赛结果出来,阿诺德在第一个赛制里面败给了Facebook的F1机器人,在难度更大的第二个赛制里面败给了Intel的IntelAct。我的脸又火辣辣的了......不过好在阿诺德两个赛制都参加了,而且都拿了第二,所以也算是很强了,所以我感觉稍微好些......

既然说到了赛制,那么接下来就介绍下:

赛制与规则

赛制分两种:

  • 已知地图上的受限制死亡竞赛:武器只有火箭炮,机器人可以捡血包和弹药;
  • 未知地图上的的不受限制死亡竞赛:机器人初始只有手枪,可以捡各种武器弹药和血包。提供了两张地图用于训练,3张未知地图用于测试。

规则分为允许与禁止:相对比较细节,领域外同学随意看看即可。

允许:

  • 加载自己的设置文件;
  • 使用任意分辨率;
  • 使用任意可获取的按钮;
  • 使用任意可获取的游戏变量;
  • 使用任意可获取的屏幕数据格式(深度信息不行);
  • 改变渲染设置;
  • 设置机器人的名字与颜色;
  • 使用doom2.wad或freedoom2.wad文件随你。

禁止:

  • 在机器人根目录外修改文件系统;
  • 网络通信;
  • 使用send_game_command命令;
  • 使用new_episode。

奖金

对了,大家可能会问有没有奖金呢?有奖金的哟!

  • 在赛制1中的前三名能分别获取1000,300,200欧元;
  • 在赛制2中的前三名能分别获得2000,1000,500欧元。

这个金额和前阵子的DOTA2奖金比起来确实是九牛一毛,但是对于科技的进步来说,意义则大不一样。

参赛队伍

我在如何评价基于游戏毁灭战士(Doom)的AI死亡竞赛大赛结果? - 杜客的回答中已经做了一些介绍,总得说来,除了Facebook和Intel这两个明星团队,其他3各值得关注的团队是分别是卡耐基梅隆大学的Arnold,埃塞克斯大学的Clyde和东芬兰大学的tuho。

目前,公开了论文的只有卡耐基梅隆大学团队,Facebook的田研究员表示正在撰写文章,其他团队的情况尚未看到相关信息,欢迎知友补充。

比赛结果

这里让我偷个懒,直接从官网截图如下:

赛制1:F1就是Facebook团队,第二名是阿诺德。

赛制2:第一名是Intel团队,第二名是阿诺德。

卡内基梅隆大学参赛AI介绍

从上面的比赛结果中可以看出,卡耐基梅隆大学The Terminators团队的机器人Arnold综合实力不错,在两个赛制中都得到了亚军的好成绩,同时,他们也是目前唯一发布了论文《Playing FPS Games with Deep Reinforcement Learning》的团队,所以下面主要根据他们的论文做一个简要解读。

基本模型与算法

论文使用的模型的出发点还是DQN和DRQN模型,鉴于领域内的知友对于这两个模型都比较熟悉,而领域外的知友对数学公式也并不感兴趣,所以这里我还是采取了偷懒的办法:

关于DQN模型,请阅读我们专栏@Flood Sung的教程DQN从入门到放弃5 深度解读DQN算法。

困难与解决思路

作者们在论文中坦率地指出,一开始他们是用的标准的DRQN模型,结果效果很不好。算法只能在很简单的场景中有良好表现,到了死亡竞赛场景中,表现就很差了。

这是怎么回事呢?作者们通过与Sandeep Subramanian和Kanthashree Mysore Sathyendra讨论,得出以下结论:

We reason that the agents were not able to accurately detect enemies. 我们推出,算法表现不好的愿意是机器人不能很准确地探测到敌人。

有了原因,作者们就给出了新的解决思路,主要是以下几点:

  • 概念上:将游戏过程看做两个阶段,导航阶段和行动阶段。导航阶段就是机器人探索地图,发现物品并捡起物品。行动阶段就是攻击敌人。
  • 框架上:对应不同阶段,使用两个独立的模型来进行训练。导航阶段使用的是原始的DQN,行动阶段是论文创新修改的融入了游戏特征信息的DRQN模型来训练。
  • 增加游戏特征信息的DRQN模型:这是论文的核心创新点之一,说到底,就是将游戏高级信息(比如视野中是否出现敌人)融入到DRQN进行训练,值得仔细看看,图示如下:

在我的回答中,有知友说没有看到游戏状态信息的输入,想知道是怎么在training的时候加入的,我的回答是:有的。注意512维的layer4和后面k维的两个全连接层,CNN输入输入给他们,其中k就是想要探测的k个游戏特征信息,在训练的时候,网络的代价函数是把DRQN的代价函数和交叉熵损失合起来。 虽然有很多游戏信息可以获取,但是论文只用了当前画面中是否出现敌人的指示器。加入这个特征极大地提升了性能,对比图示如下:

经过这么一改进,作者们非常开心,还做了一些其他的结构来融入游戏信息,但是效果都不太好。说明分享卷积层对模型性能有决定性影响。联合训练DRQN模型和游戏特征探测使得卷积核能够获取游戏的相关联信息。在他们的实验中,只花了几个小时就达到了最佳敌人探测水平,准确率0.9。在此之后,LSTM就能得到包含敌人及其位置的特征,使得训练进一步加速。

将游戏分成两个阶段的思路也很重要:死亡竞赛可以分成两个阶段,探索梯度收集物品发现敌人,攻击敌人。称之为导航阶段和行动阶段。训练了两个网络,每个网络针对的是不同的阶段。当前的DQN模型不能将两个针对不同任务优化的网络合并在一起。但是,当前游戏的阶段可以通过预测敌人是否能被看见(行动阶段)或不被看见(探索阶段)来决定,这可以从游戏特征信息中推断。将任务分成两个阶段,每个阶段用不同网络训练的优势:

  1. 框架模块化,不同阶段用不同网络训练测试;
  2. 两个网络可以并行训练,使得训练更快;
  3. 导航阶段只需要3个动作(前进,左右移),极大降低了Q函数需要学习的状态-动作对,使得训练更快;

行动网络使用的是DRQN加游戏信息特征,探索网络使用的是DQN。在评价计算的时候,行动网络每一步都调用,如果视野中没有敌人,或者弹药用尽的时候,导航网络调用来决定行动。 在回馈(reward)设计上,作者们采取了回馈共享(reward shaping)的思路,即:修改回报函数,包含一些小的中间回报来加速学习过程。在击杀敌人给正向回报,自杀给负回报的基础上,向行动网络引入了以下中间回报:

  • 捡到东西加分;
  • 掉血减分;
  • 射击减少弹药减分;

导航网络:

  • 捡到东西加分;
  • 走到岩浆减分;
  • 走的距离越长加分越多,有助于走完整个地图。

算法评价

本质上讲卡内基梅隆大学的AI为了简化AI的训练难度,通过人类的知识将游戏的环节设计成导航阶段和行动阶段,然后设计了三个网络(一个简单点的DQN网络用于导航阶段,一个特征识别网络用于选择不同的阶段,一个DRQN网络用于行动阶段),然后作者巧妙的将特征识别(有没有敌人)的网络和DRQN网络结合在一起训练。特征识别网络是一个典型的监督学习网络,而DRQN则是增强学习的范畴,两者在这里竟然同时合在一起训练,确实是有意思的事情。

最后这篇文章只使用DQN和DQN的变种DRQN,并没有使用目前最强的深度增强学习算法A3C。A3C在Atari上的性能是Nature版本DQN的4倍,效果惊人。所以,这可能是Arnold只拿第二的原因吧。如果他们基于A3C来训练,相信效果会更好,但是整个模型基本都得改一下。我们显然也想提出这样的疑问:“能不能只使用一个网络来玩Doom达到这样的高水平?”在Arnold的基础上监督学习一个端到端网络算是一个办法,但是这样并不能更好的提升游戏AI的水平。最后的最后,Arnold在训练过程中利用了游戏内部的特征来训练,而据田渊栋的回答,他们的方法不怎么使用游戏内部的特征信息,很期待他们的思路。

实验结果

在论文结果中,显示AI水平已经超过了人类玩家,这些玩家是卡耐基梅隆大学的学生:

上面这个表格,显示的是论文对比AI算法和人类玩家游戏水平的结果,具体如下:

  • K/D比例:击杀/死亡比例;
  • 单个玩家场景:机器人和玩家分别和10个游戏原内置AI对战3分钟;
  • 多玩家场景:人类玩家和机器人对抗5分钟。
  • 自杀数:火箭炮等武器过近的射击点会造成自我伤害。注意:人类玩家自杀失误高于AI。

人类得分是取所有人类玩家的平均值。在两个场景中都有20名人类玩家参加。可以看到AI相对于学生玩家的水平。当然,你可以说职业玩家水平可以更高,但是我们只需要回忆一下围棋,回忆一下AlphaGO......AlphaGo也是基于深度增强学习哟。

感言

在我的回答的评论中,知友@碧海居士应该不是领域内人士,但是他的评论值得一看:

如果说围棋是纯拼算法和计算量的话,游戏的实效性就决定了这东西离进入实用近了一步。毕竟战场是即时制而不是回合制的……想象一下这AI用在自动攻击的无人载具上是个多么恐怖的事情……

我们虽然时刻都希望人工智能能够给人类带来共同利益(for the common good),然而现实总是现实,每一次人类科技的进步,总是被首先运用于军事,这点我们必须承认。我们将AI欢乐地在射击游戏上跑,环境仿真越真实,算法效果越好,那么其潜在军事价值就越大,这实在不是一个让人感到欢乐的话题。

意识到这一点,我自己有了两个想法:

  • 对于个人研究者来说,如果基于理想主义,可以不在类似射击的平台上进行算法应用研究,而在一些比较民用方向的平台上研究,比如@Flood Sung在最前沿:深度增强学习再发力,家用机器人已近在眼前 - 智能单元 - 知乎专栏中介绍的斯坦福的室内机器人仿真。
  • 为了国家安全,还是要有一批研究者要继续在军事方面的研究。毕竟这个世界不是康德的世界,霍布斯的世界离我们并不遥远,只有相当的实力,才能确保和平。这个是我基于人生经历的个人观点,不想争论,所以有不同意见的知友,我尊重,但也保留自己的观点,不想花时间讨论。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 奇点 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 内容列表
  • 背景介绍
  • ViZDOOM平台简介
  • 赛事介绍
  • 赛制与规则
  • 奖金
  • 比赛结果
  • 卡内基梅隆大学参赛AI介绍
  • 基本模型与算法
  • 困难与解决思路
  • 算法评价
  • 实验结果
  • 感言
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档