【论文】A Survey of Monte Carlo Tree Search Methods阅读笔记

本文主要是将有关蒙特卡洛树搜索的文献(2011年之前)进行归纳,概述了核心算法的推导,给出了已经提出的许多变化和改进的一些结构,并总结了MCTS方法已经应用于的博弈和其他领域的结果。

蒙特卡洛树搜索是一种通过在决策空间中随机抽样,并根据结果建立搜索树,在给定域内寻找最优决策的方法,它平衡了探索(exploration)和利用(exploitation)。

一、背景

二、蒙特卡洛树搜索

蒙特卡洛树搜索基于两个基本概念:一个动作的真实值可以使用随机模拟来近似;这些值可以有效地调整策略为最佳优先策略。

基本算法包括迭代地构建一个搜索树,直到达到一些预定义的计算预算——通常是时间、内存或迭代约束——此时搜索停止,并返回性能最好的根操作。搜索树中的每个节点表示域的一个状态,指向子节点的定向链接表示导致后续状态的操作。

每次搜索迭代都将应用四个步骤:

  • 选择(selection):从根节点开始,递归地应用子选择策略通过树向下移动,直到到达最紧急的可扩展节点。如果节点表示非终端状态并且有未访问(即未扩展)子节点,则节点是可扩展的。
  • 扩展(expansion):根据可用的操作,添加一个(或多个)子节点以展开树。
  • 模拟(simulation):根据默认策略,从新节点开始运行模拟,以产生结果。
  • 反向传播(backpropagated):模拟结果通过选定的节点进行“备份”(即反向传播),以更新其统计信息。

这些步骤可以分为两种不同的策略:

  • 树策略(tree policy):从已包含在搜索树中的节点中选择或创建一个叶节点(选择和扩展)
  • 默认策略(default policy):从给定的非终端状态发挥域,已产生值估计(模拟)

Upper Confidence Bounds for Trees (UCT) 

UCB1是解决MCTS中的探索-利用困境的一个很有前途的候选对象:每当在现有的树中选择一个节点(动作)时,该选择都可以被建模为一个独立的多武装强盗问题(multiarmed bandit problem),一个子节点 j 被选择去最大化:

方程第一项是利用项,第二项是探索项,两项间有一个基本的平衡。当每个节点被访问时,探索项的分母增加,从而减少其贡献。另一方面,如果访问了父节点的另一个子节点,那么分子就会增加,因此未访问的兄弟节点的探索值也会增加。探索项确保每个子节点都有一个非零的选择概率,这是必要的随机性质。这也赋予了算法一个固有的重启属性,因为即使是低奖励的子节点最终也能保证被选择(如果给定足够的时间),从而探索了不同的游戏路线。

参数可以进行调整以降低或增加探索的概率。一般取,因为这个值能以范围为[0,1]的奖励满足Hoeffding ineqality。其他范围的奖励则需要不同的

算法3展示了一种更有效的双人零和博弈交替移动的备份方法。

 三、特点

1)启发式:MCTS最重要的好处之一就是缺乏对特定领域的知识的需求,这使得它很容易适用于任何可以使用树建模的领域 。

2)任何时间:MCTS立即反向传播每个游戏的结果,确保在算法的每次迭代后所有值都是最新的,这允许算法在任何时候从根目录返回一个操作。

3)不对称:树的选择允许算法偏爱更有前途的节点(但不允许其他节点的选择概率收敛到零),导致随着时间的推移出现不对称的树,也就是说,部分树的构建倾向于更有前途,即更重要的区域。

四、变化

传统的游戏AI研究集中于有两个玩家的零和游戏、交替回合、离散动作空间、确定性状态转换和完美信息。虽然MCTS已经广泛应用于此类游戏,但它也被应用于其他领域类型,如单人游戏和规划问题、多人游戏、实时游戏以及具有不确定性或同时移动的游戏。本节描述了MCTS适应这些领域的方法,以及那些采用来自MCTS的想法而不严格遵守其大纲的算法。

(我只选择部分可能与课题相关的算法进行学习)

1.Learning in MCTS

MCTS可以被看作是一种强化学习算法,因此考虑它与时间差异学习(典型的RL算法)之间的关系。

时间差异学习(TDL):时间差异学习(TDL)和MCTS都是学习基于状态或状态 - 行动对的值来采取行动的。在某些情况下,算法甚至可能是等价的,但TDL算法通常不构建树,只有当所有状态值都可以直接存储在表中时,这种等价才成立。MCTS估计临时状态值,以决定下一步行动,而TDL学习每个状态的长期值,然后指导未来的行为。

时间差异与蒙特卡洛(TDMC):“一种新的方法使用获胜概率代替非终端位置的奖励”

Bandit-Based Active Learner (BAAL):用来解决在数据稀疏的应用程序中的小训练集的问题。

2.多人 MCTS

极大极小搜索的中心假设是搜索玩家寻求最大化他们的奖励,而对手则寻求最小化奖励。在双人零和游戏中,这相当于说每个玩家都寻求最大化自己的奖励;然而,在两个以上玩家的游戏中,这种等价性并不一定成立。

将MCTS应用于多人游戏的最简单的方法是采用这样的想法:每个节点存储一个奖励向量,并且选择过程寻求最大化使用奖励向量的适当成分计算出的UCB值。

 3.多代理MCTS

考虑拥有多个代理(即多个模拟策略)的影响,在这种情况下,不同的代理是通过给程序中使用的启发式分配不同的优先级来获得的。然而寻找具有正确属性的代理集(即那些增加游戏强度的代理)是需要计算的。

