Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >蒙特卡洛树搜索 Monte Carlo Tree Search

蒙特卡洛树搜索 Monte Carlo Tree Search

作者头像
用户1107453
发布于 2018-06-21 08:06:23
发布于 2018-06-21 08:06:23
4.1K0
举报
文章被收录于专栏:UAI人工智能UAI人工智能

什么是 MCTS?

全称 Monte Carlo Tree Search,是一种人工智能问题中做出最优决策的方法,一般是在组合博弈中的行动(move)规划形式。它结合了随机模拟的一般性和树搜索的准确性。

MCTS 受到快速关注主要是由计算机围棋程序的成功以及其潜在的在众多难题上的应用所致。超越博弈游戏本身,MCTS 理论上可以被用在以 {状态 state,行动 action} 对定义和用模拟进行预测输出结果的任何领域。


基本算法

基本的 MCTS 算法非常简单:根据模拟的输出结果,按照节点构造搜索树。其过程可以分为下面的若干步:

搜索树的构建过程

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

参看Tutorial 了解关于这个过程更多的信息。

每个节点并需包含两个重要的信息:一个是根据模拟结果估计的值和该节点已经被访问的次数。

按照最为简单和最节约内存的实现,MCTS 将在每个迭代过程中增加一个子节点。不过,要注意其实根据不同的应用这里也可以在每个迭代过程中增加超过一个子节点。


节点选择

Bandits 和 UCB

在树向下遍历时的节点选择通过选择最大化某个量来实现,这其实类似于 Multiarmed bandit problem,其中的参与者必须选择一个 slot machine(bandit)来最大化每一轮的估计的收益。我们可以使用 Upper Confidence Bounds(UCB)公式常常被用来计算这个:

其中 v_i 是节点估计的值,n_i 是节点被访问的次数,而 N 则是其父节点已经被访问的总次数。C 是可调整参数。

Exploitation 和 Exploration

UCB 公式对已知收益的 exploitation 和鼓励接触那些相对未曾访问的节点的 exploration 进行平衡。收益估计基于随机模拟,所以节点必须被访问若干次来缺包估计变得更加可信;MCTS 估计会在搜索的开始不大可靠,而最终会在给定充分的时间后收敛到更加可靠的估计上,在无限时间下能够达到最优估计。

MCTS 和 UCT

Kocsis 和 Szepervari 在 2006 年首先构建了一个完备的 MCTS 算法,通过扩展 UCB 到 minimax 树搜索,并将其命名为 Upper Confidence Bounds for Trees(UCT)方法。这其实是用在当前众多 MCTS 实现中的算法版本。

UCT 可以被描述为 MCTS 的一个特例:UCT = MCTS + UCB。


优点

MCTS 提供了比传统树搜索更好的方法。

Aheuristic

MCTS 不要求任何关于给定的领域策略或者具体实践知识来做出合理的决策。这个算法可以在没有任何关于博弈游戏除基本规则外的知识的情况下进行有效工作;这意味着一个简单的 MCTS 实现可以重用在很多的博弈游戏中,只需要进行微小的调整,所以这也使得 MCTS 是对于一般的博弈游戏的很好的方法。

Asymmetric

MCTS 执行一种非对称的树的适应搜索空间拓扑结构的增长。这个算法会更频繁地访问更加有趣的节点,并聚焦其搜索时间在更加相关的树的部分。

非对称的增长

这使得 MCTS 更加适合那些有着更大的分支因子的博弈游戏,比如说 19X19 的围棋。这么大的组合空间会给标准的基于深度或者宽度的搜索方法带来问题,所以 MCTS 的适应性说明它(最终)可以找到那些更加优化的行动,并将搜索的工作聚焦在这些部分。

任何时间

算法可以在任何时间终止,并返回当前最有的估计。当前构造出来的搜索树可以被丢弃或者供后续重用。

缺点

MCTS 有很少的缺点,不过这些缺点也可能是非常关键的影响因素。

行为能力

