战胜柯洁后,AI在悄悄潜入人类下一个智慧堡垒

近日,在 QCon北京2017上,来自阿里巴巴认知计算实验室的技术专家龙海涛(花名德衡)发表了题为《星际争霸和AI》的专题演讲。《星际争霸》一直是游戏玩家心目中即时战略类的经典之作,历时十多年而不衰。

而如今它更成为深度强化学习、人工智能算法研究的一个主要平台和工具。因为其蕴含了多智能体协作、多任务学习、宏观策略规划等复杂问题,一旦取得部分突破和进展,对商业和社会发展都会带来极大影响。如国外的 DeepMind、Facebook 等公司相继投入大量人力基于它进行通用人工智能的研究。

在本次演讲中,德衡重点介绍了阿里巴巴如何在《星际争霸》游戏环境中研究人工智能算法,分享阿里在这方面研究尝试中得到的初步成果,并重点阐述多智能体协作在微观战斗场景中的应用,以及未来在这个平台上的进一步的研究方向等。

以下为演讲全文:

大家下午好!我是来自阿里巴巴认知计算实验室的龙海涛,今天主要跟大家聊一下“《星际争霸》与人工智能”的话题。首先我会介绍一下为什么会选择《星际争霸》这个游戏来做人工智能前沿性的研究。

1. 为什么选择《星际争霸》作为人工智能算法研究的环境

首先可能大家有疑问,为什么选择《星际争霸》这个游戏来做我们AI研究平台。阿里认知计算实验室目前是挂靠在搜索事业部下面,我们团队的成员基本都是做搜索、广告、推荐、算法这样的背景,之前我们主要做的是CTR预估的优化,还有CVR转化率的一些优化,从去年“双11”之后,我们想在认知智能方面做一些前沿性的探索,我们一致认为游戏是一个研究AI算法的绝佳平台,首先它是非常干净的平台,可以源源不断产生数据,而且迭代非常快,就是说它的智能是可以观测到的。

另外,它离真实的场景和应用比较近,并且《星际争霸》十多年来就是一个非常好的受大家欢迎的游戏,积累了非常非常多的数据,这样我们可以从之前的经验去学习,这也是我们考虑的一个方面。最重要的,它对AI来讲存在着非常大的挑战,非常复杂,主要有以下六点:

第一点,它是一个不完全信息下的环境。比起像围棋或者象棋这种大家都可能看得见的、完全信息下的博弈,《星际争霸》是有战争迷雾的,所以必须去探路、侦查、了解对手的信息,从而在不确定的情况下去做智能的决策,这个是相对其他游戏来讲非常不同或者挑战更大的一个方面。

第二点,它有非常巨大的搜索空间,围棋的搜索空间大概在10^170,《星际争霸》在128×128的地图上并且人口上限是400个unit的情况下,它的搜索空间大概在10^1685,比围棋高10个数量级,这还是在没有算上其他状态(比如说血量等等)的情况下。所以现有的任意一个单一的算法是根本不可能解决《星际争霸》里面所有的问题的。

第三点,它是一个即时对抗类的游戏。下围棋可以有一分钟或者两分钟的思考时间,但是在《星际争霸》里,如果说正常游戏大概是1秒钟24帧,那么你必须在42毫秒之内做出迅速的反应,而且这个反应不是一个action,而是一系列的action,每个unit都会采取行动,这对我们算法的性能、效率、工程上的考虑都是非常大的挑战。

第四点,它需要智能体有一个长期的规划,而不是一个下意识的动作,是需要有记忆,需要考虑这场战争应该采取什么样的策略,中盘应该怎么考虑,发展到后期又应该采取什么样的策略,而且这个策略的计划是根据侦查到的所有的信息动态去调整,这对人工智能的挑战是非常非常大的。

第五点,在《星际争霸》里面要玩好的话,必须基于时序上、空间上去做推理,比如说地理位置的优势,坦克如果架在哪里可能会比较好,如果开分机在哪个位置去开会比较有利,甚至于军营造在什么地方,这些对于AI来说都需要进行一个空间上的推理。