集成UCT:在该方法中,多个UCT实例独立运行,并将他们的根统计量组合起来得到最终结果。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/717610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis在中国火爆,为何MongoDB更受欢迎国外?

一、概念 Redis Redis(Remote Dictionary Server)是一个使用ANSI C编写的开源、支持网络、基于内存、分布式、可选持久性的键值对存储数据库。Redis是由Salvatore Sanfilippo于2009年启动开发的,首个版本于同年5月发布。 MongoDB MongoDB…

C++练手题

第 1 题 【 问答题 】 • 红与黑 有一间长方形的房子, 地上铺了红色、 黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上, 只能向相邻的黑色瓷砖移动。 请写一个程序, 计算你总共能够到达多少块黑色的瓷砖。 时间限制: 1000…

基于R语言地理加权回归、主成份分析、判别分析等空间异质性数据分析

在自然和社会科学领域有大量与地理或空间有关的数据,这一类数据一般具有严重的空间异质性,而通常的统计学方法并不能处理空间异质性,因而对此类型的数据无能为力。以地理加权回归为基础的一系列方法:经典地理加权回归,…

Linux相关小技巧《三》

需求: 前一段时间有收到这样的一个关于linux用户的权限相关的需求,在centos上给用户创建一个用SSH的密钥访问服务器,另给该用户添加到root权限组。记录下了步骤,分享给大家。 步骤: 添加root用户组: gr…

跳跃游戏问题(算法村第十七关黄金挑战)

跳跃游戏 55. 跳跃游戏 - 力扣(LeetCode) 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true &…

人工智能-零基础

机缘 扩充下知识栈,准备零基础开始 人工智能零基础 日常 日常水一下博客… 憧憬 努力成为一个会人工智能的程序员

软考笔记--构件与软件复用

构件也称为组件(component),是一个功能相对独立的具有可复用价值的软件单元。在面向对象的方法中,一个构件有一组对象组成,包含可一些协作的类的集成,它们协同工作来提供一种系统功能。可复用性是指系统和其…

138.乐理基础-等音、等音程的意义

上一个内容:137.乐理基础-协和音程、不协和音程 上一个内容里练习的答案: 等音、等音程的意义,首先在 19.音阶 里写了,一个调使用的音阶应当是从主音快开始,以阶梯状的形式进行到主音结束,这样才能明显从乐…

在docker中运行 pip 报错 Can‘t start new thread

原因源头 stackoverflowhis is because the default seccomp profile of Docker 20.10.9 is not adjusted to support the clone() syscall wrapper of glibc 2.34 adopted in Ubuntu 21.10 and Fedora 35.由于docker 版本与最新版 python 容器冲突导致 解决方案 以下三种方…

b站小土堆pytorch学习记录—— P16 神经网络的基本骨架 nn.Module的使用

文章目录 一、前置知识1.nn是什么2.nn如何使用 二、代码 一、前置知识 1.nn是什么 在深度学习中,“nn” 通常是指神经网络(Neural Network)的缩写。神经网络是一种由大量神经元(neurons)相互连接而成的模型&#xff…

【Python】成功解决TypeError: list indices must be integers or slices, not float

【Python】成功解决TypeError: list indices must be integers or slices, not float 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&…

vue 打包配置

vue打包配置记录一下 publicPath: 打包的路径 默认值:/(根目录); 任意路径:""或者"./" (相对路径) 参照:Vue CLI4.0 webpack配置属性——publicPath_publicpath怎么写相对路径-CSDN…

springboot读取自定义配置

springboot读取自定义配置 application.yml自定义配置 my-app:ip1:#dmz1 ftp服务器ipAddress: 172.12.23.456port: 21username: adminpassword: adminip2:ipAddress: 172.12.23.457port: 21username: adminpassword: admin方式1,Value注解 Component public clas…

两天学会微服务网关Gateway-Gateway工作原理

锋哥原创的微服务网关Gateway视频教程: Gateway微服务网关视频教程(无废话版)_哔哩哔哩_bilibiliGateway微服务网关视频教程(无废话版)共计17条视频,包括:1_Gateway简介、2_Gateway工作原理、3…

【网站项目】144校园二手物品交易平台

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

FRM模型十四:FRA估值

什么是FRA FRA(Forward rate agrreement)远期利率协议,是一种场外衍生品。FRA在0时刻确定,在未来时刻进行交易的协议。例如FRA3,6表示双方约定在3个月后以Rk的利率水平借款3个月。 应用场景:某公司未来3个月有融资需…

XWPFTemplate:基于Apache POI的Word文档模板引擎

1. 前言 在Java领域中,处理Office文档是一项常见的需求,尤其是对于生成报告、合同或其他结构化文档。Apache POI是一个广泛使用的库,用于读写Microsoft Office格式文件(包括Word、Excel等)。然而,直接操作…

Kotlin 中编写静态方法的方式详解

在 Kotlin 中,与 Java 不同,没有 static 关键字来定义静态方法。但是 Kotlin 提供了一种类似的机制来实现静态方法。本文将介绍 Kotlin 中编写静态方法的两种方式,并给出 Kotlin 和 Java 中的调用示例代码。 方式一:使用顶层函数…

Vue 3 中的 $emit 函数是如何工作的

在 Vue.js 框架中,组件间的通信是一个核心概念。Vue 提供了多种方式来实现父子组件间的通信,其中 $emit 是子组件向父组件发送消息的一种常用手段。在 Vue 3 中,随着 Composition API 的引入,$emit 的使用方式也发生了一些变化&am…

[HackMyVM] 靶场 Wave

kali:192.168.56.104 主机发现 arp-scan -l # arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:d2:e0:49, IPv4: 192.168.56.104 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.56.1 0a:00:27:00:00:05 (Un…