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

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

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

星际争霸 相关文章推荐
星际争霸教主Flash的ID由来:你永远不会知道他之前的ID是www!
Jan 18 星际争霸
星际争霸中的对战模式介绍
Mar 04 星际争霸
星际实力自我测试
Mar 04 星际争霸
农民和部队如何穿矿
Mar 04 星际争霸
论建造顺序的重要性
Mar 04 星际争霸
一些操作和快捷键的理解和讨论
Mar 04 星际争霸
Protoss兵种介绍
Mar 14 星际争霸
Protoss兵种对照表
Mar 14 星际争霸
虫族 Zerg 魔法科技
Mar 14 星际争霸
人族 Terran 魔法与科技
Mar 14 星际争霸
合作指挥官:孟斯克
Mar 16 星际争霸
星际争霸教主Flash的ID由来:你永远不会知道他之前的ID是www!
饭制《星际争霸》Mod:优化游戏机制 增加新单位
人工智能开始玩《星际争霸2》 你的操作跟得上吗?
玩家交还《星际争霸》原始码光盘 暴雪报以厚礼
造势之举?韩国总统候选人发布《星际争霸》地图
《星际争霸》各版本雷兽特点图文解析 雷兽不同形态一览
《星际争霸重制版》兵种对比图鉴
You might like
如何用php生成扭曲及旋转的验证码图片
2013/06/07 PHP
php 魔术方法详解
2014/11/11 PHP
php使用sql server验证连接数据库的方法
2014/12/25 PHP
php根据生日计算年龄的方法
2015/07/13 PHP
PHP7 mongoDB扩展使用的方法分享
2019/05/02 PHP
laravel model模型处理之修改查询或修改字段时的类型格式案例
2019/10/17 PHP
javascript一点特殊用法
2008/05/28 Javascript
jQuery链式操作如何实现以及为什么要用链式操作
2013/01/17 Javascript
javascript实例--教你实现扑克牌洗牌功能
2014/05/15 Javascript
jquery实现标签支持图文排列带上下箭头按钮的选项卡
2015/03/14 Javascript
Jquery实现鼠标移动放大图片功能实例
2015/03/25 Javascript
JavaScript实现把数字转换成中文
2015/06/29 Javascript
JS实现网页右侧带动画效果的伸缩窗口代码
2015/10/29 Javascript
JavaScript脚本库编写的方法
2015/12/09 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
2016/03/06 Javascript
如何用js实现鼠标向上滚动时浮动导航
2016/07/18 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
2016/10/24 Javascript
详解基于javascript实现的苹果系统底部菜单
2016/12/02 Javascript
canvas学习之API整理笔记(一)
2016/12/29 Javascript
微信小程序之页面跳转和参数传递的实现
2017/09/29 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
2019/06/03 Javascript
Electron + vue 打包桌面操作流程详解
2019/06/24 Javascript
浅谈微信小程序列表埋点曝光指南
2019/10/15 Javascript
简单了解前端渐进式框架VUE
2020/07/20 Javascript
python爬虫_微信公众号推送信息爬取的实例
2017/10/23 Python
对Python中画图时候的线类型详解
2019/07/07 Python
python requests使用socks5的例子
2019/07/25 Python
Python3 pywin32模块安装的详细步骤
2020/05/26 Python
html5表单及新增的改良元素详解
2016/06/07 HTML / CSS
澳大利亚汽车零部件、音响及配件超市:Automotive Superstore
2018/06/19 全球购物
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
运动会方阵解说词
2014/02/12 职场文书
交通事故赔偿协议书怎么写
2014/10/04 职场文书
理想国读书笔记
2015/06/25 职场文书
告诉你一个秘密:富人致富的五大优点
2019/07/11 职场文书
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技