为什么《星际争霸》是测试人工智能的理想战场

现实世界充满了复杂的问题。 幻想领域正在训练计算机来解决它们。

Posted in 星际争霸 onDecember 03, 2019

为什么《星际争霸》是测试人工智能的理想战场

谷歌母公司的分支DeepMind在1月份首次推出了一种计算机程序,该程序可以击败世界上最艰难的视频游戏之一中的专业玩家。 《星际争霸》是一部军事科幻小说系列,坐落在充满冲突的宇宙中,在那里,众多对手对峙成为最强大的对手。 DeepMind的名为AlphaStar的程序达到了星际争霸II的最高级别-大师级。根据十月份发表在《自然》杂志上的一项研究,它可以击败99.8%的人类玩家。

《星际争霸》是世界上最受欢迎,最困难的电子运动之一。这种地位刺激了许多代码编写者将其用作人工智能的训练场。也不仅仅是像DeepMind这样的企业研究小组对《星际争霸》进行了测试。业余游戏玩家和学者们也面临着尝试用自动机器人击败人类《星际争霸》玩家的挑战。

但是为什么要《星际争霸》呢?从表面上看,视频游戏具有其幻想对手的标准特征:在世界末日后的世界中进行斗争,一场使自己成为最强大对手的比赛以及一场击败敌人的战斗。但是,与像Halo或Overwatch这样的游戏中一样,玩家无需控制单个第一人称射击游戏代理商,而是管理着建设者,战斗机和防御系统的整个经济体系,这些体系可以共生地运作,以防止他们遭受损失。

尽管在本质上是梦幻般的,但《星际争霸》的多面世界创造了与我们自己相似的复杂性。使用游戏作为培养计算机的孵化器可以帮助研究人员构建具有真实效果的更好的机器人。

小心身后
训练AI算法以赢得对抗人类的游戏已有悠久的历史。甚至在计算机不存在之前,人们就创造了虚幻的“机器人”,可以在象棋等游戏中击败玩家。 1997年,IBM的Deep Blue击败了世界象棋冠军,DeepMind的AlphaZero和AlphaGo等其他强大的计算机算法也效仿了人类棋盘游戏大师。

但是视频游戏将复杂性提升到了新的水平。在《星际争霸》中,玩家作为三种种族之一参加比赛-人族,神族或虫族-每个种族都有各自的优势和劣势。例如,神族是强大的战士,但不会很快产生。另一方面,虫族产生最快,但不是强壮的战士,因此它们的力量是众多的。

除了简单地选择种族优势和劣势之外,您还可以控制多个方面:收集资源的工人,建立防御系统的建造者以及攻击敌人的战士。您必须注意自己的单位,同时确保其他玩家不会利用您的劣势。

研究人员从这些方面研究了某些技术如何导致最有效的游戏玩法。 2011年,纽芬兰纪念大学的计算机科学家大卫·丘吉尔(David Churchill)与他人合着了《星际争霸2》中有关构建顺序的论文,研究了资源构建的优先顺序如何影响游戏的成功。

丘吉尔说,这项研究使我们对算法如何解决模拟环境中的问题有了更清晰的了解。

丘吉尔说:“游戏AI具有一定的吸引力,可以被大众消化。”游戏还提供了一种测试算法“智能”的方法,即算法自动学习,计算和执行命令的能力。

超越董事会
在《星际争霸》问世之前,丘吉尔开始修补旨在打败棋盘游戏的算法。他为博士论文构建的程序旨在赢得Ataxx游戏,这是一个在虚拟板上玩的1990年代街机风格的战略游戏。这是他第一次创建一个程序,可以比他玩的更好。

此后,丘吉尔的研究一直集中在视频游戏AI上,而《星际争霸》一直是最受欢迎的游戏。将棋盘游戏AI与视频游戏AI分开的一个要素看似简单:玩家能够一次看到整个景观。

与Ataxx不同,如果不滚动就无法在StarCraft中看到整个地图,这使您更难注意所有资源。这也使查看敌人的阴谋变得更加困难,或者正如丘吉尔所说的那样,使您陷入“战争迷雾”。

