AlphaGo Zero 模型框架
Intro
上一篇blog提到了Mento Carlo树搜索的一些基本概念和要点,在结尾也说道AlphaGo 和AlphaGo Zero在MCTS下使用了神经网络作为模拟策略.
本文主要说一说AlphaGo Zero如何将MCTS 组合起来的.
为了方便描述,需要强调的是,在MCTS树里面,每一个节点表示的是一个局面,即棋盘上所有已有的棋子的位置. 注意到下围棋是一个Markov 决策过程,当前的局面完全决定了下一步要怎么下,胜率(如果可以计算出来的话)是多少,而不用管这个局面是如何达到的.树的每一个边是当前局面下落子的位置.
价值网络
对于一个局面
其中
MCTS
MCTS过程由神经网络指导,具体来说,就是选举策略和模拟策略与神经网络相关.
self-paly
当有了一个确定的神经网络参数后, AlphaGo Zero开始自己与自己下棋
对于一个根节点s,每一条边(s,a)存储了访问次数
每次从根节点开始,选择
到达叶子节点后,扩展叶子节点,向上回溯,依次将路径上的边的访问次数加1,并且根据扩展的节点更新Q的值。
选举策略是具有启发性的,一方面,它选择的总是网络认为会达到最好子局面的路径,另一方面,访问次数作为分母,可以激励选举策略去寻找一些没有被访问过的点。
当进行到T步后,游戏结束.MCTS可以产生Markov决策过程中的一个决策
强化学习
围棋是天然适用于强化学习的一个过程, 最明显的一点是围棋agent很容易从环境中知道其策略的评价,即游戏的胜负.
强化学习这部分我学习的也不充分,可能不能很好的把这部分与强化学习的通用框架给结合起来,但是这一部分模型的具体过程还是可以略微的说一说的.
首先对于网络的迭代过程,我们把它记为i,我们把self-play 过程的指标记为t.设第i次网络迭代采用的是上一次迭代更新后的网络参数
训练目的是对参数新的网络参数. 注意到网络
这是一个多目标的优化问题,损失函数被如下定义
Ref
Mastering the game of Go without human knowledge