推广 热搜: page  关键词  红书  哪些  数据分析  链接  搜索  获取  小红  服务 

蒙特卡洛树搜索(MCTS)日记1

   日期:2024-12-17     作者:jki3h    caijiyuan   评论:0    移动:https://sicmodule.kub2b.com/mobile/news/8807.html
核心提示:        自2006年两篇MCTS论文的发布[1,2],人们认识到MCTS在棋类博弈游戏的巨大前景。特别是2016年谷歌推出的AlphaGo

        自2006年两篇MCTS论文的发布[1,2],人们认识到MCTS在棋类博弈游戏的巨大前景。特别是2016年谷歌推出的AlphaGo击败世界冠军李世石,引发人们对ai的巨大热情。而AlphaGo是采用了神经学习与MCTS结合的框架,造就了这个产物。

        monte carlo tree search(MCTS)是将蒙特卡洛模拟与树搜索结合起来的算法,是应用于树表示的解空间中寻找决策的算法。MCTS的思路是

第一步,根据先验知识设定的价值评估函数(可能没有,选择出当前决策树还能拓展孩子的最大价值节点。初始化时,价值为0

第二步,为选出的最大节点添加一个孩子(这一步思路很简单,但如果你要写代码就知道多麻烦了

第三步,从该孩子表示的状态进行模拟推演直到游戏结束

第四步,将游戏输赢的信息反馈回孩子及其所有直系祖先。

此阶段需要根据价值公式选出最大节点,显然这个价值公式,是MCTS算法的关键。2006年kocisis等人根据UCB提出了UCT公式Upper Confidence Bound Apply To Tree,这一经典式子可以说是发展至今。严格的说,价值公式评估的是动作(边)而不是状态(节点,但对于不需要精通MCTS的人来说,动作和状态可以认为是一一对应的,即节点等同于边。接下来我会给出关于状态和动作的价值公式,初学者只需理解一个即可。

        其中,S(state)表示节点价值,表示该节点之前多次模拟的平均价值(比如可以是模拟赢的次数除以模拟次数,N是该节点的双亲节点的模拟次数,是该节点的模拟次数(刚拓展的节点初始为0,C是一个超参数起到调节探索和利用的作用。

        其中a表示动作,A(s)是在状态s下的所有可用动作的集合,Q(s,a)是动作a在状态s下运行至今的平均价值,N(s)是状态s至今的被访问次数,N(s,a)是动作a在状态s下的被访问次数。常数C控制探索和利用的平衡。

        上图节点里,分子表示赢的次数,分母表示模拟次数,箭头旁的是根据UCT求出的值,其中C取根号2。

        此阶段需要对选出的最大节点添加孩子,这要求选出的节点还可以添加孩子,即未完全拓展的节点。在一般的MCTS(不与其他方法结合)下添加孩子,只需从满足实际情况的多个动作中随机选一个即可。比如节点A可以拓展十个孩子,但目前只有一个,拓展A时只需从剩余9个随机选择即可。

        这个阶段可以说是MCTS的精髓,不论是MCTS与其他方法结合产生的威力,还是相比以前方法的突破,关键在于这个阶段。不妨将此阶段,MCTS模拟游戏进行的策略叫模拟策略(不是官方术语,最初的MCTS使用的模拟策略是服从均匀分布的随机模拟。比如从节点A开始模拟,节点的可能策略有a,b,c。那么节点A选择a的概率是三分之一,选择a后生成的新节点选择a的概率也是三分之一。模拟过程的每个节点都采用统一的模拟策略——选择a/b/c的概率都是三分之一。

        最后根据模拟对局的胜负判断节点A的好坏,这种根据多次随机试验逼近现实的思想即蒙特卡洛思想,起源于统计物理学,用来估计难以计算的积分。接下来,我会提出我仍在思考的问题抛砖引玉

        1. 如果决策树的宽度是较大的(一个节点可以有很多孩子,那么均匀的从多个孩子做出选择,是否浪费了时间在一些坏的动作上?由此引发的思考是,模拟策略可不可以动态调整,或者根据先验知识,建立一个不均匀的概率分布来加快模拟效率

        2. 如果决策树的深度很大,是否每次模拟都要进行到树的叶子才能算完成呢?如果加入了时间或者深度限制,那么如何评估此次模拟的“胜负”?比如模拟围棋,模拟到分出胜负的前几步,此时用什么指标表示此次模拟的胜负;如果模拟必须要分出胜负,有没有加快模拟的方法,或者说减少内存消耗的方法?毕竟模拟深度很大的话,对内存来说也是一个挑战。

        根据模拟信息,将相应评价传回开始模拟的节点,及其所有直系祖先(他父亲,他爷爷,他太爷爷等)。比如模拟对局赢了,就把表示赢的数据传回去。设节点A模拟了10次,赢了6次,那么节点A的信息里有模拟次数:10,胜场:6,平均价值:0.6(设平均价值=胜场除以总场数)。

        虽然MCTS的使用至今已经近二十年了,但由于理论上没有做到定性定量的分析MCTS。目前MCTS还没有官方的、权威的定义和相关术语,之前所讨论到的也只是MCTS体系里最经典、最早的一种。它相比于已经定义了的方法来说,更像是一种技巧,利用随机试验近似目标的技巧。MCTS的四阶段也不总是泾渭分明,所以,如果你在学习MCTS时也感到有些困惑,不必担心。另外,MCTS后续会有一个更出名的使用技巧,即与神经网络的结合(AlphaGo)。日记2我会谈论,MCST的新伙伴以及新的前景。

你可能感兴趣的文献

        [1] 朱良双,王静文,李媛.基于UCT搜索算法的点格棋博弈系统研究[J].智能计算机与应用,2021,11(02):129-131.

        下文的第三章

        Sylvain Gelly, Levente Kocsis,. The grand challenge of computer Go: Monte Carlo tree search and extensions. Commun. ACM 55, 3 (March 2012), 106–113. https://doi.org/10.1145/2093548.2093574 

参考文献

        1. Kocsis, L., Szepesvári, C. (2006). Bandit based Monte-Carlo Planning.  https://doi.org/10.1007/11871842_29

        2. Rémi Coulom. Efficient Selectivity and Backup Operators in Monte-Carlo Tree Search. 5th International Conference on Computer and Games, May 2006, Turin, Italy. ffinria-00116992f

        3. 蒙特卡洛树搜索(Monte Carlo Tree Search)揭秘-CSDN博客 https://blog.csdn.net/fearlesslpp/article/details/134342648

本文地址:https://sicmodule.kub2b.com/news/8807.html     企库往 https://sicmodule.kub2b.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类最新资讯
0相关评论

文章列表
相关文章
最新动态
推荐图文
最新资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号