第六点,《星际争霸》最高有400个unit,所以其实是需要多个智能体协作的,需要多个兵种去配合,这也是对AI来讲一个很大的挑战。

星际争霸》里面AI的研究或者竞赛不是最近才出现的,其实在2010年的时候已经有大量的研究人员在研究《星际争霸》里面的AI,主要是以加拿大Alberta大学为主的研究力量,包括一些老师和学生,而且有三个固定的竞赛和一些循环赛,大家在上面PK。

这一类AI的话是Classic AI,也就是没有学习能力、没有模型、也不需要训练,而是基于预编程的规则,所以不是非常灵活,这种算法下的AI其实离真正超过人类或者打败人类目标还是非常非常远的,它们可以打败内置的AI,但是还远远比不上人类的专业选手,甚至连普通选手基本上也打不过。

另外一类是Modern AI,也就是以智能体自主学习为主的算法,从去年开始这个领域火起来了。比如阿里巴巴和伦敦大学学院,最近在合作的基于《星际争霸1》里面做一些新的AI的尝试。 另外就是Google DeepMind,去年11月份他们和暴雪合作,会基于《星际争霸2》去开放一个API,让大家基于《星际争霸2》开发自己的AI算法,另外像Facebook也有一些团队做这方面的研究。

2. 深度强化学习

强化学习是非常接近人类学习的一个学习机制,通过这个Agent跟环境的交互,在交互当中学习。Agent会观察周围的环境,然后环境会给它一些反馈,Agent根据状态和反馈会做出一些动作,这些动作会或多或少的影响这个环境,环境会根据这个动作反馈一些Reward,Reward可能是奖励的也可能是惩罚的,Agent根据这样的试错,不断的去调整。

Agent背后有两个概念非常重要,一个是不停的优化策略,什么样的状况下采用什么样的Action是合理的,另外一个是用价值函数评估当前的状态它的价值是怎么样的。

强化学习跟深度学习结合,就叫深度强化学习。因为深度学习或者神经网络是非常适合去做这种表示学习的,可以表示成一个复杂的函数。policy或者value用神经网络去逼近的话,在工程上或者效率上是非常好的提升。

以AlphaGo的例子来讲,在训练的时候分成三个阶段,第一个阶段,从人类的棋谱里面学习人类的先验的知识,通过监督学习学习一个较好的、胜率较高的policy network;第二个阶段,基于监督学习学习出来的policy network,然后自我对弈,通过policy gradient再去优化policy network,这就比之前学出来的policy network要更好;第三阶段,再用学出来的强化学习版的policy network自我对弈,获得一个最佳。

3. 多智能体协作

其实目前为止所有的AI的智能体比较成功的一些应用基本都是这种单个的Agent,其实对于人类来讲,协作智能是智能体的一个非常大的方面,我们的祖先智人为什么可以统治地球,其中一个很大的原因就是,他们学会了大规模的协作,而且是非常灵活的协作。可以想象一下,未来全部都是这种AI的智能体,它们能不能自我学习到人类水平协作的一个智能呢?

我们用了一个词Artificial Collective Intelligence,这对现实和未来都有非常大的意义。比如手机淘宝,现在绝大部分流量背后都是一个算法推荐出来的,不管广告还是搜索其背后都是AI的智能体在做,目前这些智能体都是各出各的优化,或者推出自己的商品。

其实我们在考虑的是,比如手机淘宝首页里边有爱逛街、猜你喜欢这种位置,那么他们能不能够协同地去推荐一些这样的商品,从而可以让用户的体验最好,让平台的价值最大化。其实以后可能都是算法经济、AI经济,都是这种AI的Agent,比如满大街可能都是自动驾驶的无人车,他们之间是不是也需要一些协作,让交通出行效率能够达到最大化。

最近我们在《星际争霸》里的微观战斗场景下,提出来一个多智能体双向协作网络,关于这个网络的详细内容大家感兴趣可以下载我们的paper看一下,这个工作是我们跟UCL一起合作完成的,用来探索或者解决多智能体协作的问题。

