不同的游戏AI环境对比

自从DeepMind 发表 DQN 算法在 Atari 游戏上超过人类之后,游戏 AI 研究迅速成为了研究热点。游戏 AI 研究火热的一个侧面是游戏 AI 环境推陈出新,层出不穷。OpenAI Gym/Universe、ELF 和 SC2LE 等高水准的游戏 AI 环境相继问世。下面,就给大家介绍一下不同的游戏AI环境的对比。

1. 游戏 AI 环境简介

      游戏 AI 环境包括游戏和适应 AI 调用的 API 接口。现在的游戏 AI 环境可以分为两类:单一游戏 AI 环境和集成游戏 AI 环境。单一游戏 AI 环境是指针对一个游戏构建的游戏 AI 环境。因为针对星际争霸的实在太有名了,我将之单独作为一类。其中 TorchCraft 是 FaceBook 基于星际争霸 I 的做的,后来阿里在上面加了 Python 接口推出了 TorchCraft-py。SC2LE 则是 DeepMind 和暴雪合作,基于星际争霸 II 推出的。另外 Malmo 是基于 MineCraft,ViDoom 是第一人称射击类,Maze 是一个简单的即时策略游戏 (RTS),TorCS 是赛车模拟游戏。集成游戏 AI 环境则是指游戏 AI 环境拥有多款游戏,比较有名的集成游戏 AI 环境有 OpenAI Gym/Universe 和 ELF。

      除了这种划分标准,我们还有一种划分标准——游戏目的。1)大部分游戏 AI 环境是对现有游戏进行改造;这些现有游戏是专业游戏团队建立的,游戏目的是人们的娱乐。2)但是也有少部分研究者认为,现有游戏并不适合做 AI 训练,因此自己设计和实现游戏从而建立游戏 AI 环境;Maze 和 ELF 就是这种思路的代表;游戏目的是研究。

2. OpenAI Gym/Universe

      OpenAI Gym 是 OpenAI 发布的对比测试深度强化学习的框架,其框架是标准强化学习的框架,如下所示。

      OpenAI Gym 的用法简单明了。

      后来 OpenAI 又发布了一套工具,方便开发人员将世界上的游戏移植到 OpenAI Gym 上,并使用这套工具移植超过 1 千款游戏。这便是 Universe。OpenAI 的官博宣称:Universe 是一个能在世界上所有的游戏、网站和其他应用中,衡量和训练 AI 通用智能的软件平台。这样宣称是基于有了这套工具,就有了将世界上所有游戏移植到 OpenAI Gym 的潜力。。。

      OpenAI Gym/Universe 有一些问题。其中一个就是现有算法能够在大部分 OpenAI Gym/Universe 游戏超过人类。换而言之,OpenAI Gym/Universe 大部分游戏在学术上处于 Solved 状态。这让 OpenAI Gym/Universe 的学术价值没有那么大了。不过,OpenAI Gym/Universe 游戏依然能够为新算法提供测试场景。毕竟新算法在 Solved 的问题上比旧算法高效很多,也很有学术价值。但游戏 AI 研究的两大重镇:DeepMind 和 FaceBook 都自己搞一套,没在 OpenAI Gym/Universe 做实验。

3. ELF

      ELF 是 FaceBook 推出的游戏 AI 环境,包括围棋和 ALF(一个 Atari 游戏集)。除此之外,ELF 还实现了一个 RTS 游戏引擎,在这个引擎的基础上实现了一个夺旗游戏、一个塔防游戏和一个 mini-RTS。围棋和 ALF 是点缀,ELF 的重心是 RTS 游戏引擎上的 mini-RTS。

      ELF 用 C++ 将许多并行的游戏线程和每个线程的历史数据封装进去,每次 Python 循环时都可以得到一批次的游戏状态。这样做有两个好处:Python 操作简便,不需要考虑分布式多线程的问题;同时 C ++ 实现的游戏引擎效率高。

      在 ELF 的 mini-RTS 中,作者内置了一款基于规则的 AI, 同时实现了基于 A3C 强化学习的算法基线。从下面的对比图,我们可以看出 A3C 的效果要比基于规则的 AI。

      ELF 作者关心重点是 ELF 的效率,强调高速的游戏 AI 环境对提升游戏 AI 研究的迭代有重要意义。从下面对比图来看,ELF 的效率非常高,速度比其他游戏 AI 环境高了不少。ELF 为了研究去设计和实现游戏,可以控制游戏复杂,并且做很多框架和实现上的优化,从而实现极高的运行效率。

