AlphaGo Zero通过与自身博弈,生成训练集。使用residual network预测状态S下,该玩家获胜的可能性和每个动作(包含pass)的先验概率。MCTS作为策略增强器与residual network结合。根据搜索树的根节点到子节点边上的访问次数,AlphaGo Zero计算出在状态S下的走子策略。
论文地址:
https://www.nature.com/articles/nature24270
引言
AlphaGo是首个表现超越人类的程序,AlphaGo Zero比AlphaGo更强大。它们的不同不同之处在于,首先AlphaGo Zero从随机初始化开始,通过自我博弈提升,而未借助任何人类的棋谱数据。其次它的输入只有黑白子的0、1棋盘表示。再次AlphaGo的策略网络与价值网络是分开的,它使用同一个神经网络。最后AlphaGo Zero中MCTS仅与residual network相结合,而AlphaGo采用快速走子网络进行蒙特卡洛推理。
模型
本文先介绍AlphaGo Zero中的估值网络、MCTS,然后介绍预测和训练。
估值网络
估值网络的输入是状态S,输出为采取每个动作(共19✖19+1个动作)先验概率和本轮下棋方的获胜可能性,获胜可能性取值在[-1,1]之间。状态S为19✖19✖17的图像,t时刻的状态
s
t
=
[
x
t
,
y
t
,
x
t
−
1
,
y
t
−
1
,
.
.
.
,
x
t
−
7
,
y
t
−
7
,
C
]
s_{t}=\left[ x_{t},y_{t},x_{t-1},y_{t-1},...,x_{t-7},y_{t-7},C \right ]
st=[xt,yt,xt−1,yt−1,...,xt−7,yt−7,C],其中
x
t
x_{t}
xt为19✖19的矩阵,
x
t
i
=
1
x_{t}^{i}=1
xti=1表示棋盘格子
i
i
i上有本轮下棋方的棋子,矩阵其它元素为0。
y
t
y_{t}
yt为对手的19×19矩阵。
C
C
C矩阵全部元素为1代表本轮轮到黑方,全部为0表示本轮轮到白方。
估值网络的网络结构为多个residual block,加上两个特殊的”head”,预测动作先验概率的”head”:通过卷积运算、BN、RELU、全连接层的运算,输出为19✖19+1=392维的向量,+1表示pass的动作。预测本轮下棋方获胜可能性的”head”:通过卷积运算、BN、RELU、全连接层至256维、RELU、全连接层至1维、tanh的运算,输出为[-1,1]之间的数字。
MCTS
MCTS起到策略提升器的作用,采用类似于PUCT的方法来平衡探索(exploration)和利用(exploitation)。根据根节点到子节点边上的访问次数,AlphaGo Zero计算出在状态S下的走子策略。
搜索树的每个节点S包含边(S,a)其中a为状态S的合法动作(符合围棋的下棋规则)。每个边包含以下统计信息:
{
N
(
s
,
a
)
,
W
(
s
,
a
)
,
Q
(
s
,
a
)
,
P
(
s
,
a
)
}
\left \{ N\left ( s,a \right ), W\left ( s,a \right ),Q\left ( s,a \right ),P\left ( s,a \right )\right \}
{N(s,a),W(s,a),Q(s,a),P(s,a)}
其中
N
(
s
,
a
)
N\left ( s,a \right )
N(s,a)是访问次数,
W
(
s
,
a
)
W\left ( s,a \right )
W(s,a)是总动作价值,
Q
(
s
,
a
)
Q\left ( s,a \right )
Q(s,a)是平均动作价值,
P
(
s
,
a
)
P\left ( s,a \right )
P(s,a)是选择这条边的先验概率。MCTS每次迭代包含以下三个步骤:
1.Select
从根节点
S
0
S_{0}
S0出发,到叶子节点
S
L
S_{L}
SL结束,在
t
<
L
t<L
t<L的节点,动作的选择(边的选择)依据边上的统计数据,
a
t
=
a
r
g
m
a
x
a
(
Q
(
s
t
,
a
)
+
U
(
s
t
,
a
)
)
a_{t} = \underset{a}{argmax}\left ( Q\left ( s_{t},a \right )+U\left ( s_{t},a \right )\right )
at=aargmax(Q(st,a)+U(st,a))其中
其中
c
p
u
c
t
c_{puct}
cpuct是一个决定探索(exploration)的常数,MCTS迭代前期倾向于选择先验概率高而访问次数少的边,后期倾向于选择动作价值高的边。
2.Expand and evaluate
将叶子节点
S
L
S_{L}
SL输入到估值网络中,
(
d
i
(
p
)
,
v
)
=
(
f
θ
(
d
i
(
s
L
)
)
)
\left ( d_{i} \left ( p \right ),v\right )=\left ( f_{\theta }\left ( d_{i} \left (s_{L}\right ) \right )\right )
(di(p),v)=(fθ(di(sL))),其中
d
i
d_{i}
di是二面反射或旋转,
i
∈
[
1..8
]
i\in \left [ 1..8 \right ]
i∈[1..8]。
从叶子节点出发的边上的统计数据初始化为
{
N
(
s
L
,
a
)
=
0
,
W
(
s
L
,
a
)
=
0
,
Q
(
s
L
,
a
)
=
0
,
P
(
s
L
,
a
)
=
p
a
}
\left \{ N\left ( s_{L},a\right )=0, W\left ( s_{L},a \right )=0,Q\left ( s_{L},a \right )=0,P\left ( s_{L},a \right )=p_{a}\right \}
{N(sL,a)=0,W(sL,a)=0,Q(sL,a)=0,P(sL,a)=pa}。估值网络预测的
v
v
v值供下一步骤使用。
3.Backup
从叶子节点
S
L
S_{L}
SL到根节点
S
0
S_{0}
S0之间的边上的统计数据需要更新,
N
(
s
t
,
a
t
)
=
N
(
s
t
,
a
t
)
+
1
,
W
(
s
t
,
a
t
)
=
W
(
s
t
,
a
t
)
+
v
,
Q
(
s
t
,
a
t
)
=
W
(
s
t
,
a
t
)
N
(
s
t
,
a
t
)
N\left ( s_{t}, a_{t}\right )=N\left ( s_{t}, a_{t}\right )+1,W\left ( s_{t}, a_{t}\right )=W\left ( s_{t}, a_{t}\right )+v,Q\left ( s_{t}, a_{t}\right )=\frac{W\left ( s_{t}, a_{t}\right )}{N\left ( s_{t}, a_{t}\right )}
N(st,at)=N(st,at)+1,W(st,at)=W(st,at)+v,Q(st,at)=N(st,at)W(st,at)
其中的
v
v
v是下棋方的获胜可能性,
L
−
t
L-t
L−t如果是奇数,需要在
v
v
v前面加负号,因为对手获胜的可能性,对自己是相反的。
MCTS经过1600上述步骤次迭代后,得到了AlphaGo Zero在状态
s
0
s_{0}
s0下的走子策略。
预测阶段
面临状态S,AlphaGo Zero首先根据估值网络给出获胜的可能性和每个合法动作的先验概率,然后通过1600轮的MCTS迭代给出最终的走子策略。预测阶段的温度参数 τ \tau τ趋近于0,AlphaGo Zero会选择从搜索树根节点出发访问次数最多的边。
训练阶段
AlphaGo Zero从replay buffer(自身博弈记录)中采样数据进行训练,目标函数如下,其中估值网络的参数为
θ
\theta
θ,V和P是估值网络放回的结果,
z
z
z是游戏结果,
π
\pi
π是MCTS返回的结果。
训练阶段主要有四部分组成:
Replay buffer的数据结构是固定容量的FIFO队列,存储自我博弈的记录。每条记录包含该局围棋的最终结果,该局的每个动作(在哪落子or pass),MCTS在每个状态的返回结果。
Self-play(自身博弈)是使用训练阶段表现最好的版本,进行自身博弈。博弈的过程和结果会送到replay buffer。每局的前30步,温度参数设置为1,以后温度参数会逐渐衰减。 AlphaGo Zero的下棋策略会根据MCTS返回的结果进行采样。并且根节点的先验概率会加入狄利克雷分布作为噪音,鼓励探(exploration)。
Optimisation(模型优化) 从replay buffer中采样数据作为训练数据,每1000个step保存一次checkpoint。
Evaluator(评估器)使用最新的checkpoint与目前最强的AlphaGo Zero进行博弈,走子策略与预测阶段相同。进行400局博弈,胜率超过55%,则最新的参数替换目前最强的。使用最新的参数进行self-play,产生训练数据。
数据集
采用ELO等级分来衡量各个版本的实力,AlphaGo Zero超越了以前的版本。Raw Network是未采用MCTS进行策略提升的版本,直接选取AlphaGo Zero估值网络结果的最大概率作为走子结果,可见MCTS起到很大的策略提升作用。
结论
AlphaGo Zero在完全信息零和博弈游戏中取得了突破,期待强化学习在DOTA2中取得突破性进展。