这是我们提出来的BiCNet(Multiagent Bidirectionally-Coordinated Net)的网络结构,它其实也是比较经典的结构,分成两部分,左边这部分是一个policy的网络,就是说从下往上会把《星际争霸》的环境进行一些抽象,包括地图的信息、敌方单位的血量、攻击力,还有我方unit的信息,抽象出来形成一个共享的State,经过一个双向的RNN这样的网络,进行充分的双向的沟通,再往上每个Agent去得出自己的Action。

比如我到某一个地方去攻击谁。左边这个policy network就是对于当前的状态应该采取什么行动,右边就是一个value的network,根据前面policy得出来的Action,还有抽象出来的State进行评估,Q值大概是多少,做出一个预判。当采取这些行动以后,这个环境就会给出相应的反馈,一些Reward来说明这步打的好还是不好,然后会通过一个Reword从右边这个网络下来,去反向传播更新里面的参数。

这个网络有几点比较好的设计:

第一,它的scalability比较好,《星际争霸》里面打仗的时候随时可能会有伤亡,这个Agent死掉以后这个网络不是还可以正常的工作,包括源源不断涌现的新的Agent进来,是不是也是可以工作。我们看到双向网络参数是共享的,所以是不会有影响的;

第二,我们在中间用了这样一个双向网络以后,其实是在一个效率和性能之间做了比较好的平衡,如果用全连接网络的话,计算量会过大。但是我们用一个双向网络,前面告诉你大概要做什么样的Action,回来再告诉前面的人他们采取了什么样的Action,一结合,最后算出来应该追加的策略是什么样子,从实际来看效果也是非常好的。

其实我们认知计算实验室在设计一些算法或者模型的时候会参考神经科学里边目前的一些研究成果,我们认为研究认知心理学、大脑、类脑的研究或者神经科学,对于做人工智能应该有两个好处。

第一个好处就是,神经科学具有启发性,就是当你在一些具体的问题或者场景里面去思考的时候,会遇到一些问题,这些问题可能是从来没有人解过的,如果神经科学、交叉科学里有类似的这种结构或者算法,这些可能会很好的解决你的问题,带来算法上的一些启发。反过来另外一点,神经科学也可以帮你做验证,你设计一个算法以后,如果神经科学里面有类似的结构,那么很大概率这个算法是可以工作的。

其实我们的Actor-Critic网络在人脑里面也是有相应的对应,左边就是Actor-Critic这个网络,右边是我们的大脑,大脑里边纹状体就是负责Actor、Critic两部分,这个纹状体腹部是负责Critic这部分,背部是负责Actor这部分,Reward下来以后我们大脑会计算,这与预期的Reward有什么差距,这个差距就会以多巴胺的形式影响到Actor,下一次你就要按照这个去调节,让下一次Action做的更好一点。其实多巴胺体现在我们的算法里面就是TD error,也就是我们算的Reward的误差,这其实是一个很好的对应。

4. 实验平台和实际效果

前面是网络架构的设计,为了实现这样一个算法模型,我们搭了一个实验平台,这个实验平台就是基于Facebook的TorchCraft,它是把《星际争霸1》和Torch封装在一起,但是我们比较习惯于TensorFlow和Python,所以在上面做了一个封装,再把这套架构放在这个OpenAI标准接口里边,大家有兴趣可以试一下。

这个架构主要分成两部分,对应刚才说的强化学习,左边是Environment,其实就是《星际争霸》这个游戏,包括引擎,还有里面的DLL,DLL基于BWEnv,这是一个官方认可的DLL。基于这个BWEnv DLL把内部的状态、指令封装起来,其实这就是一个Server,右边就是Agent,是一个Client,这样你可以连上很多的Agent玩这个游戏。

中间是传递的信息,Environment会把它每一帧的数据吐给Agent,Agent会把每一帧的数据抽象成状态,然后再把这个State送到model里面去学习或者做预测,反过来会预测出来一些Action,这些Action会封装成指令,再发回给《星际争霸》的Environment,比如说开枪或者逃跑,这个是我们搭的这样一个《星际争霸》的实验平台。