MCTS 算法,根据其基本形式,在某些甚至不是很大的博弈游戏中在可承受的时间内也不能够找到最好的行动方式。这基本上是由于组合步的空间的全部大小所致,关键节点并不能够访问足够多的次数来给出合理的估计。

速度

MCTS 搜索可能需要足够多的迭代才能收敛到一个很好的解上,这也是更加一般的难以优化的应用上的问题。例如,最佳的围棋程序可能需要百万次的交战和领域最佳和强化才能得到专家级的行动方案,而最有的 GGP 实现对更加复杂的博弈游戏可能也就只要每秒钟数十次(领域无关的)交战。对可承受的行动时间,这样的 GGP 可能很少有时间访问到每个合理的行动,所以这样的情形也不大可能出现表现非常好的搜索。

幸运的是,算法的性能可以通过一些技术显著提升。


提升

很多种 MCTS 强化的技术已经出现了。这些基本上可以归纳为领域知识或者领域独立两大类。

领域知识

特定博弈游戏的领域知识可以用在树上来过滤掉不合理的行动或者在模拟过程中产生重要的对局(更接近人类对手的表现)。这意味着交战结果将会更加的现实而不是随机的模拟,所以节点只需要少量的迭代就能给出一个现实的收益值。

领域知识可以产生巨大的性能提升,但在速度和一般性上也会有一定的损失。

领域独立

领域独立强化能够应用到所有的问题领域中。这些一般用在树种(如 AMAF),还有一些用在模拟(如 在交战时倾向于胜利的行动)。领域独立强化并不和特定的领域绑定,具有一般性,这也是当前研究的重心所在。


背景和历史

1928:John von Neumann 的 minimax 定理给出了关于对手树搜索的方法,这形成了计算机科学和人工智能的从诞生至今的决策制定基础。 1940s:Monte Carlo 方法形成,作为一种通过随机采样解决不太适合树搜索解决的弱良定义问题的方法。 2006:Rémi Coulomb 和其他研究者组合了上面两种想法给出了一个新的围棋程序中行动规划的观点——MCTS。Kocsis 和 Szepesvári 将此观点形式化进 UCT 算法。


研究兴趣

从 MCTS 诞生后几年内,就有超过 150 篇与 MCTS 相关的研究论文发布,平均下来是每两周一篇新的文章。这些文章中包含了大概 50 个推荐的变体、强化和优化,这和传统树搜索自其 1928 年诞生开始的加强的数量也差不太多。

这个新的研究领域当前是 AI 中非常热的研究话题,有很多的开放的研究问题有待发掘和解决。


MCTS: 最新成果

Imperial College London held the first international MCTS workshop in August 2010 on the theme of MCTS: State of the Art. Speakers included: O. Teytaud, "State of the Art: What is MCTS, where is it now, and where is it going?” 2010 [Online]. Available: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

