2018 AIIDE星际争霸AI挑战赛亚军CherryPi开源TorchCraftAI

不久前,2018 AIIDE StarCraft AI 挑战赛顺利结束。27 支队伍参加比赛,其中三星 SAIDA 获得冠军,Facebook 团队开发的 CherryPi 获得亚军,中科院自动化所开发的 CSE 获得季军。刚刚,Facebook 研究科学家、CherryPi 作者之一 Gabriel Synnaeve 宣布开源训练 StarCraft 智能体的 TorchCraftAI 平台,该平台允许构建智能体来(学习)玩《星际争霸:母巢之战》游戏。

TorchCraftAI 地址:https://torchcraft.github.io/TorchCraftAI/

TorchCraftAI 包括以下重要特征:

  • 用于构建 StarCraft 智能体的模块化框架,其中的模块可以接受攻击,被替换成其他模块或机器学习强化学习模型。

  • CherryPi:在星际争霸 AI 竞赛中取得了不俗的成绩,如 SSCAIT 2017-18 冠军、AIIDE 2018 亚军。

  • 适用于星际争霸全场游戏、小游戏的强化学习环境,具备模型、训练循环和教程。

  • TorchCraft 支持与 StarCraft 和 BWAPI 的 TCP 通信。

  • 支持 Linux、Windows 和 OSX 操作系统

系统架构

TorchCraftAI 基于两个现有星际争霸智能体开源项目:BWAPI 和 TorchCraft。

BWAPI(Brood War API)

BWAPI 是开发《星际争霸:母巢之战》竞赛智能体时广泛使用的编程界面。它提供人类玩家可观察的所有信息,且使得开发人员可以使用编程语言控制游戏智能体。《星际争霸:母巢之战》是一款 Windows 游戏,BWAPI StarCraft 智能体基于 Windows 开发,通常是 32-bit 动态库(DLL)或使用 BWAPI 客户端模式的 32-bit 可执行程序。

TorchCraft

TorchCraft 使用客户端-服务器架构实现与 BWAPI 的跨平台连接,从而促进对《星际争霸:母巢之战》的机器学习研究。服务器是 Windows DLL for BWAPI,客户端程序可以更加灵活地定义,如在 Linux 系统上运行的 C++ 程序或 Python 脚本。其运行模式的理论很简单:TorchCraft 客户端向服务器发送一串游戏命令,服务器执行对应的 BWAPI 调用,并回应更新后的游戏状态。

TorchCraftAI

TorchCraftAI 封装了 TorchCraft client C++ 库,提供游戏循环和游戏状态的抽象。其核心特征包括:

  • 在一个流程中托管多个客户端的能力,从而能够并行玩多个星际争霸游戏。

  • 能够从 TorchCraftAI 程序内部启动星际争霸游戏,从而使得写训练循环、测试和场景更加简便。

  • 分布式强化学习库。

下图展示了两个 TorchCraftAI 智能体互搏的完整图:

教程

训练模型造建筑(通过强化学习训练造建筑模块):

地址:https://torchcraft.github.io/TorchCraftAI/docs/bptut-intro.html

训练模型战斗(通过强化学习使智能体掌握微操技能):

地址:https://torchcraft.github.io/TorchCraftAI/docs/microtut-intro.html

工程游戏AI开源星际争霸
1
相关数据
机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

操作系统技术

操作系统(英语:operating system,缩写作 OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

推荐文章
暂无评论
暂无评论~