Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

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);其应用包括下棋类游戏、机器人控制和工作调度等。

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