https://jeffbradberry.com/posts/2015/09/intro-to-monte-carlo-tree-search/ https://jeffbradberry.com/tag/alphago/ http://lamda.nju.edu.cn/yuy/(S(o2npwm55cfhx2yinvnpmnczl))/course_ai16.ashx http://lamda.nju.edu.cn/yuy/(S(o2npwm55cfhx2yinvnpmnczl))/GetFile.aspx?File=course_ai16/Lecture5.pdf http://www.cameronius.com/cv/mcts-survey-master.pdf

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-09-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 UAI人工智能 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【python】蒙特卡洛树搜索(MCTS)简单实现
选择 Selection:从根节点 R 开始,递归选择最优的子节点(后面会解释)直到达到叶子节点 L。 扩展 Expansion:如果 L 不是一个终止节点(也就是,不会导致博弈游戏终止)那么就创建一个或者更多的字子节点,选择其中一个 C。 模拟 Simulation:从 C 开始运行一个模拟的输出,直到博弈游戏结束。 反向传播 Backpropagation:用模拟的结果输出更新当前行动序列。
全栈程序员站长
2022/07/21
2.7K0
【python】蒙特卡洛树搜索(MCTS)简单实现
MCTS (Monte Carlo Tree Search)[通俗易懂]
在前面的学习中,我们分析了蒙特卡洛方法,本章节将为大家解开蒙特卡洛树搜索的“面纱”。虽然它们的名字很接近,但大家需要注意的是这两者却有着本质区别。
全栈程序员站长
2022/06/28
5.8K0
MCTS (Monte Carlo Tree Search)[通俗易懂]
AlphaGo的制胜秘诀:蒙特卡洛树搜索初学者指南
2018 区块链技术及应用峰会(BTA)·中国 倒计时 3 天 2018,想要follow最火的区块链技术?你还差一场严谨纯粹的技术交流会——2018区块链技术及应用峰会(BTA)·中国将于2018年3月30-31日登陆北京喜来登长城饭店。追求专业性?你要的这里全都有:当超强嘉宾阵容遇上业界同好的脑洞大联欢,1+1=无限可能,目前门票预购火热进行中。 活动详情: http://dwz.cn/7FI1Ch 编译 | reason_W 出品 | 人工智能头条(公众号ID:AI_Thinker) 长久以来,计算
用户1737318
2018/06/05
1.4K0
AlphaGo背后的力量:蒙特卡洛树搜索入门指南
选自int8 Blog 机器之心编译 我们都知道 DeepMind 的围棋程序 AlphaGo,以及它超越人类的强大能力,也经常会听到「蒙特卡洛树搜索」这个概念。事实上,蒙特卡洛树搜索是在完美信息博弈场景中进行决策的一种通用技术,除游戏之外,它还在很多现实世界的应用中有着广阔前景。本文中,我们会以 AlphaGo 为例子,对这一方法进行详细介绍。 长久以来,学术世界一直认为计算机在围棋这个复杂游戏上达到超越人类的水平是几乎无法实现的。它被视为人工智能的「圣杯」——一个我们原本希望在未来十年挑战的遥远里程碑。
机器之心
2018/05/08
1.6K0
AlphaGo背后的力量:蒙特卡洛树搜索入门指南
独家 | 专访AAAI 2018最佳论文作者,记忆增强蒙特卡洛树搜索细节解读
机器之心原创 作者:李泽南 AAAI 2018 大会已于 2 月 2 日在美国新奥尔良开幕。在此之前,大会获奖论文的结果已经放出,阿尔伯塔大学提交的论文《Memory-Augmented Monte Carlo Tree Search》获得了 AAAI 2018 大会的杰出论文奖。该论文作者分别为博士生 Chenjun Xiao、梅劲骋与教授 Martin Müller。 Chenjun Xiao 硕士与博士阶段均就读于阿尔伯塔大学,师从 Martin Müller 教授。 梅劲骋本科毕业于华南理工大学,研
机器之心
2018/05/10
8160
基于蒙特卡洛猜牌-极大极小搜索-alpha-beta剪枝-AI斗地主
全称 Monte Carlo Tree Search(MCTS),是一种人工智能问题中做出最优决策的方法,一般是在组合博弈中的行动(move)规划形式。它结合了随机模拟的一般性和树搜索的准确性。MCTS 受到快速关注主要是由计算机围棋程序的成功以及其潜在的在众多难题上的应用所致。超越博弈游戏本身,MCTS 理论上可以被用在以 {状态 state,行动 action} 对定义和用模拟进行预测输出结果的任何领域。
计算机程序优异哥
2022/12/02
5920
专栏 | 蒙特卡洛树搜索在黑盒优化和神经网络结构搜索中的应用
现实世界的大多数系统是没有办法给出一个确切的函数定义,比如机器学习模型中的调参,大规模数据中心的冷藏策略等问题。这类问题统统被定义为黑盒优化。黑盒优化是在没办法求解梯度的情况下,通过观察输入和输出,去猜测优化变量的最优解。在过去的几十年发展中,遗传算法和贝叶斯优化一直是黑盒优化最热门的方法。不同于主流算法,本文介绍一个基于蒙特卡洛树搜索(MCTS)的全新黑盒优化算法,隐动作集蒙特卡洛树搜索 (LA-MCTS)。LA-MCTS 发表在 2020 年的 NeurIPS,仅仅在文章公开几个月后,就被来自俄罗斯 JetBrains 和韩国的 KAIST 的队伍独立复现,并用来参加 2020 年 NeurIPS 的黑盒优化挑战,分别取得了第三名和第八名的好成绩 [10][11]。
机器之心
2021/01/20
1.5K0
蒙特卡洛树-AI快速进阶系列
我们将通过在Java 中实现井字游戏来详细研究它的阶段。我们将设计一个通用解决方案,该解决方案可用于许多其他实际应用,只需进行最少的更改。
jack.yang
2025/04/05
1440
蒙特卡洛树-AI快速进阶系列
蒙特卡罗树搜索:暴力穷举
​推荐文章:深入探索MyBatis-Plus:高效实现字段模糊查询的秘诀-腾讯云开发者社区-腾讯云
zhangjiqun
2024/11/18
990
强化学习系列(十一)--探索蒙特卡洛树搜索(MCTS)及其在大语言模型中的应用
文章从环境搭建、代码实现到数据展示与分析,完整实现了一个微博热搜爬取项目。项目不仅可以作为学习爬虫的入门案例,还可扩展为更复杂的热点分析系统。
languageX
2024/12/06
4.1K0
强化学习系列(十一)--探索蒙特卡洛树搜索(MCTS)及其在大语言模型中的应用
【一文读懂AlphaGo Zero算法】白话蒙特卡洛树搜索和ResNet
【新智元导读】AlphaGo Zero 令人惊艳。不过,有些评论似乎渲染过度,把它的算法说得神乎其神。大数医达创始人,CMU计算机学院暨机器人研究所博士邓侃在本文中,尝试用大白话,通俗地解释 AlphaGo Zero,弄清楚蒙特卡洛树搜索(Monte Carlo Tree Search,MCTS)、深度学习启发函数和置信上限这三大核心概念。 AlphaGo Zero 引起巨大社会轰动 只告诉机器围棋的基本规则,但是不告诉它人类摸索了上千年才总结出来的定式等围棋战术,让机器完全依靠自学,打败人类。这个题目不
新智元
2018/03/21
2.3K0
【一文读懂AlphaGo Zero算法】白话蒙特卡洛树搜索和ResNet
强化学习(十八) 基于模拟的搜索与蒙特卡罗树搜索(MCTS)
    在强化学习(十七) 基于模型的强化学习与Dyna算法框架中,我们讨论基于模型的强化学习方法的基本思路,以及集合基于模型与不基于模型的强化学习框架Dyna。本文我们讨论另一种非常流行的集合基于模型与不基于模型的强化学习方法:基于模拟的搜索(Simulation Based Search)。