下面是我们这个实验平台做到的一些效果,总结起来有五种可观测的智能:

第一种,可以配合走位。这个例子就是三个枪兵打一个Super的小狗,这个小狗是我们编辑过的,血量非常大,一下子打不死。三个枪兵打一个小狗,a/b这两个图,在训练的早期其实是没有学会太多的配合意识,所以他们走位的时候经常会发生碰撞,经过可能几万轮的训练以后,他们慢慢学会了配合队友的走位,这样大家撞不到一起。

第二个场景,这个配合就是边打边撤,Hit and Run这样的技能,这个例子就是三个枪兵打一个狂徒,利用远程攻击的优势来消灭敌人。

第三种,掩护攻击。刚才三个枪兵打一个狂徒的时候是同时撤退,但是在这个场景下有些枪兵可能会去吸引这个小狗或者去阻挡一下,让另外两个枪兵抓住这个时间空隙来消灭这个小狗。非常有意思的一点就是,这种协作不是在任何情况下都会出现的,如果你的环境不是那么的有挑战性,可能它就是简单的Hit and Run就足够了,如果我们的环境更严苛一点,比如这个小狗血量调高,攻击力从3调到4,或者血量从210调到270,发现它又学会了另一种更高级的掩护攻击的协作,这就非常有意思了。

第四种,分组的集火攻击。这个例子是15个枪兵打16个枪兵,大家想想应该怎么取胜?策略可能3个枪兵或者4个枪兵自动组成一组,这3个枪兵先干掉一个、再干掉一个,就是把火力集中,但又不是15个枪兵打1个,而把火力分散一点,最后可能我们这方还剩6个枪兵,对方可能全部消灭掉了,这个都是通过很多轮次的学习之后他们自动去学到的这样一个配合。

第五种,不光是枪兵之间学会配合,还可以多兵种配合,异构的Agent的配合。这个例子就是,两个运输机,每个运输机带一个坦克去打一头大象,正常来讲,两个坦克打一个大象肯定是打不过的,加上运输机的配合以后,大象攻击某一个坦克的时候,运输机会及时的把这个坦克收起来,让大象扑空,同时另外一个运输机赶紧把它的坦克放下去,去攻击大象,这样一来一回可能大象一点便宜占不到就被消灭了,这个是基于我们之前的做出BiCNet一个协作的展现。

5. 关于未来的一些思考

但是《星际争霸》里其实不光是微观战斗,其实更难的是宏观的策略方面,怎么样“宏观+微观”打一整个游戏,这样其实我们也有一些思考,可能不是特别成熟,但是我们可以一起探讨一下。

第一点,要玩一个full-game,如果是简单的单层次的强化学习,可能解决不了问题,因为action space实在太大了,一个比较自然的做法就是做层级式的方式,可能上层是策略规划,下面一层就是它的战斗、经济发展、探路、地图的分析等等,这样的话一层一层的,就是高层给下层设置一个goal,下层再给下面一层设计一个goal,其实这跟人的问题分解是比较类似的。

第二点,我们觉得值得去研究和探讨的是模仿学习,Imitation Learning,刚刚讲的AlphaGo的例子也是Imitation Learning,第一步通过监督学习学习比较好的策略,再把监督学习学好的策略通过自我的对弈去提升,在《星际争霸》里面更需要这种模仿学习,比如说我们两个枪兵打一个小狗的时候,我们认为一个好的策略是一个枪兵吸引小狗在那儿绕圈,然后另外一个枪兵就站在中心附近开枪,把这个小狗消灭,两个枪兵一滴血可以不死。但是这种策略是比较难学习的,所以我们先给它人为的让这个枪兵在里面画圈,画上几步之后枪兵自己学会画圈了,带着小狗,然后另外一个枪兵在后面追着屁股打,这种探索就非常的有效。

