Update chapter13.md

This commit is contained in:
Yiyuan Yang
2022-09-20 11:29:29 +08:00
committed by GitHub
parent e80046464c
commit d92e2a359c

View File

@@ -1,16 +1,16 @@
# AlphaStar 论文解读
# 第13章 AlphaStar 论文解读
## AlphaStar及背景简介
## 13.1 AlphaStar及背景简介
相比于之前的深蓝和AlphaGo对于《星际争霸Ⅱ》等策略对战型游戏使用AI与人类对战的难度更大。比如在《星际争霸Ⅱ》中要想在玩家对战玩家的模式中击败对方就要学会各种战术各种微操和掌握时机。在游戏中玩家还需要对对方阵容的更新实时地做出正确判断以及行动甚至要欺骗对方以达到战术目的。总而言之想要让AI上手这款游戏是非常困难的。但是DeepMind做到了。
AlphaStar是DeepMind与暴雪使用深度强化学习技术实现的计算机与《星际争霸Ⅱ》人类玩家对战的产品其因为近些年在《星际争霸Ⅱ》比赛中打败了职业选手以及99.8\%的欧服玩家而被人所熟知。北京时间2019年1月25日凌晨2点暴雪公司与DeepMind合作研发的AlphaStar正式通过直播亮相。按照直播安排AlphaStar与两位《星际争霸Ⅱ》人类职业选手进行了5场比赛对决演示。加上并未在直播中演示的对决在人类对阵AlphaStar的共计11场比赛中人类仅取得了1场胜利。DeepMind也将研究工作发表在了2019年10月的 *Nature* 杂志上。本章将对这篇论文进行深入的分析,有兴趣的读者可以阅读原文。
## AlphaStar的模型输入和输出是什么呢————环境设计
## 13.2 AlphaStar的模型输入和输出是什么呢————环境设计
构建深度强化学习模型的第一步就是构建模型的输入和输出,对于《星际争霸Ⅱ》这一个复杂的环境,文章第一步就是将游戏的环境抽象成众多独立的数据信息。
### 状态(网络的输入)
### 13.2.1 状态(网络的输入)
AlphaStar将《星际争霸Ⅱ》的环境状态分为4部分分别为实体entities信息、地图map信息、玩家数据player data信息、游戏统计game statistics信息如图13.1所示。
@@ -27,7 +27,7 @@ AlphaStar将《星际争霸Ⅱ》的环境状态分为4部分分别为实体
第四部分————游戏统计信息,视野的位置(小窗口的位置,区别于第二部分的全局地图信息),还有当前游戏的开始时间等信息(标量信息)。
### 动作(网络的输出)
### 13.2.2 动作(网络的输出)
AlphaStar的动作信息主要分为6个部分如图13.2所示分别为动作类型action type、选中的单元selected units、目标target、执行动作的队列queued、是否重复repeat以及延时delay各个部分间是有关联的。
@@ -48,7 +48,7 @@ AlphaStar的动作信息主要分为6个部分如图13.2所示,分别为动
第六部分————延时,即等候多久后再接收网络的输入,可以理解为一个操作的延迟。
## AlphaStar的计算模型是什么呢————网络结构
## 13.3 AlphaStar的计算模型是什么呢————网络结构
我们在13.2节说明了AlphaStar网络的输入和输出即状态和动作那么从状态怎么得到动作呢这里我们先给出其网络结构的总览如图13.3所示,后面对此详细讨论。
@@ -57,7 +57,7 @@ AlphaStar的动作信息主要分为6个部分如图13.2所示,分别为动
</div>
<div align=center>图 13.3 AlphaStar网络结构总览</div>
### 输入部分
### 13.3.1 输入部分
<div align=center>
<img width="550" src="../img/ch13/13.4.png"/>
@@ -70,7 +70,7 @@ AlphaStar的动作信息主要分为6个部分如图13.2所示,分别为动
- 对于实体使用自然语言处理中常用的Transformer架构作为编码器encoder
- 对于小地图使用图像中常用的ResNet架构作为编码器得到一个定长的向量。
### 中间过程
### 13.3.2 中间过程
中间过程比较简单即通过一个深度长短期记忆网络模块融合3种当前状态下的嵌入并进行下一时刻的输出如图13.5所示并且将该输出分别送入价值网络value network、残差多层感知机residual MLP以及动作类型的后续的多层感知机中。
@@ -79,7 +79,7 @@ AlphaStar的动作信息主要分为6个部分如图13.2所示,分别为动
</div>
<div align=center>图 13.5 AlphaStar网络结构中的深度长短期记忆网络模块</div>
### 输出部分
### 13.3.3 输出部分
正如前面介绍的输出的动作是前后相关联的如图13.6所示,我们按照顺序一一介绍。
@@ -98,15 +98,15 @@ AlphaStar的动作信息主要分为6个部分如图13.2所示,分别为动
接着是目标单元target unit和目标指针target point两者二选一对于目标单元使用注意力attention机制得到最优的动作作用的一个对象对于目标区域使用反卷积残差网络将嵌入的向量反卷积为地图的大小从而执行目标移动到某一点的对应动作。
## 庞大的AlphaStar如何训练呢————学习算法
## 13.4 庞大的AlphaStar如何训练呢————学习算法
对于上面复杂的模型AlphaStar究竟如何进行训练呢总结下来一共分为4个部分即监督学习主要是解决训练的初始化问题、强化学习、模仿学习配合强化学习以及多智能体学习或自学习面向对战的具体问题下面我们一一分析。
### 监督学习
### 13.4.1 监督学习
在训练一开始AlphaStar首先使用监督学习即利用人类的数据进行比较好的初始化。模型的输入是收集到的人类的对局数据输出是训练好的神经网络。具体的做法是对于收集到的人类对局数据即对于每一个时刻解码游戏的状态将每一时刻的状态送入网络中得到每一个动作的概率分布最终计算模型的输出以及人类对局数据的KL散度并以KL散度进行网络的优化其中在KL散度中需要使用不同的损失函数。例如动作类型的损失即分类问题的损失就需要使用交叉熵。而对于目标定位等类似的回归问题就需要计算均方误差mean square errorMSE。当然还有一些细节大家可以自行阅读论文。总之经过监督学习模型输出的概率分布就可以与人类玩家输出的概率分布类似。
### 强化学习
### 13.4.2 强化学习
这里的目标就是通过优化策略使得期望的奖励最大,即
@@ -168,10 +168,10 @@ $$
- $r_t = \lim_{T\rightarrow\infty} (1-\lambda)(r_t+V_{t+1})+(1-\lambda)\lambda(r_t+\gamma r_{t+1}+\gamma^2 V_{t+2})+...$。
### 模仿学习
### 13.4.3 模仿学习
模仿学习额外引入了监督学习损失以及人类的统计量 $Z$ 即对于建造顺序build order、建造单元build unit、升级upgrade、技能effect等信息进行奖励并将统计量 $Z$ 输入策略网络和价值网络。另外AlphaStar对于人类数据的利用还体现在前面介绍的使用监督学习进行网络的预训练工作中。
### 多智能体学习/自学习
### 13.4.4 多智能体学习/自学习
自学习在AlphaGo中得到了应用。自学习通俗讲就是自己和自己玩自己和自己对战。AlphaStar对此进行了一些更新即有优先级的虚拟自学习策略。虚拟自学习就是在训练过程中每隔一段时间就进行存档并随机均匀地从存档中选出对手与正在训练的智能体对战。而有优先级的虚拟自学习指的是优先挑选常能打败智能体的对手进行训练对战评判指标就是概率。在AlphaStar中其训练的智能体分为3种主智能体main agent、联盟利用者league exploiter和主利用者main exploiter
@@ -183,9 +183,9 @@ $$
他们的区别在于如何选取训练过程中对战的对手在什么情况下存档snapshot现在的策略以多大的概率将策略参数重设为监督学习给出的初始化参数。
## AlphaStar实验结果如何呢————实验结果
## 13.5 AlphaStar实验结果如何呢————实验结果
### 宏观结果
### 13.5.1 宏观结果
<div align=center>
<img width="550" src="../img/ch13/13.7.png"/>
@@ -198,7 +198,7 @@ $$
图13.7c 为《星际争霸Ⅱ》报告的每分钟有效行动分布情况其中蓝色为AlphaStar最终的结果红色为人类选手的结果虚线表示平均值。
### 其他实验(消融实验)
### 13.5.2 其他实验(消融实验)
AlphaStar的论文中也使用了消融实验即控制变量法来进一步分析每一个约束条件对于对战结果的影响。下面举一个特别的例子。
@@ -209,7 +209,7 @@ AlphaStar的论文中也使用了消融实验即控制变量法来进一
图13.8 所示为人类对局数据的使用情况。可以看出在没有人类对局数据的情况下,数值仅仅为 149 但是只要经过了简单的监督学习对应的数值就可以达到936当然使用人类初始化后的强化学习可以达到更好的效果利用强化学习加监督学习的KL散度可以达到接近于完整的利用人类统计量 $Z$ 的效果。由此我们可以分析出AlphaStar 中人类对局数据对于整个模型的表现是很重要的,其并没有完全像 AlphaGo 一样,存在可以不使用人类数据进行训练的情况。
## 关于AlphaStar的总结
## 13.6 关于AlphaStar的总结
关于AlphaStar的总结如下。