4. SC2LE

      2017 年 8 月 10 号,DeepMind 联合暴雪发布了星际争霸 II 游戏 AI 环境 SC2LE, 其框架如下所示。

这是标准的游戏 AI 环境的框架。对于一个复杂的游戏 AI 环境框架来说,三个问题需要得到解决:怎么抽象状态,怎么处理奖励和怎么抽象动作。对于怎么处理状态,SC2LE 使用三个部分的信息,分别是小地图、全地图和非空间信息。所谓非空间信息包括资源拥有量、科技树和建造队列等信息。

      SC2LE 有两种奖励函数。一种是依照最终结果(1/胜,0/平,-1/负);另一种是基于暴雪给的 Bllizzard 分(资源采集量、科技树升级、单位、建筑的加权和),通过API可以实时获取。显而易见,第一种奖励和我们的目标一致,但太稀疏了;第二种则反之。

      因为星际争霸的动作实在太多太杂,怎么抽象动作是 SC2LE 的一个重点。SC2LE 将星际争霸的动作空间整理成近 300 个动作函数,每个函数有相应的参数,参数一共有 13 种类型。比如在下图中,圈选一部分单位的函数为 select_rect, 两个整数参数表示选择矩阵的两个坐标点。

      游戏 AI 打星际争霸是非常难的任务,因此除了完整 1v1 游戏之外,SC2LE 还很贴心地提供了 7 种迷你游戏,包括指定位置移动、两个机枪兵收集水晶矿碎片、击败小狗、击败小狗和爆虫、收集资源、造机枪兵。虽然这种贴心到最后除了进一步证明了现有算法的渣,并没有什么卵用。。。

      为了验证 SC2LE 的效果并提供基线,SC2LE 提供了三个基于深度强化学习的基线方法。其中两个方法的网络结构分别是 Atari-net 和 FullyConv,第三个方法是 FullyConv 加 LSTM。

我们可以看到三种方法都被人打成狗了。。

完整游戏打不过人,那试一试迷你游戏模式。从下图可以看出,稍微复杂一点的迷你游戏上,这三种方法被人远远地超越了。图中 DeepMind Human Player 是 DeepMind 的一位员工,而 StarCraft Grand Master 是一名专业选手。

      从上面的结果来看,现有算法对于 RTS 无解,RTS 游戏是学术上 Un-Solved 的问题。在这里,我们可以看出 “为了研究设计和实现游戏” 做法的缺陷了:ELF 论文里面有实现基于规则和基于 A3C 的游戏 AI, 并报告了实验对比;但我们还是会困惑现有算法到底达到什么水平,和人类相比怎么样; ELF 中的 mini-RTS 本身比较简单同时没有大量人类玩的经验和技巧,因此无法给我们解答这些困惑。但 SC2LE 不一样,星际争霸 II 是被广泛接受,并有大量人类体验的实际游戏。在星际争霸上,算法和人类对弈,人们对算法的水平立马就有一个直观的感知。

5. 总结

      游戏 AI 环境推陈出新,层出不穷,得利于如火如荼的游戏 AI 研究。现在游戏 AI 环境极大丰富,就看游戏 AI 算法是在短期突破,还是长久守望了。

      最后有一点私货:目前我在和小伙伴们开发非完美信息游戏 AI 环境:RoomAI。RoomAI 的目标是提供一些非完美信息游戏环境和一些基线模型算法,方便 AI 开发人员快速地构建、测试和对比自己的非完美信息游戏 AI 算法。目前 RoomAI 已经支持德州、梭哈和七鬼,基本流程如下所示:玩家 AI 获得游戏环境给出的信息,当前玩家 AI 选择合适的动作,游戏环境根据该动作推进游戏逻辑;重复上述过程,直到分出胜负。

      RoomAI 的用法也是简单明了,下面是一个随机玩家的示例。

