上周结束的 AI 星际争霸竞赛,让 AI 挑战星际争霸这个议题又稍稍火了一把。虽然这届冠军使用的仍然是硬编码方法,但从其他解决方案中不难看出,AI 算法的占比在不断提升。

作为围棋之后 公开宣布的下一个攻克目标,《星际争霸》的魅力可见一斑。而随后不久 便将其相关研究及平台开源,更是印证了让 AI 玩星际争霸的挑战。

今天,塔尔图大学的 Roman Ring 在 上开源了他倾力投入一年半的成果,一个名叫 的《星际争霸 II》AI,可用于训练《星际争霸 II》的各种基本任务。

的基本思路是沿着 的路线在走,也即 AI 的玩法是像人类玩家一样,从游戏画面中获取视觉特征,然后再做出决策。

补充说明单机游戏库,Roman 去年本科毕业项目是使用《Actor- 法复现 星际争霸 II 强化学习基准》[1], 则是在此基础上的改善提升。

的强项在于比其他开源的同类框架单机运行速度快;除了支持星际争霸游戏训练环境 SC2LE,也支持 Gym、ATARI 和 ;模块化组成,容易调试。

根据作者所说, 不到10 秒就解决 -v0,在 4 核 CPU 笔记本上每秒处理 5000 张图像,使用 Colab, 通关《星际争霸 II》SC2LE 小型游戏 只需要半小时的时间。

单机游戏库_《单机游戏仓库》_单机游戏库app

玩《星际争霸 II》小型游戏 的画面,左边是未经训练,右边是训练后的情况。来源:Roman Ring/

套用一句话,如果我们的征途是星辰大海,那么其中的一关必然是《星际争霸》。

对于不具备 GPU 集群的人非常友好,正如作者在 库里介绍所说单机游戏库

“虽然开发是研究驱动的,但 API 背后的理念类似于《星际争霸II》游戏本身——新手可以用,领域专家也能从中获得东西。

“对于业余爱好者而言,只要对 稍作修改(例如超参数),就能得到训练深度强化学习智能体的所有必须工具。对于经验丰富的研究人员, 提供简单但性能优化的代码库,而且都是模块化架构:智能体、模型和环境都是分开,并且可以随意组合调换。”

欢迎加入星际争霸强化学习阵营。

深度强化学习:模块化且便于调试

单机游戏库_《单机游戏仓库》_单机游戏库app

性能 大部分已发表的强化学习基准通常针对的都是 MPI 之间 -based 通信,对于 或者 这样有大规模分布式强化学习配置的机构而言这样做自然很合理,但对于普通研究者或其他没有这类强大基础设施的人,这就成了很大的瓶颈。因此,Roman Ring 采用了共享内存( )的方法,相比 -based 并行的解决方案实现了大约 3 倍的速度提升。

模块化 很多强化学习基准都或多或少都是模块化的,不过这些基准通常与作者使用的训练环境密切相关。Roman Ring 自己就曾经因为专注于《星际争霸 II》环境而导致调试花了很长时间。因此,Revar 只需要一个命令行就能改变训练环境,从 SC2 到 Atari 或者 (将来计划纳入 )。每个神经网络都是简单的 Keras 模型,只要符合基本的 API 都能调用。

调试 现在一个游戏 AI 通常含有十几个不同的调试参数,如何实现更为统一便捷的调试?Roman Ring 在 中只要能用的地方都用了 “gin-”,这个轻量级调试框架只要是 可调用函数都能调试,非常方便。

更新 是的,现在算法发展很快,去年发表的东西今年就可能过时。在开发 的时候 Roman 表示他想着用了 2.0 API(主要是使用 tf.keras 不用 tf.),希望这个库能活用久一点吧。

单机友好,可用于训练星际争霸II各种任务

Roman Ring 列出了 在《星际争霸 II》各种小型游戏上与其他 AI 的性能对比。其中,

单机游戏库app_单机游戏库_《单机游戏仓库》

以下是 在不同小型游戏中训练花费的时间:

单机游戏库_《单机游戏仓库》_单机游戏库app

综上,就算 花了 150 小时,但考虑到硬件只是一台笔记本(英特尔酷睿 i5-,4核 +GTX ),这个结果已经算很不错。

Roman 还列出了他的路线图,上述成果只是他万里长征的第一步。如果你感兴趣,不妨加入这个项目。

《单机游戏仓库》_单机游戏库app_单机游戏库

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注