他说:“只有站在敌人旁边,你才知道敌人在做什么。”它更贴近现实生活;在大多数情况下,您对问题的了解都不是无所不知的。

而且跳棋或国际象棋等游戏不是实时发生的-玩家做出举动后,对手就没有时间进行举棋了。但是,正如丘吉尔所说,“在星际争霸中,如果我不射击你,那你就是在射击我。”

他甚至把它比作看似简单的足球。如果您站在场地上,球员将继续踢球,进球将继续得分,比赛将继续进行。 《星际争霸》也是如此-不管您是紧紧维持部队还是积极与敌人作战,无论有没有干预,游戏都会继续进行。

进行诸如《星际争霸》之类的复杂游戏可以帮助科学家训练算法,以在具有许多变量的环境中学习新技能。丘吉尔说,视频游戏可以成为通向教学机器的门户,以更好地进行图像识别,搜索建议或必须帮助人类做出决定的任何算法。

他说:“(游戏中的)复杂性水平开始接近我们在现实世界中看到的水平。”

机器人战场

自2011年以来,丘吉尔每年组织一次国际活动,称为AIIDE星际争霸AI竞赛,游戏发烧友和专业人士齐聚一堂,共同构建和测试游戏算法。其中的一款游戏是《星际争霸》,尽管它们使用《星际争霸:育雏战争》作为测试平台,而不是《星际争霸II》。

丘吉尔说,但是团队为AIIDE建造的机器人不同于AlphaStar之类的项目。其中一些是“真正的AI”,或者是使用神经网络学习模式并基于过去的知识赢得比赛的机器人。其他人则采用更简单的方法,即采用硬编码规则,如果游戏过程中发生某些特定事件,则指示单位以某种方式移动。

每年,组织者都要执行一项规则,即参赛队必须在比赛后开源其代码。这样,竞争对手就可以基于过去的算法来使自己的机器人更强大,更智能,更强大。

丘吉尔说,即使AlphaStar成为头条新闻,比赛也没有进行。在DeepMind团队吹捧该算法的高成功率的同时,投入到项目中的资源量达到了远远超出普通编码人员能力范围的标准。

丘吉尔说:“这是一项艰巨的任务。”仍然存在的挑战表明,更大并不总是更好。

TPU太多?
当AlphaStar首次亮相时,该算法具有超人的能力。它比人类具有某些优势。例如,计算机可以看到其所有可见单位,而不必平移地图来执行命令,并且比专业玩家单击鼠标更精确地完成了动作。

因此,对于《自然》杂志,DeepMind限制了计算机同时控制其单元的能力。从一开始就对程序的速度和功能进行了其他限制,以使其在更接近人类玩家的水平上竞争。但是即使有界限,AlphaStar仍然有能力击败专业人士。

而且该机器背后的力量比以前创建的任何StarCraft机器人都要强大。 DeepMind创建了多个自动化玩家来专门从事某些种族的比赛,并通过让他们观看人类比赛重放44天来对其进行培训。处理能力得到了Google第三代Tensor处理单元(TPU)的支持,TPU是一种强大的芯片,用于其机器学习程序中,用于Google Translate等应用。

由DeepMind设计以打败棋盘游戏Go的算法AlphaGo使用4个TPU。另一方面,AlphaStar使用高达32。

丘吉尔说:“他们创建的是只有DeepMind可以使用的算法。”对他来说,下一个挑战是研究人员缩减游戏算法的规模,以使他们少消耗一些精力,并且工作得更优雅。

与一对一的战斗相反,团队游戏也可能给无人机器人带来新的挑战。随着算法继续与人类玩家紧密结合,人类和AI有时可能会在同一团队中比赛。

但是就目前而言,像《星际争霸》这样的游戏将继续致力于研究机器学习如何很好地解决复杂问题。对于丘吉尔而言,幻想与现实世界几乎是无法区分的。

丘吉尔说:“所有这些利弊各有优缺点。每个人都有他们想要最大化的东西...您正在玩最大化数字的游戏。这就是我们在游戏中所做的。”

