前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >训练AI来玩CS反恐精英!清华朱军与剑桥博士后的这项研究太燃了 | 童年回忆

训练AI来玩CS反恐精英!清华朱军与剑桥博士后的这项研究太燃了 | 童年回忆

作者头像
AI科技评论
发布2021-04-16 15:48:16
1.8K0
发布2021-04-16 15:48:16
举报
文章被收录于专栏:AI科技评论AI科技评论

作者 | 贝爽、陈大鑫

Fire in the hole !

不好意思放错图了,应该是下面这样:

当听到CS这句经典的台词时,我就不禁想大喊一声:AWSL ! 俺的童年回忆!!!

CS/反恐精英,最经典的一款第一人称视角射击(FPS)游戏,试问哪个热爱枪战的小伙伴没有玩过?

又曾记否年轻时在CS里面热血爆头的那些日日夜夜?

在计算机内卷的时代当不了CS人才难道还当不了一名CS人才吗

图注:网图(不是该研究中AI的演示)

众所周知,自从战胜顶级围棋选手李世石后,AI 在游戏界的表现便一发不可收拾。英雄联盟、王者荣耀、星际争霸等即时策略性游戏都成了AI 攻击的目标,2019年,由DeepMind推出了AlphaStar 更是以 10:1的战绩一举击败了《星际争霸2》顶级职业选手,目前它在实时对战中已经达到“宗师”段位,战胜了99.8%的人类玩家(但是后来也听说AlphaStar 被人类玩家耍的团团转

)。

继一系列出色表现之后,如今 AI 终于对射击类游戏下手了 !

近日,博士毕业于剑桥大学的Tim pearce与他的清华大学博士后导师朱军教授联合为《反恐精英:全球攻势》开发了一个AI 游戏智能体 —— CSGO 。

图注:此CSGO非彼CSGO

当CSGO以第一人称视角玩游戏时,能够按FPS标准在复杂环境下进行移动和精准射击。

图注:本研究中AI 游戏智能体CSGO的操作

在竞争对战模式下,CSGO也能够达到游戏内置的中等难度的水平,同时采用了类似于人类玩家的游戏风格,进而在游戏中大杀四方。

图注:本研究中AI 游戏智能体CSGO的操作

据了解,与其他游戏AI不同,CSGO没有使用API,而是采用了一种行为克隆(Behavioural Cloning)的新型解决方案,即从在线服务器上抓取大量人类游戏视频进行对战训练。

目前相关论文《基于大规模行为克隆的反恐精英死亡竞赛》已提交至arXiv上面。论文中指出,CSGO所使用的数据集约有400万帧,与ImageNet大小相当,这一规模比之前在FPS游戏中的模仿学习大了一个数量级。

论文链接:https://arxiv.org/pdf/2104.04258.pdf

1

性能评估与特征

下面是训练出来的CSGO的一段视频,不难看出AI杀敌还是不错的。

运行AI智能体及其网络权重的代码地址:

https://github.com/TeaPearce

在这里,研究人员考虑了三个baseline:

1) 内置AI(简单):机器人在死亡竞赛简单设置中进行对抗。

2) 内置AI(中等):机器人在死亡竞赛中等设置中进行对抗。

3) 人类(强):以1920×1080的分辨率在常规CSGO玩家(DMG等级)中排名前10%的玩家。

对于内置的AI baseline ,研究人员报告了FPS游戏智能体通常测试两个度量指标:每分钟杀敌(KPM)和杀敌/死亡比率(K/D),很显然,一个强大的AI智能体应该同时具有高KPM和高K/D。

下表是主要的实验结果,取三次运行实验的平均±1标准误差,可以看出两者都比上一个要好。

还算有趣的AI

从玩家的角度来看,与AI在竞争中的表现一样重要的是,它“感觉像人一样”,因为与开挂的玩家进行比赛毫无乐趣可言。

而本研究中在测试中却观察到了CSGO的几个有趣的行为特征。

类人特征:在机械上,AI 智能体的目标和动作与人类非常相似。当人类玩家在游戏中转动一个大角度时,当鼠标到达鼠标垫的末端时,会有一个运动暂停,人类必须在继续转动之前将其提起。人类当把十字准线移向敌人时,倾向于快速移动到敌人的大致位置,然后再缓慢地瞄准敌人的确切位置。智能体对这两种行为进行编码,使得它有一个反应时间和射击精度,似乎符合人类的玩家水准。

虽然内置的AI可以按照预测的路线导航,并对敌人和队友的行为作出反应,但AI智能体的操作方式却更加多样化。比如AI沿着墙壁移动,跳过障碍物,或者跳起来看一眼它看不到的地方。有时它还会作出一些人类玩家的怪癖,比如没事对着鸡(NPC)开火,或者在重新装弹和开火时跳跃和旋转。

