从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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值