编者注:该故事已从较早的版本进行了更新,以更正AIIDE Starcraft AI大会的名称并阐明DeepMind程序员赋予AlphaStar的功能。

星际争霸 相关文章推荐
人工智能开始玩《星际争霸2》 你的操作跟得上吗?
Aug 11 星际争霸
星际玩家的三大定律
Mar 04 星际争霸
单位速度在实战中的运用
Mar 04 星际争霸
农民C键的运用技巧
Mar 04 星际争霸
暴雪前总裁遗憾:没尽早追赶Dota 取消星际争霸幽灵
Mar 08 星际争霸
Protoss兵种介绍
Mar 14 星际争霸
Protoss兵种对照表
Mar 14 星际争霸
虫族 Zerg 魔法科技
Mar 14 星际争霸
Terran建筑一览
Mar 14 星际争霸
星际争霸 Starcraft 游戏介绍
Mar 14 星际争霸
经典的星际争霸,满是回忆的BGM
Apr 09 星际争霸
WCG2010 星际争霸决赛 Flash vs Goojila 1 星际经典比赛回顾
Apr 01 星际争霸
星际争霸教主Flash的ID由来:你永远不会知道他之前的ID是www!
饭制《星际争霸》Mod:优化游戏机制 增加新单位
人工智能开始玩《星际争霸2》 你的操作跟得上吗?
玩家交还《星际争霸》原始码光盘 暴雪报以厚礼
造势之举?韩国总统候选人发布《星际争霸》地图
《星际争霸》各版本雷兽特点图文解析 雷兽不同形态一览
《星际争霸重制版》兵种对比图鉴
You might like
PHP对接微信公众平台消息接口开发流程教程
2014/03/25 PHP
PHP微信公众号开发之微信红包实现方法分析
2017/07/14 PHP
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
javascript面向对象之二 命名空间
2011/02/08 Javascript
js网页中的(运行代码)功能实现思路
2013/02/04 Javascript
JavaScript内存管理介绍
2015/03/13 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
JavaScript实现DOM对象选择器
2016/09/24 Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
2017/02/16 Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
2017/05/02 Javascript
php 修改密码实现代码
2017/05/24 Javascript
node.js支持多用户web终端实现及安全方案
2017/11/29 Javascript
解决vue-cli + webpack 新建项目出错的问题
2018/03/20 Javascript
详解VUE项目中安装和使用vant组件
2019/04/28 Javascript
详解如何修改 node_modules 里的文件
2020/05/22 Javascript
Vue 简单实现前端权限控制的示例
2020/12/25 Vue.js
python通过pil模块获得图片exif信息的方法
2015/03/16 Python
Python实现国外赌场热门游戏Craps(双骰子)
2015/03/31 Python
python 找出list中最大或者最小几个数的索引方法
2018/10/30 Python
python判断所输入的任意一个正整数是否为素数的两种方法
2019/06/27 Python
python for循环remove同一个list过程解析
2019/08/14 Python
python requests证书问题解决
2019/09/05 Python
PyTorch中topk函数的用法详解
2020/01/02 Python
windows10环境下用anaconda和VScode配置的图文教程
2020/03/30 Python
使用K.function()调试keras操作
2020/06/17 Python
django rest framework 过滤时间操作
2020/07/12 Python
python+requests接口自动化框架的实现
2020/08/31 Python
Opencv 图片的OCR识别的实战示例
2021/03/02 Python
收藏!10个免费高清视频素材网站!【设计、视频剪辑必备】
2021/03/18 杂记
css3和jquery实现自定义checkbox和radiobox组件
2014/04/22 HTML / CSS
2015年社区综治宣传月活动总结
2015/03/25 职场文书
2015年超市收银员工作总结
2015/04/25 职场文书
2015年支教教师工作总结
2015/07/22 职场文书
公司老总年会致辞
2015/07/30 职场文书
高一军训口号
2015/12/25 职场文书
css3中2D转换之有趣的transform形变效果
2022/02/24 HTML / CSS