AlphaGo Zero 模型框架

来源:互联网 发布:python for 一行 编辑:程序博客网 时间:2024/06/05 08:59

Intro

上一篇blog提到了Mento Carlo树搜索的一些基本概念和要点,在结尾也说道AlphaGo 和AlphaGo Zero在MCTS下使用了神经网络作为模拟策略.
本文主要说一说AlphaGo Zero如何将MCTS 组合起来的.
为了方便描述,需要强调的是,在MCTS树里面,每一个节点表示的是一个局面,即棋盘上所有已有的棋子的位置. 注意到下围棋是一个Markov 决策过程,当前的局面完全决定了下一步要怎么下,胜率(如果可以计算出来的话)是多少,而不用管这个局面是如何达到的.树的每一个边是当前局面下落子的位置.

价值网络

对于一个局面s,有一个参数为θ的神经网络fθ

(p,v)=fθ(s)

其中 v 是当前局面神经网络给出的评估
p是当前局面下一步所有落子位置神经网络给出的概率,即所有的动作a,神经网络给出一个输出 Pr(a|s)

MCTS

MCTS过程由神经网络指导,具体来说,就是选举策略和模拟策略与神经网络相关.

self-paly

当有了一个确定的神经网络参数后, AlphaGo Zero开始自己与自己下棋
这里写图片描述
对于一个根节点s,每一条边(s,a)存储了访问次数N(s,a),访问概率P(s,a),以及一个action value Q(s,a),
每次从根节点开始,选择Q(s,a)+U(s,a)最大的路径直到叶子节点s.其中U是置信上界,定义为 U(s,a)P(s,a)/(N(s,a)+1),Q(s,a)是搜索算法对局面的评估Q(s,a)=1/N(s,a)s|s,asV(s), s,as表示s可以通过合法的行动a到达叶子节点s
到达叶子节点后,扩展叶子节点,向上回溯,依次将路径上的边的访问次数加1,并且根据扩展的节点更新Q的值。
选举策略是具有启发性的,一方面,它选择的总是网络认为会达到最好子局面的路径,另一方面,访问次数作为分母,可以激励选举策略去寻找一些没有被访问过的点。
P(s,a),V(s)均为神经网络的输出.
当进行到T步后,游戏结束.MCTS可以产生Markov决策过程中的一个决策π,用一个形式化的写法就是π(s)=αθ(s), θ是网络的参数,而要求的是在每个状态产生的决策和MCTS边的访问次数相关.π(a)N(s,a)1τ
这里写图片描述

强化学习

围棋是天然适用于强化学习的一个过程, 最明显的一点是围棋agent很容易从环境中知道其策略的评价,即游戏的胜负.
强化学习这部分我学习的也不充分,可能不能很好的把这部分与强化学习的通用框架给结合起来,但是这一部分模型的具体过程还是可以略微的说一说的.
这里写图片描述

首先对于网络的迭代过程,我们把它记为i,我们把self-play 过程的指标记为t.设第i次网络迭代采用的是上一次迭代更新后的网络参数θi1,MCTS产生了一个策略,对每一次落子t,πt=αθi1(st),当达到最大落子次数后,游戏结束,得到收益γT{1,+1}. 我们回过头来看每一步t,它可以被看成这样一个三元组(st,πt,zt),其中zt=±γ.即对胜的一方的每一步决策都为1而负的一方为-1.
训练目的是对参数新的网络参数. 注意到网络(p,v)=fθ(s),而上述的三元组作为这个网络的监督.
这是一个多目标的优化问题,损失函数被如下定义

l=(zv)2πTlog(p)+||θ||2

Ref

Mastering the game of Go without human knowledge

原创粉丝点击