什么是 MCTS? 全称 Monte Carlo Tree Search,是一种人工智能问题中做出最优决策的方法,一般是在组合博弈中的行动(move)规划形式。它结合了随机模拟的一般性和树搜索的准确性。 MCTS 受到快速关注主要是由计算机围棋程序的成功以及其潜在的在众多难题上的应用所致。超越博弈游戏本身,MCTS 理论上可以被用在以 {状态 state,行动 action} 对定义和用模拟进行预测输出结果的任何领域。 基本算法基本的 MCTS 算法非常简单:根据模拟的输出结果,按照节点构造搜索树。其过程可以分为下面的若干步: 搜索树的构建过程
- 选择 Selection:从根节点 R 开始,递归选择最优的子节点(后面会解释)直到达到叶子节点 L。
- 扩展 Expansion:如果 L 不是一个终止节点(也就是,不会导致博弈游戏终止)那么就创建一个或者更多的字子节点,选择其中一个 C。
- 模拟 Simulation:从 C 开始运行一个模拟的输出,直到博弈游戏结束。
- 反向传播 Backpropagation:用模拟的结果输出更新当前行动序列。
参看Tutorial了解关于这个过程更多的信息。 每个节点并需包含两个重要的信息:一个是根据模拟结果估计的值和该节点已经被访问的次数。 按照最为简单和最节约内存的实现,MCTS 将在每个迭代过程中增加一个子节点。不过,要注意其实根据不同的应用这里也可以在每个迭代过程中增加超过一个子节点。 节点选择Bandits 和 UCB在树向下遍历时的节点选择通过选择最大化某个量来实现,这其实类似于 Multiarmed bandit problem,其中的参与者必须选择一个 slot machine(bandit)来最大化每一轮的估计的收益。我们可以使用 Upper Confidence Bounds(UCB)公式常常被用来计算这个: 其中 v_i 是节点估计的值,n_i 是节点被访问的次数,而 N 则是其父节点已经被访问的总次数。C 是可调整参数。 Exploitation 和 ExplorationUCB 公式对已知收益的 exploitation 和鼓励接触那些相对未曾访问的节点的 exploration 进行平衡。收益估计基于随机模拟,所以节点必须被访问若干次来缺包估计变得更加可信;MCTS 估计会在搜索的开始不大可靠,而最终会在给定充分的时间后收敛到更加可靠的估计上,在无限时间下能够达到最优估计。 MCTS 和 UCTKocsis 和 Szepervari 在 2006 年首先构建了一个完备的 MCTS 算法,通过扩展 UCB 到 minimax 树搜索,并将其命名为 Upper Confidence Bounds for Trees(UCT)方法。这其实是用在当前众多 MCTS 实现中的算法版本。 UCT 可以被描述为 MCTS 的一个特例:UCT = MCTS + UCB。 优点MCTS 提供了比传统树搜索更好的方法。 AheuristicMCTS 不要求任何关于给定的领域策略或者具体实践知识来做出合理的决策。这个算法可以在没有任何关于博弈游戏除基本规则外的知识的情况下进行有效工作;这意味着一个简单的 MCTS 实现可以重用在很多的博弈游戏中,只需要进行微小的调整,所以这也使得 MCTS 是对于一般的博弈游戏的很好的方法。 AsymmetricMCTS 执行一种非对称的树的适应搜索空间拓扑结构的增长。这个算**更频繁地访问更加有趣的节点,并聚焦其搜索时间在更加相关的树的部分。 非对称的增长
这使得 MCTS 更加适合那些有着更大的分支因子的博弈游戏,比如说 19X19 的围棋。这么大的组合空间会给标准的基于深度或者宽度的搜索方法带来问题,所以 MCTS 的适应性说明它(最终)可以找到那些更加优化的行动,并将搜索的工作聚焦在这些部分。 任何时间算法可以在任何时间终止,并返回当前最有的估计。当前构造出来的搜索树可以被丢弃或者供后续重用。 简洁算法实现非常方便(参见http://www.aigamesnetwork.org/_media/main:events:london2010.pdf
M. Müller, “Challenges in Monte Carlo Tree Search,” 2010 [Online]. Available:http://www.aigamesnetwork.org/_media/main:events:london2010-mcts-challenges.pdf
R. Hayward, “MoHex: Computer Hex world champion,” 2010 [Online]. Available:http://www.aigamesnetwork.org/_media/main:events:mohextalk.pdf
H. Finnsson and Y. Björnsson, “CadiaPlayer: MCTS in General Game Playing,” 2010 [Online]. Available:http://www.aigamesnetwork.org/_media/main:events:cadiaplayer_lic_slides_print.pdf
A. Rimmel, “Havannah, Monte Carlo Enhancements and Linear Transforms,” 2010 [Online]. Available:http://www.aigamesnetwork.org/_media/main:events:presmctsworkshop_rimmel.pdf
|