第三点,我们叫Continual Learning,如果要迈向通用智能,这是绕不过去的课题。Continual Learning像人一样,我们学会了走路,下一次我们学会了说话,我们在学说话的时候可能就不会把走路这件事情这个本领忘掉,但是在《星际争霸》一些场景的时候,神经网络学到A的时候再去学B,这个时候可能会把A的事情忘掉。

举个例子,一开始我们训练一个枪兵打一个小狗,这个小狗是电脑里边自带的AI,比较弱,这个枪兵学会了边打边撤,肯定能把小狗打死。我们再反过来训练一个小狗,这个小狗去打电脑枪兵,这个小狗学会最佳策略就是说一直追着咬,永远不要犹豫,犹豫就会被消灭掉,所以它是一条恶狗,一直追着枪兵咬。

然后我们把这枪兵和小狗同时训练,让他们同时对弈,这样发现一个平衡态,就是枪兵一直逃,狗一直追,《星际争霸》设计比较好的就是非常平衡。然后这个枪兵就学会了一直跑,我们再把这个枪兵放回到原来的环境,就是再打一个电脑带的小狗,发现它也会一直跑,它不会边打边撤。你发现它学习的时候,学会了A再学会B,A忘了,这个其实是对通用人工智能是非常大的挑战,最近DeepMind也发了一个相关工作的Paper,这也是一个promising的方向,大家有兴趣可以去看一下,他们的算法叫EWC。

最后一点,前面有说到几大挑战,其中有一大挑战就是长期的规划,长期规划里边我们认为一个比较好的做法就是,给这种强化学习里面去引入Memory的机制,这也是目前的一个比较火的方向,像Memory Networks、DNC,要解决的问题就是,我们在学习的过程当中应该记住什么东西,从而使得我们可以达到一个很好的最大的Reward。

原文链接

时间: 2024-07-28 21:21:13

战胜柯洁后,AI在悄悄潜入人类下一个智慧堡垒的相关文章

杭州人正在用的城市大脑,有可能是人类下一个“登月计划”

上周末,据说全世界最聪明的大脑都来杭州开会了! 一打听,哦,原来是7月9日,杭州举办了全球人工智能高峰论坛.其中的参与嘉宾中有一个我们非常熟悉,阿里巴巴技术委员会主席,王坚博士. 在会上,王博士并没有说人的大脑有多聪明,而是反复提到了一个词"城市大脑".那么"城市大脑"跟人的大脑有什么不同?它是怎么运作的呢? 以下为王博士的部分演讲内容 人工智能再次成为焦点,关键在于互联网变成了基础设施 首先,今天人工智能再次成为了焦点,其实不是人工智能本身发生了重大变化,而是世界

PE/VC争抢90后:年老是耻辱围猎下一个扎克伯格

互联网创投市场竞争日益激烈,已经将赛场最大限度地前置了.创投们发起了一场争夺90后的战争.IDG发起了90后基金,红杉资本.真格基金.光速创投等都在加速对90后的投资.几乎所有主流投资机构都在 发力,在他们看来这是一场争夺下一个扎克伯格的战争.泡否创始人马佳佳. 脸萌创始人郭列.一起唱创始人尹桑.伏牛堂创始人张天一等等,都是90后.互联网行业,年老是最大的耻辱.以往我采访传统行业高管,多因年轻而怯场.接触互联网领域后,发现一些互联网创始人多是88后,也就是泛90后一代,却因年长而胆怯.为什么是9

文字图片社交后 移动视频分享会是下一个爆发点吗

北京时间6月18日消息,今天早上的一则新闻让人浮想联翩,据消息人士透露在6月20日即将举行的发布会上,Facebook很有可能推出支持拍摄和分享短视频的新版Instagram.这款能够进行视频分享的新版Instagram,其分享的视频时长将设定在5至10秒内,不过对于是否带有滤镜功能,以及是单独应用,还只是在Instagram基础上增加了新功能等相关细节问题都还未知,而Facebook对这相关的信息也是守口如瓶. 国外分析师认为,在Viddy.Socialcam以及Twitter视频分享应用Vi

前一个textbox控件执行完程序跳到下一个后,如何跳转到下一个程序

