NATURE 2017 | 在没有人类知识的情况下掌握围棋

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,xt1,yt1,...,xt7,yt7,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下的走子策略。
AlphaGo Zero中的MCTS
搜索树的每个节点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 &lt; L t&lt;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 Lt如果是奇数,需要在 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中取得突破性进展。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值