社会焦点

阿里巴巴为什么要选择星际争霸作为AI算法研究环境?(2)

字号+ 作者: 来源: 2017-05-23

深度强化学习 强化学习是非常接近人类学习的一个学习机制,通过这个 Agent 跟环境的交互,在交互当中学习。Agent 会观察周围的环境,然后环境会给它一些反馈,Agent 根据状态和反馈会做出一些动作,这些动作会或多

  深度强化学习

阿里巴巴为什么要选择星际争霸作为AI算法研究环境?

强化学习是非常接近人类学习的一个学习机制,通过这个 Agent 跟环境的交互,在交互当中学习。Agent 会观察周围的环境,然后环境会给它一些反馈,Agent 根据状态和反馈会做出一些动作,这些动作会或多或少的影响这个环境,环境会根据这个动作反馈一些 Reward,Reward 可能是奖励的也可能是惩罚的,Agent 根据这样的试错,不断的去调整。Agent 背后有两个概念非常重要,一个是不停的优化策略,什么样的状况下采用什么样的 Action 是合理的,另外一个是用价值函数评估当前的状态它的价值是怎么样的。

阿里巴巴为什么要选择星际争霸作为AI算法研究环境?

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

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

  多智能体协作

阿里巴巴为什么要选择星际争霸作为AI算法研究环境?

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

阿里巴巴为什么要选择星际争霸作为AI算法研究环境?

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

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

阿里巴巴为什么要选择星际争霸作为AI算法研究环境?

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

阿里巴巴为什么要选择星际争霸作为AI算法研究环境?

这是我们提出来的 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,一结合,最后算出来应该追加的策略是什么样子,从实际来看效果也是非常好的。

阿里巴巴为什么要选择星际争霸作为AI算法研究环境?

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

第一个好处就是,神经科学具有启发性,就是当你在一些具体的问题或者场景里面去思考的时候,会遇到一些问题,这些问题可能是从来没有人解过的,如果神经科学、交叉科学里有类似的这种结构或者算法,这些可能会很好的解决你的问题,带来算法上的一些启发。

反过来另外一点,神经科学也可以帮你做验证,你设计一个算法以后,如果神经科学里面有类似的结构,那么很大概率这个算法是可以工作的。

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

其实多巴胺体现在我们的算法里面就是 TD error,也就是我们算的 Reward 的误差,这其实是一个很好的对应。

转载请注明出处。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章