阿里巴巴为什么选择星际争霸作为人工智能算法研究的环境?星际争霸中算法研究的基本问题和难点是哪些?深度强化学习和多智能体协作的思路和方法又是怎样的? 注:本文首发于 InfoQ 旗下垂直号:AI 前线,ID:ai-front,推荐关注!本文整理自阿里巴巴认知计算实验室技术专家龙海涛在 QCon 北京 2017 上所做演讲:《星际争霸与人工智能》。 写在前面 《星际争霸》一直是游戏玩家心目中即时战略类的经典之作,历时十多年而不衰。而如今它更成为深度强化学习、人工智能算法研究的一个主要平台和工具。因为其蕴含了多智能体协作、多任务学习、宏观策略规划等复杂问题,一旦取得部分突破和进展,对商业和社会发展都会带来极大影响。如国外的 DeepMind、Facebook 等公司相继投入大量人力基于它进行通用人工智能的研究。 在本次演讲中,我们将介绍阿里巴巴如何在《星际争霸》游戏环境中研究人工智能算法,并重点阐述多智能体协作在微观战斗场景中的应用。 演示视频 我是来自阿里巴巴认知计算实验室的龙海涛,今天主要跟大家聊一下“《星际争霸》与人工智能”的话题。首先我会介绍一下为什么我们会选择《星际争霸》这个游戏来做人工智能前沿性的研究,然后是我们在这方面初步的尝试和成果,最后我会跟大家探讨一下,未来我们在《星际争霸》这个游戏里面还可以继续去研究的一些课题。 为什么选择《星际争霸》? 首先可能大家有疑问,为什么选择《星际争霸》这个游戏来做我们 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 来讲一个很大的挑战。 (责任编辑:本港台直播) |