基于经典第一人人称射击游戏毁灭战士DOOM的AI挑战赛“Visual Doom AI Competition @ CIG 2016”尘埃落定,Facebook团队和Intel团队的AI分别拿下两个赛制最佳,同时也涌现出若干优秀的学生参赛AI。本文根据最新的公开信息,对赛事本身和卡耐基梅隆大学参赛团队的AI做出简要介绍。
第一人称射击游戏,杀红眼的死亡竞赛和人工智能,每一个概念充满了话题性,当融合了这三个要素的基于游戏毁灭战士DOOM的AI挑战赛“Visual Doom AI Competition @ CIG 2016”尘埃落定,就是搞个大新闻的时候了:
根据评论更新:这些人工智能算法与玩家们常见的游戏内置bot和外挂有本质区别,内置bot和外挂都是通过获取游戏内部数据来获得不对称优势,而这些算法,他们在测试时和人类一样,只通过游戏屏幕的图像信息来玩游戏。
然而亮点中更有惊喜,本次赛事的两个亮点:
毁灭战士DOOM
DOOM于1993年由id software发行,现在已经发行到了第四代。初代的画面是这样的:
DOOM4的游戏画面是这样的:
作为硬核的古典派第一人称射击游戏,就是突出一个“莽”一个“爽”。毁灭战士系列是一个伟大的系列,我个人认为其初代和重返德军总部,毁灭公爵等都可以算是第一人称射击游戏上古时代的开山鼻祖。这一次AI们一起相互伤害的的游戏,是DOOM初代,也就是第一幅图中的游戏画面。
需要向领域外读者们指出的是:AI们在竞赛的时候,获取的信息比人类玩家更少,只有游戏画面数据信息,AI们的行动都仅仅基于图像输入后算法输出的决策控制,连声音也没有!这和游戏内置AI不同,游戏内置AI是能够通过游戏引擎获取所有的游戏内部信息的。
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。我的脸又火辣辣的了......不过好在阿诺德两个赛制都参加了,而且都拿了第二,所以也算是很强了,所以我感觉稍微好些......
既然说到了赛制,那么接下来就介绍下:
赛制分两种:
规则分为允许与禁止:相对比较细节,领域外同学随意看看即可。
允许:
禁止:
对了,大家可能会问有没有奖金呢?有奖金的哟!
这个金额和前阵子的DOTA2奖金比起来确实是九牛一毛,但是对于科技的进步来说,意义则大不一样。
参赛队伍
我在如何评价基于游戏毁灭战士(Doom)的AI死亡竞赛大赛结果? - 杜客的回答中已经做了一些介绍,总得说来,除了Facebook和Intel这两个明星团队,其他3各值得关注的团队是分别是卡耐基梅隆大学的Arnold,埃塞克斯大学的Clyde和东芬兰大学的tuho。
目前,公开了论文的只有卡耐基梅隆大学团队,Facebook的田研究员表示正在撰写文章,其他团队的情况尚未看到相关信息,欢迎知友补充。
这里让我偷个懒,直接从官网截图如下:
赛制1:F1就是Facebook团队,第二名是阿诺德。
赛制2:第一名是Intel团队,第二名是阿诺德。
从上面的比赛结果中可以看出,卡耐基梅隆大学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. 我们推出,算法表现不好的愿意是机器人不能很准确地探测到敌人。
有了原因,作者们就给出了新的解决思路,主要是以下几点:
在我的回答中,有知友说没有看到游戏状态信息的输入,想知道是怎么在training的时候加入的,我的回答是:有的。注意512维的layer4和后面k维的两个全连接层,CNN输入输入给他们,其中k就是想要探测的k个游戏特征信息,在训练的时候,网络的代价函数是把DRQN的代价函数和交叉熵损失合起来。 虽然有很多游戏信息可以获取,但是论文只用了当前画面中是否出现敌人的指示器。加入这个特征极大地提升了性能,对比图示如下:
经过这么一改进,作者们非常开心,还做了一些其他的结构来融入游戏信息,但是效果都不太好。说明分享卷积层对模型性能有决定性影响。联合训练DRQN模型和游戏特征探测使得卷积核能够获取游戏的相关联信息。在他们的实验中,只花了几个小时就达到了最佳敌人探测水平,准确率0.9。在此之后,LSTM就能得到包含敌人及其位置的特征,使得训练进一步加速。
将游戏分成两个阶段的思路也很重要:死亡竞赛可以分成两个阶段,探索梯度收集物品发现敌人,攻击敌人。称之为导航阶段和行动阶段。训练了两个网络,每个网络针对的是不同的阶段。当前的DQN模型不能将两个针对不同任务优化的网络合并在一起。但是,当前游戏的阶段可以通过预测敌人是否能被看见(行动阶段)或不被看见(探索阶段)来决定,这可以从游戏特征信息中推断。将任务分成两个阶段,每个阶段用不同网络训练的优势:
行动网络使用的是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算法和人类玩家游戏水平的结果,具体如下:
人类得分是取所有人类玩家的平均值。在两个场景中都有20名人类玩家参加。可以看到AI相对于学生玩家的水平。当然,你可以说职业玩家水平可以更高,但是我们只需要回忆一下围棋,回忆一下AlphaGO......AlphaGo也是基于深度增强学习哟。
在我的回答的评论中,知友@碧海居士应该不是领域内人士,但是他的评论值得一看:
如果说围棋是纯拼算法和计算量的话,游戏的实效性就决定了这东西离进入实用近了一步。毕竟战场是即时制而不是回合制的……想象一下这AI用在自动攻击的无人载具上是个多么恐怖的事情……
我们虽然时刻都希望人工智能能够给人类带来共同利益(for the common good),然而现实总是现实,每一次人类科技的进步,总是被首先运用于军事,这点我们必须承认。我们将AI欢乐地在射击游戏上跑,环境仿真越真实,算法效果越好,那么其潜在军事价值就越大,这实在不是一个让人感到欢乐的话题。
意识到这一点,我自己有了两个想法:
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有