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

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

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的功能。

星际争霸 相关文章推荐
玩家交还《星际争霸》原始码光盘 暴雪报以厚礼
May 05 星际争霸
星际争霸秘籍
Mar 04 星际争霸
星际流派综述
Mar 04 星际争霸
星际玩家的三大定律
Mar 04 星际争霸
星际争霸任务指南——人族
Mar 04 星际争霸
星际争霸任务指南——虫族
Mar 04 星际争霸
Protoss兵种介绍
Mar 14 星际争霸
神族 Protoss 剧情介绍
Mar 14 星际争霸
人族 Terran 基本策略
Mar 14 星际争霸
Terran剧情介绍
Mar 14 星际争霸
星际争霸教主Flash的ID由来:你永远不会知道他之前的ID是www!
饭制《星际争霸》Mod:优化游戏机制 增加新单位
人工智能开始玩《星际争霸2》 你的操作跟得上吗?
玩家交还《星际争霸》原始码光盘 暴雪报以厚礼
造势之举?韩国总统候选人发布《星际争霸》地图
《星际争霸》各版本雷兽特点图文解析 雷兽不同形态一览
《星际争霸重制版》兵种对比图鉴
You might like
PHP 和 MySQL 开发的 8 个技巧
2007/01/02 PHP
php实例分享之mysql数据备份
2014/05/19 PHP
php实现的双向队列类实例
2014/09/24 PHP
PHP实现简单搜歌的方法
2015/07/28 PHP
laravel 解决Validator使用中出现的问题
2019/10/25 PHP
php中数组最简单的使用方法
2020/12/27 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
js 图片轮播(5张图片)
2008/12/30 Javascript
jquery 事件执行检测代码
2009/12/09 Javascript
Jquery从头学起第四讲 jquery入门教程
2010/08/01 Javascript
jquery关于页面焦点的定位(文本框获取焦点时改变样式 )
2010/09/10 Javascript
原生javascript实现解析XML文档与字符串
2016/03/01 Javascript
js实现简单的碰壁反弹效果
2016/08/30 Javascript
使用Node.js搭建静态资源服务详细教程
2017/08/02 Javascript
快速解决brew安装特定版本flow的问题
2018/05/17 Javascript
微信上传视频文件提示(推荐)
2018/11/22 Javascript
vue百度地图 + 定位的详解
2019/05/13 Javascript
微信小程序封装多张图片上传api代码实例
2019/12/30 Javascript
JavaScript随机数的组合问题案例分析
2020/05/16 Javascript
深度解读vue-resize的具体用法
2020/07/08 Javascript
Python素数检测的方法
2015/05/11 Python
python实现下载指定网址所有图片的方法
2015/08/08 Python
Python实现删除列表中满足一定条件的元素示例
2017/06/12 Python
python爬取m3u8连接的视频
2018/02/28 Python
python使用jieba实现中文分词去停用词方法示例
2018/03/11 Python
python3+PyQt5实现文档打印功能
2018/04/24 Python
PyQt打开保存对话框的方法和使用详解
2019/02/27 Python
python接口自动化测试之接口数据依赖的实现方法
2019/04/26 Python
Django model update的多种用法介绍
2020/03/28 Python
Python 获取项目根路径的代码
2019/09/27 Python
解释下列WebService名词:WSDL、SOAP、UDDI
2012/06/22 面试题
教师党员承诺书
2014/03/25 职场文书
活动宣传策划方案
2014/05/23 职场文书
优秀班主任申报材料
2014/12/16 职场文书
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
2021/04/07 HTML / CSS
永中文档在线转换预览基于nginx配置部署方案
2022/06/10 Servers