以下仅为演讲大纲,具体录像请点击


纯 RL 在复旦貌似没什么资源,也没有老师做这个方向的,但是却做出了人工智能最早出圈的成果之一(击败了柯洁的 AlphaGo),Google 的 Deepmind 团队在 AlphaGo 之后在星际争霸 2 继续了他们的 RL 研究。在 2019 年,Deepmind 发布 AlphaStar,登顶 Nature 期刊封面,并且在暴雪嘉年华也击败了星际争霸 2 最强的职业选手 Serral

而 Deepmind 的工作远不止最出圈的 AlphaStar,对于星际争霸 2 的 RL 研究更重要的基石其实要追溯到 2017 年,Deepmind 发布了 StarCraft II: A New Challenge for Reinforcement Learning(http://arxiv.org/abs/1708.04782),而这无论是对学术界还是对工业界而言,都是影响巨大、毫无疑问的开山之作

尽管是快 8 年前的工作,但是 paper 的含金量毋庸置疑,且至今都在学术界与业界影响巨大。最近一直在学习这方面的内容,理解仍然非常浅薄,但是刚好有个机会让我去分享这方面的工作,尽管时间比较紧,其实看的不是特别透彻就得讲了…但实在心痒难挠,也只好冒着撞墙撞得鼻青脸肿的风险来跳梁献丑、贻笑方家了。列位只当是一家之辞,笑话之余还望海涵


Introduction

众所周知,在 2016 年时,由 Google Deepmind 发布的 AlphaGo 击败了世界冠军李世石,之后又击败了积分榜第一的柯洁,成为了当时的热点话题。

在 2017 年,Deepmind 的 RL 工作从围棋转型至星际争霸 2,同年携手暴雪发布了 SC2LE

StarCraft II: A New Challenge for Reinforcement Learning

在 2019 年,Deepmind 发布 AlphaStar,登顶 Nature 期刊封面

为什么要用游戏做 RL?

  • 游戏有明确的成功量度指标(输了或者赢了),以便模型给予 reward
  • 有量度玩家实力水平的 天梯分数/排位段位
  • 游戏所在的虚拟环境,对于深度网络来说,是一个很好的输入;在现实世界中可能会有很多噪音情况,导致并不是最合适的输入数据
  • 游戏本身是一个很好的挑战,也是一个很多人类的需求。因此研究有意义
    • 并且 Benchmark 也可以参考 Deepmind 的工作,实验数据可以以某个段位作为一个 baseline,击败现在世界最强的职业选手那就是 SOTA 了
  • 如果是做具身之类的 RL 的话,开发者是用不同环境去训练和 Deploy 的(比如说我在复旦大学,另外一个想要复现我工作的在香港大学),有很多客观上的条件也不一样。
    • 但是大家跑的游戏都是同一款,在同一个服务器上,同一个环境下进行。

为什么用星际争霸 2 这个 domain 作为落地场景?

  • 频繁去探索,改变状态,得到奖励

    • 通过不断调整 local camera 来探索信息
    • 通过探索战争迷雾去得到信息
    • 每个单位都有自己的一些属性,这些状态会频繁被改变
  • 如果用 MDP 表示的话(这个只是其中一个例子)

    • S:观测到对方的单位
    • A:操作自己的单位,进攻对方的单位
    • R:击杀对方的单位 -
  • 以星际 2 作为落地场景,可以遇到很多对于 RL 来说比较有意义的挑战(如上图所述):

    • 巨大的状态空间、动作空间
    • 作为一个 RTS 游戏(即时策略游戏),需要尽快地做出决策,延迟的决策会影响很多结果
  • 相对于其他的同类游戏,Google Deepmind 构建了 SC2LE(StarCraft II Learning Environment),专门为 RL 研究者直接能对游戏进行研究的环境,其他游戏的话没有前人的工作,需要自己手动搭建一套非常工程且耗费人力、资源的框架,基本是一个非大厂级别的研究机构完全无法承受的。

    Google Deepmind 的工作

    StarCraft II: A New Challenge for Reinforcement Learning

    http://arxiv.org/abs/1708.04782

    Deepmind 发布的专门用于 RL 的训练场景

  • Mini Games,这篇 paper 提供了一些游戏大厅地图,专门用来训练 Agent 一些很简单的操作,一些基础的运营,一些基础的微操。

    • 比如第一个,每当枪兵到达一个灯塔,就给予奖励,训练 Agent 基础的控制兵种能力

给想要做 SC2 RL 的研究者提供了 Benchmark

  • random policy 是从整个 action space 里面去选的
  • random search 是 based on FullyConv agent 的

承上,是 minigame 场景下的 baseline

RL 学习算法

  • 主要是介绍了策略梯度算法
    • 定义了策略 πₐ。在每个时间步,Agent 接收观察 sₜ,并选择一个行动 aₜ
    • 参数通过 A3C 优化
      • Volodymyr Mnih, Adria Puigdomenech Badia, Mehdi Mirza, Alex Graves, Timothy P Lillicrap, Tim Harley, David Silver, and Koray Kavukcuoglu. Asynchronous methods for deep reinforcement learning. ICML, 2016.

训练方式

  • minimap
  • 完整游戏:和游戏内置 AI 打
    • 游戏内置 AI 的策略都是编程写好的,包括怎么发展,在几分钟进攻等等

ORM 模型

  • 输(以及平局)=0
  • 赢=1

PRM 模型

  • 游戏结束后,会有一个根据游戏中的单位总量、资源收集、消灭单位、消灭建筑等等指标的一个“游戏得分”,通常只能在游戏结算画面看,Deepmind 通过和暴雪合作,让游戏能即时获取这个分数,即时对行为进行奖励
  1. 不过,已经有研究表明星际内部的游戏得分并不会对星际 AI 的训练有所帮助。
  2. 而 wtl 等赛事的衡量大部分是人类主观的打分,难以通过大数据计算;至于 elo 分数等方法则和胜率一样,很难关注到星际 AI 的各个方面。

使用到的神经网络架构

Atari-net

  • 类似于为 Atari 游戏设计的 Network architecture
  • 传统的 DQN 架构;先扁平化到 state representation;到输出之间还有一个中间层/连接层

FullyConv

  • 所有层都是卷积层,没有全连接层。
  • 使用卷积网络来保留屏幕和小地图动作的空间信息,更考虑空间信息

使用上述训练策略,在完整游戏上的结果

  • 整体对游戏内置简单 ai 的表现都非常差,加了 LSTM 的效果比消融版更差,GRU 可能是更好的解决方案
  • FullyConv 通过人族建筑升起达成平局,表现比其他两个好一点

还会用到有监督训练,用到了 dual-headed networks

会在以下两个结果导向/过程导向的损失函数去做权衡与计算,从而做出 Action

Value Predictions (predict outcome)

  1. 预测游戏的输赢(没有平局)
    1. 相对而言是比较难去做预测的,因为游戏胜负的预测本来就难料,而且是稀疏奖励场景
  2. 根据一个 Single Frame 来 predict output(比如根据战局现场预测,但是这没有考虑到很多信息,比如对手隐藏了的部队等等)

Policy Predictions

  • 预测某个时间下,玩家进行的行为

arFullyConv:加了 auto-regressive,理论更好,但效果和 FullyConv 相当

一开始是 50%左右,因为游戏开始时基本是随机的、难以预测,且稀疏奖励,后面预测的效果都不错

训练方式

  • 通过学习游戏录像训练 - 模仿学习,根据一些专家数据来学习策略

Related Work


下面这两篇是 Weiyu Ma(Meisah) 大佬的工作,我和这位大佬的交流也蛮多的,从中学习到不少知识,马院士的这两篇工作很容易复现,也是这个领域比较近期的产出,虽然不是很 RL,但是也推荐大家一看:

LLM Plays SC2, 中了 NIPS,上了三顶会

https://mp.weixin.qq.com/s/5SQZxIY8y26TWfO35yfpiQ

http://arxiv.org/abs/2312.11865

  • 模型的推理延迟是一个很大的问题,以后如果出现一些能力密度比较高的小模型可能会比较好

VLM Plays SC2

http://arxiv.org/abs/2503.05383


AlphaStar

https://www.nature.com/articles/s41586-019-1724-z

  1. 监督学习+强化学习
  2. PFSP:prioritized fictitious self-play 带有优先级的虚拟自博弈
    1. 说白了就是给 ai 设计一个联赛,让 ai 不停的通过打比赛来变强
  3. 所有先进的神经网络全部上一遍:CNN,RNN,Transformer,MLP 全都有
  4. 大量的计算资源和训练数据:百万 rep+海量 TPU,权重参数千万级

一共 42 位作者参与的庞大工程,不愧是 nature 封面之作,但是可复现性极差,大家根本没有那么多计算设备和人力.这也带来了之后研究的问题,哪怕是复现 AlphaStar 的工作,都变得异常困难.

腾讯的星际 AI 三部曲

TStarBots,TStarBot-x 和最新发布的 ROA-Star.

出乎意料的是,腾讯在游戏强化学习界一直是打王者荣耀为主的,很少有人关注他们的星际 AI,不过最近看了一点文献之后发现他们还是有不少产出的.

第一篇 TStarBots,论文链接:[1809.07193] TStarBots: Defeating the Cheating Level Builtin AI in StarCraft II in the Full Game (arxiv.org)

这篇文章在 AlphaStar 之前就完成了,使用了 SC2LE 环境,设计了虫族 ai 能够战胜作弊三电脑

第二篇工作 TStarBot-X,论文链接:[2011.13729] TStarBot-X: An Open-Sourced and Comprehensive Study for Efficient League Training in StarCraft II Full Game (arxiv.org)

这篇工作紧随 AlphaStar 之后,也是第一部的改进版,这次虫族 ai 实力更加强劲,可以赢业余选手了.(小道消息,赢的是王哥的虫族)

三部曲的最后一部 ROA-Star,论文链接:pdf (openreview.net)

ROA-Star 彻底突破了之前工作的瓶颈,首先他不用虫族了,开始玩 p 了(这里就不黑 P 了,不过确实大家都喜欢做神族 ai,毕竟 DeepMind 开了个头).论文的实验部分也很有意思,和 SED,CYAN,JIESHI 打了 bo20,保持胜率在 50%,而且还和小 hero 打了 bo3.说明这个 ai 稳定性是真的强,也不怕对手针对.不愧是

A Robust and Opponent-Aware AI(ROA 就这么来的).这篇文章还中了 NeurIPS 2023 Spotlight

技术特点:

  1. AlphaStar 的框架打底
  2. 使用了对手建模网络
  3. 使用了一个目标条件下的利用者,简单来说就是让 AI 专门学小天才来狗你,让你学会如何不被狗币狗.
  4. 加了侦查的 reward
  5. 计算资源这边只用了 46 张 v100,看起来有落地的潜力了

南京大学星际 AI 三部曲

介绍完了腾讯的星际 AI 三部曲,来看看南京大学 liuruoze 博士的星际 ai 三部曲:TG,mini-Alphastar,HierNet-SC2.南京大学的俞扬老师是中国强化学习界的知名学者,liuruoze 博士也是他的门徒之一,靠着学校的资源就完成了三个星际争霸 2 AI 的开发,属于是 one man army 了.他的工作可复现性很强,计算资源消耗并不多,而且都开源了.(三篇都是神族 AI)

第一篇 TG,论文链接:[1903.00715] Efficient Reinforcement Learning for StarCraft by Abstract Forward Models and Transfer Learning (arxiv.org)

这篇工作主要是利用人类经验来构造一个 model-base 的 RL 学习方法

第二篇工作是 mini-AlphaStar,论文链接:[2104.06890] An Introduction of mini-AlphaStar (arxiv.org)

这篇工作主要是探究如何能够高效的筛选出学习的参数和动作空间.因为星际争霸 2 实在是太耗计算资源了,作为一般的学者而言根本弄不了这个.但是 mini-alphastar 就致力于解决这个问题

第三篇工作也是重头戏,长达 48 页的力作 HierNet-SC2.利用分层强化学习和数据挖掘技术,跳过监督学习,从 0 学习星际争霸 2.

论文链接:[2209.11553] On Efficient Reinforcement Learning for Full-length Game of StarCraft II (arxiv.org)

技术特点:

  1. 数据挖掘找到人类最常用的动作
  2. 分层强化学习:最终版使用了三层的分层强化学习,极大缩减了学习空间
  3. 只用 4 张 v100,这下基本上有几个钱就可以试着玩了.
  4. 细致的 reward 设计,解释了 spare reward 和 dense reward 对星际争霸 2 ai 的影响(dense 虽然好,但和最终性能没啥关系)
  5. 采用了和 alphastar 不一样的动作空间,保证了和人类的一致性(alphastar 实际上还是调接口,所以他的操作才那么变态)

SCC(启元)

论文地址:[2012.13169] SCC: an efficient deep reinforcement learning agent mastering the game of StarCraft II (arxiv.org)

  • 人族 ai,以爆维京战机出名的启元流

DI-Star

虫族 ai

中国虫王 IA 在星际上的最后一舞.去年也是在 bilibili 上放出了演示视频和 github 的 demo,但是并没有论文放出来啊,还是说我没找到?

不过还是把 github 放出来:opendilab/DI-star: An artificial intelligence platform for the StarCraft II with large-scale distributed training and grand-master agents. (github.com)

直接可以部署在本地电脑玩的星际 ai,不知道他们的这个策略蒸馏怎么做的啊,或许这就是商汤的技术力吧(不过他们现在应该是上海 AI lab 了?)

DeepMind 的又一力作

AlphaStar Unplugged,离线强化学习也能玩星际!

论文地址:[2308.03526] AlphaStar Unplugged: Large-Scale Offline Reinforcement Learning (arxiv.org)

离线强化学习一直以来实际上不太被游戏 AI 所关注,毕竟游戏 AI 可以直接 online 学.DeepMind 通过百万级的 replay 来进行离线强化学习(在数据集上学到最好的策略),最终是击败了之前 AlphaStar 中的 SL(监督学习)ai.

技术特点:

  1. MCTS 蒙特卡洛树搜索,没想到也能用在星际上,
  2. offline RL,实现了好多算法,也实现了 offline 的 Actor-Critic.

如果想要从事这方面的研究,我应该去哪里?

  • 学术界:南大的俞扬老师,交大的俞勇老师
  • 业界:比较推荐,像是腾讯这样的大厂里面也有做很多 RL,也有很多产出。因为学术界通常没资源(显卡资源、人力资源)不是很多,像是复旦就没什么做纯 RL 的老师。而且水平整体是比业界差一截的(不过业界通常把成果藏着掖着,只用在自己产品里面,免得被别人抄了。但是那种特别革命性的成果或者非常震撼的产品,又通常来自于业界)。简单举个例子,像是 AlphaStar 这样的工作,就非常需要 GPU 资源去复现,没卡就更别说是进一步的探索了。