问题描述 textBox9执行完后,不用焦点,如何让textBox10执行呢privatevoidtextBox8_TextChanged(objectsender,EventArgse){if(textBox8.Text.Length<=2){}else{textBox9.Focus();}}privatevoidtextBox9_TextChanged(objectsender,EventArgse){if(textBox9.Text.Length<=2){}else{textBox10_

致歉Note7用户后,三星要还给世界下一个机皇

1月23日,三星电子在韩国首尔公布了Note7事件原因调查结果.此次认定过程精密而繁琐,最终结果发布距离三星宣布全球召回Note7已经有3个月. 相比事发之初各路信息甚嚣尘上,现在虽然还不能说已经尘埃落定,但事态也基本趋于缓和.从目前被舆论转载较多的信息当中可知,Note7在全球共计召回300多万部,全数召回之后的停产,为三星电子在2016年第四季度和2017年第一季度造成3万亿韩元的损失.可以想象,此次引发全球围观的危机事件当中,事故机机主.普通Note7机主以及三星公司所经历的,一定比围观者

智能家居:客厅场景后 智能厨房成下一个风口

智能厨房 发端于客厅,以互联网电视之争为标志的智能家居大战,现在又有了新战场--厂商们开始争夺在厨房的话语权. 在刚刚结束的2016中国家电及消费电子博览会(AWE)上,老板.华帝.九阳等专业厨房电器企业,正借智能化的东风,加快向其他厨电产品扩张;与此同时,海尔.美的.海信等综合家电集团,已开始发力智能厨房. 把冰箱.电饭煲变为买菜.买米的入口,让抽油烟机.微波炉成为菜谱导航--正如菜肴丰富多彩一样,智能厨房的入口其实也是多种多样的,从冰箱.抽油烟机.微波炉到电饭煲,谁能抢占到这个入口,就要比拼

【星际争霸人类战胜机器】韩国选手4:0战胜Facebook等机构AI

 韩国的专业玩家在星际争霸游戏中以4:0的比分战胜了AI. 在人与AI最近的一次遭遇战中,韩国的专业玩家在星际争霸游戏中以4:0的比分战胜了AI.比赛于本周二在韩国的世宗大学举行. 虽然AI在本次比赛中击败了两位业余玩家,但是,在对阵专业级玩家宋炳具(Song Byung-gu)时,它们输掉了所有的比赛.宋炳具被认为是世界上最好的星际争霸职业选手之一. 参加本次比赛的AI系统有四个,分别是:来自韩国世宗大学的MJ Bot.来自澳大利亚的ZZZK.来自挪威的TSCMOO和来自Facebook的Ch

德州扑克算法幕后研发者CMU博士Brown专访:AI如何打败顶级人类牌手?

在上个月举行的单挑无限注德州扑克( heads-up no-limit hold'em)人机对战中,由卡耐基梅隆大学研发的AI程序Libratus以每100手14倍大盲(译者注:缩写为14bb/100,意为玩100手牌,平均能赢对手14倍大盲注)完胜世界级人类玩家团队,震惊所有在场人员. 比赛共打12万手,最后Libratus赢得了1,776,250个筹码,近90个买入.虽然人类玩家输惨了,但幸运的是他们并不需要真的自掏腰包把输掉的钱给赢家Libratus(虽然他们来参加这场对战也需缴纳费用).

德扑 AI 之父托马斯·桑德霍姆:扑克 AI 如何完虐人类,和 AlphaGo 大不同

11 月 6 日,在今天举行的京东 JDD(京东金融全球数据探索者大会)大会上,卡耐基梅隆大学计算机系教授.德扑 AI 之父托马斯·桑德霍姆发表演讲,讲述了他们创造的人工智能冷扑大师 Libratus 背后的原理究竟是什么?并表示这种非完美信息的游戏 AI 也可以在经济生活带来广泛的应用. 演讲开始,桑德霍姆即透露,Libratus 和名噪一时的 AlphaGo 非常不同,后者是基于完美信息的游戏,前者则是非完美信息的游戏(imperfect-info games)."在不完美信息的游戏里面,我