刘建平Pinard
2019/03/15
1.4K0
逆合成规划结合经验引导的蒙特卡洛树搜索
今天为大家介绍的是来自Hankz Hankui Zhuo的一篇关于反向合成规划的论文。在反向合成规划中,使用简单的基元合成复杂分子存在大量可能的路径。即使是经验丰富的化学家在选择最有前景的转化路线时也经常遇到困难。目前的方法依赖于人工定义的或经过机器训练的评分函数,这些评分函数在化学知识方面具有限制,或者使用昂贵的估计方法进行引导。在这里,作者提出了一种经验引导的蒙特卡洛树搜索(EG-MCTS)来解决这个问题。作者建立了一个经验引导网络来在搜索过程中从合成经验中学习知识,而不是使用随机搜索。
DrugAI
2023/09/19
3810
逆合成规划结合经验引导的蒙特卡洛树搜索
蒙特卡洛树搜索是什么?如何将其用于规划星际飞行?
选自kdnuggets 作者:Mateusz Wyszyński 机器之心编译 参与:Panda 本文解读了蒙特卡洛树搜索算法背后的概念,并用一个案例说明了欧洲航天局使用该算法来规划星际飞行的方法。 前段时间,我们见证了游戏人工智能领域历史上最重大的事件——AlphaGo 成为了第一个在围棋上战胜世界冠军的计算机程序,其相关论文参阅:https://www.nature.com/articles/nature24270。 DeepMind 的开发者将来自机器学习和树搜索的不同技术结合到一起而实现了这一结果。
企鹅号小编
2018/01/11
1K0
蒙特卡洛树搜索是什么?如何将其用于规划星际飞行?
入门 | 蒙特卡洛树搜索是什么?如何将其用于规划星际飞行?
选自kdnuggets 作者:Mateusz Wyszyński 机器之心编译 参与:Panda 本文解读了蒙特卡洛树搜索算法背后的概念,并用一个案例说明了欧洲航天局使用该算法来规划星际飞行的方法。 前段时间,我们见证了游戏人工智能领域历史上最重大的事件——AlphaGo 成为了第一个在围棋上战胜世界冠军的计算机程序,其相关论文参阅:https://www.nature.com/articles/nature24270。 DeepMind 的开发者将来自机器学习和树搜索的不同技术结合到一起而实现了这一结果。
机器之心
2018/05/11
7120
强化学习读书笔记(5)|蒙特卡洛方法(Monte Carlo Methods)
前面两章都假设我们已知MDP的分布p(s'r|s,a)(model),但有时这一点难以做到,或者说这种Markov假设可能是不合理的,那么我们只能从真实/模拟环境中去获取这些知识。蒙特卡洛方法只需要经验知识,即:来自线上或者模拟环境交互过程的样本序列(包括状态序列、动作序列、奖励序列)。“蒙特卡洛”这个词被广泛用在利用大量随机元素作估计的地方。在这里我们用它来表示基于完全return平均值的方法。
用户1621951
2019/08/26
7130
强化学习读书笔记(5)|蒙特卡洛方法(Monte Carlo Methods)
并行蒙卡树搜索,性能无损,线性加速,勇闯「消消乐」1000关!
AAAI 2020 已经于 2月 7日 - 12 日在纽约举办,对于 AI 领域的研究者来讲,接下来最近的一个盛会将是4月26日在非洲埃塞俄比亚(亚斯亚贝巴)举办的 ICLR 2020。
AI科技评论
2020/02/24
1.7K0
并行蒙卡树搜索,性能无损,线性加速,勇闯「消消乐」1000关!
AlphaGo对战李世石谁能赢?两万字长文深挖围棋AI技术(一)
李理,出门问问NLP工程师 编者按:李世石与Google Deepmind AlphaGo对战在即,围棋界和人工智能界对结果各有预测,但对于程序员来说,了解AlphaGo的技术路线可能更有意思。本文来
新智元
2018/03/14
8500
AlphaGo对战李世石谁能赢?两万字长文深挖围棋AI技术(一)
组合游戏系列4: AlphaGo Zero 强化学习算法原理深度分析
AlphaGo Zero是Deepmind 最后一代AI围棋算法,因为已经达到了棋类游戏AI的终极目的:给定任何游戏规则,AI从零出发只通过自我对弈的方式提高,最终可以取得超越任何对手(包括顶级人类棋手和上一代AlphaGo)的能力。换种方式说,当给定足够多的时间和计算资源,可以取得无限逼近游戏真实解的能力。这一篇,我们深入分析AlphaGo Zero的设计理念和关键组件的细节并解释组件之间的关联。下一篇中,我们将在已有的N子棋OpenAI Gym 环境中用Pytorch实现一个简化版的AlphaGo Zero算法。
CreateAMind
2020/10/22
1.8K0
组合游戏系列4: AlphaGo Zero 强化学习算法原理深度分析
蒙特卡洛树搜索算法(UCT): 一个程序猿进化的故事
前言: 本文是根据的文章Introduction to Monte Carlo Tree Search by Jeff Bradberry所写。 Jeff Bradberry还提供了一整套的例子,用python写的。 board game server board game client Tic Tac Toe board AI implementation of Tic Tac Toe 阿袁工作的第一天 - 蒙特卡罗树搜索算法 - 游戏的通用接口board 和 player 阿袁看到阿静最近在学
绿巨人
2018/05/18
2.9K0
推荐阅读
相关推荐
【python】蒙特卡洛树搜索(MCTS)简单实现
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档