非类人特征:智能体的弹药管理也很差——它只在交火后会适当地重新装弹。最后,AI智能体有时也会忘记敌人的行进路径。

另外还有其他几个更容易理解的限制。如智能体只接收图像作为输入,不接收人类通常使用的音频线索(例如射击,或者敌人在拐角处的脚步声);

2

基于“行为克隆”的AI智能体

无论是《Dota 2》还是《星际争霸2》,AI 已经在各种游戏中达到与人类相匹敌的能力。在这些游戏中,AI都使用了API,它允许研究人员轻松地与游戏进行交互,并以比实时快得多的速度模拟游戏,或者以较低的成本运行游戏。

但有API的游戏很难大规模运行,而没有大规模的模拟,人们只能被迫探索更有效的算法。为了解决这一个问题,研究人员构建出来了(CSGO) AI 智能体——它不需要访问API,而是基于行为克隆进行学习训练。也因此,它只需要少量的计算资源(几个GPU和一个游戏终端)即可在线运行。

行为克隆,也称为“模仿学习”,CSGO的目标是模仿游戏演示者(通常是“专家”)在游戏状态下会采取的行动。行为克隆是一种高效的学习方法,因为行为主体能够被确切地告知该如何行为,从而消除了一些探索的挑战。

不过,它也存在一些缺点,如所学的策略可能与游戏演示者一样好,也可能会是更糟,因为它只是一个近似。

那么这个基于“行为克隆”的AI智能体到底是如何设计的呢?

首先是CSGO的观察空间,《CS》通常以1920×1080左右的分辨率运行,这远远大于大多数GPU正常处理帧率的能力,因而需要算法进行下采样。为了确保图像保真度、神经网络大小、每秒帧数、GPU规格要求,以及训练数据集大小和训练时间之间的平衡。

研究人员通过一些实验,将游戏控制在1024×768分辨率运行,AI 智能体从中裁剪出584×488的中心区域,然后将其采样到180×80大小进行射击等操作:

这样能够使最先进的网络架构在GPU上以每秒16帧的速度运行。虽然裁剪减少了AI智能体的视野,下采样降低了AI 智能体在远距离交火中的灵活应变能力,但这些操作可以允许研究人员在更大的数据集上进行训练。另外,被裁剪的像素区域不包括雷达图、杀戮/生命、弹药以及剩余时间等辅助信息。

其次,对于一款射击游戏,想要成功射击杀敌就要依赖于快速而精确的鼠标移动以及瞄准,这也是手残党玩不好游戏的一个主要原因。

而这将为AI带来两个主要挑战:

1、 CSGO 的输出空间中混合了离散和连续动作;

2、这些行动可能并不互斥,如玩家可能会同时重新加载、跳跃和向左向右移动。

下表中总结了CSGO在游戏中的动作空间,以及主要的输出内容:

为了应对第一个挑战,研究人员采用将鼠标空间离散化的方法。离散化本身需要调整和实验,因为更大的输出空间允许更高级别的控制,但也需要更多的数据来训练。对玩家来说,瞄准时能够做出精细的调整更为重要,如果转动角度过大,就不需要那么精确的值了。

因此,研究人员采用了不均匀的离散网格,中间更精细,边缘更粗糙。

对于动作空间互斥性的问题,研究人员对按键和点击采用了独立的(二进制)交叉熵损失,并对每个鼠标轴使用了两个(多项式)交叉熵损失。同时还进一步训练了一个价值函数的估计,以在未来的工作中通过奖励机制来改进 AI 智能体。

接下来是内部架构。

通常用于图像分类的神经网络结构使用平均池化或最大池化容易造成空间信息丢失。本文中,图像中的位置对于AI智能体在来说是非常重要的,比如它仅仅知道敌人大致在哪是不够的,毕竟它不能实施像人类玩家一样乱瞄准、一顿瞎开枪然后还把敌人杀死这样的骚操作,AI智能体必须知道目标敌人的精准位置。

基于此,研究人员在AI智能体的核心上使用了EfficientNetB0以及ConvLSTM网络,其完成的架构体系如下所示:

最后,在运行时间方面,为了克服快速移动可能带来的不稳定性,研究人员将鼠标的输入幅度减半并在短延迟下应用两次,将智能体的输出则是增加到每秒32次,每五秒可自动“重置”(例如移除弹孔)一次,以减少视觉混乱,同样,在数据收集过程中也是如此操作。

3

游戏模式和数据集

考虑到是初次尝试,研究人员为CSGO提供了两种简单的游戏作战模式:

一是瞄准训练,它能够为AI 玩家提供一个可控的环境,即把AI固定在地图中央,而手无寸铁的敌人会朝它们跑去自动送人头,且弹药可以供AI无限使用。

