从AlphaGo 看 Monte Carlo Tree Search

1 Markov 决策过程

1.1 Markov 过程

简单介绍离散时间有限状态的Markov过程
一个离散时间有限状态随机过程可以表示为一个三元组{T,S,P}
T:指标集,可以简单的看为时间点
S:状态集,所有可能出现的状态
P: S×S[0,1] 状态转移概率,表示从状态pij=P(sisj)
{X0,X1,X2,..,Xn,...} XnS,n>=0是其状态序列.
如果P(Xn|Xn1,Xn2,...,X0)=P(Xn|Xn1)即转移概率只与上一个状态有关
那么这个随机过程就被叫做Markov过程.
一般研究的情况还会要求这个Markov过程是时齐的.
P(Xt=si|Xt1=sj)=P(Xm=si|Xm1=sj)

1.2 Markov决策过程

Markov决策过程可以由一个五元组表示{T,S,A,P,R}
T:指标集,也可以看为时间
S:状态集
A:动作集,所有可能改变状态的动作
P : S×A×S[0,1], 指在状态si采取行动a转移到状态sj 下的概率
R : S×AR: 状态s下采取行动a的奖励,也有简单的模型奖励只与状态有关系.wikipedia上奖励函数也把下一个状态作为参数,即状态si下采取行动a到达状态sj的奖励
也有定义了阻尼系数γ
γ(0,1]: 状态的重要性随时间的衰减指数.

同样的,Markov 决策过程也要求Markov性,即要求转移概率只与上一个状态有关.
这里写图片描述

决策可以被定义为π:SA或则π:S×AkR即,根据状态s采取某个行动或则依概率采取一系列行动.

2 Mento Carlo评估

以围棋落子为例.
给定一个当前局面,算法在当前局面所有可能落点的位置随机选择一个点落子,并不断的重复这个过程直至游戏结束,以游戏结束时的胜负作为当前局势的评估.
在随机选点时,策略也可以被加入进来,这样可以计算到当前局面在当前策略下的评估.

3 Mento Carlo树搜索

Mento Carlo Tree Search分为4个部分
1. 选举:根据当前的信息以某种选择策略选择一个子节点
2. 扩展:当前信息不足时选择一个没有访问过的节点
3. 模拟:对扩展出来的节点进行模拟评估
4. 回溯: 向上更新节点的评估值

同样以围棋为例,当前状态确定时,棋手通常有k个点可以选择落子,这样就会造成k个局面作为当前局面的子节点. 对于这k个局面中的每个局面i, 记录了两个量(ni,wi)
ni是这个局面被访问的次数,wi是当前的这个局面的评估值.

  1. 如果第i个状态没有被访问过,那么将这个局面加入到搜索树上,计数ni的加一,并采用Mento Carlo评估,值为Δ,wi=wi+Δ(胜则为正,负则为负).向上回溯,将访问到的节点访问次数加一,并更新其增益.
  2. 如果局面i不是第一次出现,那么则以该局面为根节点,进行一次树构建.
    这里写图片描述

Mento Carlo树搜索是一个算法框架而非具体的算法,当你给出了具体的选举策略时,就有了具体的算法. Mento Carlo树搜索中非常著名的一个算法是UCT(置信上界树搜索)算法.有机会可以开一个blog再写一写

4 AlphaGo Zero 中的MCTS

这里写图片描述
上文中我们已经看到,对于Mento Carlo 树搜索来说,重要的有两个地方可以调整,一个是选举策略, 一个模拟策略. AlphaGo 中使用了价值网络和策略网络两个神经网络来,AlphaGo Zero则是将两个网络合二为一.因为本篇博客的内容是MCTS,就不对这部分细节进行探讨.

之后应该会更新一个AlphaGo和AlphaGo Zero的论文详解.

参考文献

https://en.wikipedia.org/wiki/Monte_Carlo_tree_search
https://en.wikipedia.org/wiki/Markov_decision_process
http://www.cnblogs.com/steven-yang/p/5993205.html
https://wenku.baidu.com/view/bef2030919e8b8f67d1cb952.html

阅读更多
个人分类: 深度学习
想对作者说点什么? 我来说一句

一篇讲蒙特卡罗树搜索的文档

2017年08月04日 2.78MB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