【强化学习】MCTS: 蒙特卡洛树搜索

  • Monte-Carle 树搜索是一种前向搜索(Forward Search)
    【强化学习】MCTS: 蒙特卡洛树搜索

  • 用的是基于采样的模型
    【强化学习】MCTS: 蒙特卡洛树搜索

【强化学习】MCTS: 蒙特卡洛树搜索

可以先看一下下文中的一个例子,mini-max搜索是一种传统的博弈树算法,在国际象棋中获得了比较好的应用。

但是需要遍历整个游戏树,对于棋格数多许多的围棋,构建完整的游戏树代价是十分昂贵的。

28 天自制你的 AlphaGo (6) : 蒙特卡洛树搜索(MCTS)基础

【强化学习】MCTS: 蒙特卡洛树搜索

【强化学习】MCTS: 蒙特卡洛树搜索

【强化学习】MCTS: 蒙特卡洛树搜索
【强化学习】MCTS: 蒙特卡洛树搜索

  • 选择 Selection:从根节点 R 开始,递归选择最优的子节点(后面会解释)直到达到叶子节点 L。
  • 扩展 Expansion:如果 L 不是一个终止节点(也就是,不会导致博弈游戏终止)那么就创建一个或者更多的字子节点,选择其中一个 C。
  • 模拟 Simulation:从 C 开始运行一个模拟的输出,直到博弈游戏结束。
  • 反向传播 Backpropagation:用模拟的结果输出更新当前行动序列。

【强化学习】MCTS: 蒙特卡洛树搜索

【强化学习】MCTS: 蒙特卡洛树搜索

  • 反向传播
    反向传播是从叶结点(simulation 开始的那个节点)到根结点。在这条路径上所有的节点统计信息都会被计算更新。

【强化学习】MCTS: 蒙特卡洛树搜索

【强化学习】MCTS: 蒙特卡洛树搜索
【强化学习】MCTS: 蒙特卡洛树搜索
可以看蒙特卡罗树搜索 Monte Carlo Tree Search_John Levine的例子来对应上述的流程图:

第一轮迭代:
【强化学习】MCTS: 蒙特卡洛树搜索
第二轮迭代:
【强化学习】MCTS: 蒙特卡洛树搜索

第三轮迭代:
【强化学习】MCTS: 蒙特卡洛树搜索

  • MCTS的终止

取决于你什么时候想让他停止,比如说你可以设定一个时间,比如五秒后停止计算。

一般来说最佳走法就是具有最高访问次数的节点,这点可能稍微有点反直觉。这样评估的原因是因为蒙特卡洛树搜索算法的核心就是,越优秀的节点,越有可能走,反过来就是,走得越多的节点,越优秀。

【强化学习】MCTS: 蒙特卡洛树搜索

【强化学习】MCTS: 蒙特卡洛树搜索

参考资料:
【详细原理】蒙特卡洛树搜索入门教程!
Monte Carlo Tree Search – beginners guide

蒙特卡洛树搜索最通俗入门指南
28 天自制你的 AlphaGo (6) : 蒙特卡洛树搜索(MCTS)基础
蒙特卡洛树搜索 MCTS 入门
机器学习 alphaGo — monte carlo search tree(1)