from roomai.kuhn import *;
import roomai.common
import random

#### Define your player Bot ####
class KuhnPokerExamplePlayer(roomai.common.AbstractPlayer):
    def receive_info(self, info):
        if info.person_state.available_actions is not None:
            self.actions = info.person_state.available_actions
           
    def take_action(self):
        idx = int(random.random() * len(self.actions))
        return self.available_actions.values()[idx]
        
    def reset(self):
        pass

if __name__ == "__main__":
    #### init ####
    env     = KuhnPokerEnv()
    players = [KuhnPokerExamplePlayer() for i in range(2)]

    #### playing ####
    scores = KuhnPokerEnv.compete(env, players) 
    print (scores)      

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏新智元

DeepMind 通用人工智能新进展:理解AI 智能体间的合作

DeepMind 官方博客今日更新,介绍了理解AI 智能体间合作原理的最新研究: “我们采用深层多代理强化学习来模拟AI 智能体间合作的出现。新的连续社会困境的...

3718
来自专栏AlgorithmDog的专栏

工欲善其事必先利其器 : 游戏 AI 环境对比

游戏 AI 研究火热的一个侧面是游戏 AI 环境推陈出新,层出不穷。OpenAI Gym/Universe、ELF 和 SC2LE 等高水准的游戏 AI 环境相...

1400
来自专栏AI科技大本营的专栏

独家 | 日本机器学习领军人杉山将:为什么说弱监督学习是未来的热门?

前不久结束的第三届CCAI大会,日本人工智能和机器学习领域的新一代领军人物杉山将(Masashi Sugiyama)为我们带来了一场关于弱监督机器学习的精彩演讲...

2856
来自专栏数据科学与人工智能

【流程】数据科学的处理流程

小编邀请您,先思考: 1 您是怎么做数据科学的? 2 您如何理解数据产品? ? 数据科学家知道把不同的理论和工具有机地结合在一起并最终形成特定的流程,进而依据这...

2945
来自专栏镁客网

发展至今的机器学习到底对我们的就业和社会产生了哪些影响?

1330
来自专栏算法channel

机器学习是万能的吗?AI落地有哪些先决条件?

这段时间,有幸聆听了几场大牛报告,一位是第四范式,目前工业界应用AI经验最丰富的之一,曾经在百度与吴恩达共同推进AI在工业界的落地;另一位来自学术界,新加坡国立...

754
来自专栏机器之心

访谈 | 跳槽、行业前景、模型等创业者想问的,邓力这样说

机器之心原创 作者:邱陆陆 5 月 25 日晚,刚刚宣布加入 Citadel 的前微软人工智能首席科学家、IEEE Fellow 邓力参加了由中国科大百人会和阿...

3628
来自专栏AI科技大本营的专栏

AlphaGo Zero,一次成功的炒作而已?

编译 | 阿司匹林 【AI 科技大本营按】2016 年 3 月,AlphaGo 击败世界顶尖职业围棋手李世石,在媒体上掀起巨大的波澜。一年多以后,AlphaG...

33210
来自专栏AlgorithmDog的专栏

工欲善其事必先利其器——游戏 AI 环境对比

游戏 AI 环境推陈出新,层出不穷,得利于如火如荼的游戏 AI 研究。现在游戏 AI 环境极大丰富,就看游戏 AI 算法是在短期突破,还是长久守望了。

3145
来自专栏ATYUN订阅号

【业界】AI发展得有多快? 斯坦福大学给出了一份成绩单

事实证明,我们很难预测AI的新进展何时会发生。在1956年的the Dartmouth Summer Research Project研究项目中,科学家们认为也...

34010

扫码关注云+社区