【强化学习】MCTS: 蒙特卡洛树搜索
-
Monte-Carle 树搜索是一种前向搜索(Forward Search)
-
用的是基于采样的模型
可以先看一下下文中的一个例子,mini-max搜索是一种传统的博弈树算法,在国际象棋中获得了比较好的应用。
但是需要遍历整个游戏树,对于棋格数多许多的围棋,构建完整的游戏树代价是十分昂贵的。
28 天自制你的 AlphaGo (6) : 蒙特卡洛树搜索(MCTS)基础
- 选择 Selection:从根节点 R 开始,递归选择最优的子节点(后面会解释)直到达到叶子节点 L。
- 扩展 Expansion:如果 L 不是一个终止节点(也就是,不会导致博弈游戏终止)那么就创建一个或者更多的字子节点,选择其中一个 C。
- 模拟 Simulation:从 C 开始运行一个模拟的输出,直到博弈游戏结束。
- 反向传播 Backpropagation:用模拟的结果输出更新当前行动序列。
- 反向传播
反向传播是从叶结点(simulation 开始的那个节点)到根结点。在这条路径上所有的节点统计信息都会被计算更新。
可以看蒙特卡罗树搜索 Monte Carlo Tree Search_John Levine的例子来对应上述的流程图:
第一轮迭代:
第二轮迭代:
第三轮迭代:
- MCTS的终止
取决于你什么时候想让他停止,比如说你可以设定一个时间,比如五秒后停止计算。
一般来说最佳走法就是具有最高访问次数的节点,这点可能稍微有点反直觉。这样评估的原因是因为蒙特卡洛树搜索算法的核心就是,越优秀的节点,越有可能走,反过来就是,走得越多的节点,越优秀。
参考资料:
【详细原理】蒙特卡洛树搜索入门教程!
Monte Carlo Tree Search – beginners guide
蒙特卡洛树搜索最通俗入门指南
28 天自制你的 AlphaGo (6) : 蒙特卡洛树搜索(MCTS)基础
蒙特卡洛树搜索 MCTS 入门
机器学习 alphaGo — monte carlo search tree(1)