二是死亡竞赛模式,奖励AI玩家杀死对手队伍中的任何敌人,AI 玩家死后会在随机位置上重生。在这里,它不需要竞争模式的长期策略。

具体的设置如下图:

在数据集方面,此前在《星际争霸II》中的研究已表明,只要能够访问足够大的数据集,行为克隆(模仿学习)就可以实现合理的性能。

但从现实角度来讲,不是所有团队都能获得游戏开发商提供的访问权限和庞大数据量。基于此,研究人员采取了一种旁观者模式,即从在线服务器中获取数据,并以每秒16帧的速率运行脚本来捕获屏幕截图和元数据。

那么,如何抓取高质量的数据集就变得至关重要,它间接决定了AI 智能体技术水平的上限。起初,研究人员是以一种自动化的匿名方式抓取数据,但由于官方服务器根据玩家等级匹配游戏,导致抓取质量不高,甚至会出现少数玩家的作弊数据。

为此研究人员更新了脚本追踪了服务器中表现最好的那些玩家,并过滤掉了玩家静止不动或疑似开挂作弊的行为。另外,在训练期间,他们还对包含成功杀戮事件的序列进行过采样。

论文中强调,虽然开发抓取脚本很费力,但它的价值在于可伸缩性——一旦编写好,就可以连续几天自动地抓取学习游戏玩法,生成大量的和多种类型的数据,这是手工操作无法提供的。

以下为抓取数据中一些截屏序列示例,其中包含杀敌和死亡事件。

CSGO所使用的第二类数据集使用了专门设置的机器精确记录操作和截图。具体来说,研究人员创建了两个高质量数据集,一个用于瞄准训练模式,另一个用于死亡竞赛模式。

他们使用了强大的人类玩家来提供数据(DMG排名前10%的CSGO玩家)。

在训练细节上,研究人员筛选出包含AI成功杀敌的片段,并在随后的训练中对所有其他片段也随机取样(有20%的概率)。

另外,在图像亮度和对比度上,研究人员应用了数据增强,但避免了应用影响图像空间特性的增强,因为这会使鼠标标签失效。

下图为数据集的收集、处理,以及训练过程的细节。

4

讨论和总结

本文提出了一种基于像素的AI智能体程序CSGO,其性能优于游戏内置的中等难度。这是迄今为止在游戏行为克隆方面规模最大工作之一,也是最早解决没有API的现代视频游戏的工作之一。

虽然AI社区一直专注于实时战略游戏,如星际争霸和Dota 2,但研究人员认为CSGO是一个同样有价值的测试平台,它提供了自己独特的控制、导航、团队合作和战略组合。其庞大而持久的玩家基础,以及与其他FPS游戏的相似性,意味着CSGO中的AI进步表明了开发强大的类人智能体的切实价值。

尽管这给研究人员带来了不便,但CSGO缺乏API可以说带来了一个更能代表现实世界的挑战,在现实世界中,强化学习算法不能总是从空白状态运行。因此,CSGO致力于离线强化学习研究。本文定义了几种不同难度的博弈模式,并首次尝试用行为克隆的方法来解决。

研究人员未来计划开源部分代码,以鼓励其他研究人员参与这种环境的挑战。

本文的研究可以向许多方向扩展。本文展示了正在进行的工作,我们正在积极探索其中的一些。一方面,进一步扩展和完善我们当前的方法可能会带来性能上的提高,就像使用离线强化学习的其他方法一样。另一方面,有可能与基于奖励的学习相结合,或者将环境的其他部分作为输入。

更雄心勃勃的一方面是,开发一个 AI 智能体来进行CSGO完全竞争模式的挑战——研究人员认为这篇论文是迈向AI里程碑的一步。

5

作者介绍

Tim pearce

博士毕业于剑桥大学,目前在清华大学做博士后研究,

个人Github链接:https://github.com/TeaPearce

朱军

朱军博士,目前是清华大学计算机系长聘副教授、智能技术与系统国家重点实验室副主任、卡内基梅隆大学兼职教授、深度学习技术与应用国家工程实验室副主任。

曾先后获得“人工智能10大新星”(AI’s 10 to Watch)、国家万人计划青年拔尖人才、中国自然科学基金优秀青年、中国计算机学会青年科学家等荣誉。

他的主要研究领域是机器学习、数据挖掘、非参数化贝叶斯方法以及最大间隔学习,目前在国际重要期刊与会议已累计发表学术论文80余篇。同时,担任国际期刊IEEE TPAMI和Artificial Intelligence的编委、国际会议ICML 2014地区联合主席、以及ICML、NIPS等国际会议的领域主席。


最后,以一个帅气的跳狙来做结尾,不知AI几时能学会这个操作。

图注:网图 (不是该研究中AI的演示)

视频链接:

https://www.youtube.com/watch?v=p01vWk7uMvM&feature=youtu.be

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

本文分享自 AI科技评论 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档