【详细原理】蒙特卡洛树搜索

单一状态蒙特卡洛规划:多臂赌博机

多臂赌博机问题(Multi-Armed Bandit)是强化学习中的经典问题,涉及在有限的时间内,从多台赌博机(即“臂”)中选择,以最大化累积奖励。单一状态蒙特卡洛规划是一种解决该问题的有效方法。

问题描述

假设有 K K K 个臂的赌博机,每个臂 k k k 的奖励分布未知。目标是在 T T T 次尝试中,选择臂 a t a_t at,使得累积奖励 R = ∑ t = 1 T r a t R = \sum_{t=1}^{T} r_{a_t} R=t=1Trat 最大,其中 r a t r_{a_t} rat 是在时间步 t t t 选择臂 a t a_t at 获得的奖励。

探索与利用的权衡

在多臂赌博机问题中,需要在探索(尝试不同的臂以了解其潜在奖励)和利用(选择当前估计最优的臂以获取高奖励)之间取得平衡。

如果有 k k k 个赌博机,这 k k k 个赌博机产生的操作序列为 X i , 1 , X i , 2 , … X_{i,1}, X_{i,2}, \dots Xi,1,Xi,2, i = 1 , 2 , … , k i = 1,2, \dots, k i=1,2,,k)。在时刻 t = 1 , 2 , … t = 1, 2, \dots t=1,2,,选择第 I t I_t It 个赌博机后, 可得到奖赏 X I t , t X_{I_t,t} XIt,t,则在 n n n 次操作后定义悔值函数:

R n = max ⁡ i = 1 , … , k ∑ t = 1 n X i , t − ∑ t = 1 n X I t , t R_n = \max_{i=1,\dots,k} \sum_{t=1}^{n} X_{i,t} - \sum_{t=1}^{n} X_{I_t,t} Rn=i=1,,kmaxt=1nXi,tt=1nXIt,t

悔值函数表示了如下意思:在第 t t t 次对赌博机操作时,假设知道哪个赌博机能够给出最大奖赏(虽然在现实生活中这是不存在的),则将得到的最大奖赏减去实际操作第 I t I_t It 个赌博机所得的奖赏。将 n n n 次操作的差值累加起来,就是悔值函数的结果。

很显然,一个良好的多臂赌博机操作的策略是在不同人进行了多次玩法后,能够让悔值函数的方差最小。

上限置信区间

在多臂赌博机的研究过程中,上限置信区间(Upper Confidence Bound, UCB)成为一种较为成功的策略学习方法,因为其在探索-利用(exploration-exploitation)之间取得平衡。

在 UCB 方法中,使 X i , T i ( t − 1 ) X_{i,T_i(t-1)} Xi,Ti(t1) 来记录第 i i i 个赌博机在过去 t − 1 t-1 t1 时刻内的平均奖赏,则在第 t t t 时刻,选择使如下具有最佳上限置信区间的赌博机:

I t = arg ⁡ max ⁡ i ∈ { 1 , … , k } { X i , T i ( t − 1 ) + c t − 1 , T i ( t − 1 ) } I_t = \arg\max_{i \in \{1, \dots, k\}} \left\{ X_{i,T_i(t-1)} + c_{t-1,T_i(t-1)} \right\} It=argi{1,,k}max{Xi,Ti(t1)+ct1,Ti(t1)}

其中, c t , s c_{t,s} ct,s 取值定义如下:

c t , s = 2 ln ⁡ t s c_{t,s} = \sqrt{\frac{2 \ln t}{s}} ct,s=s2lnt

T i ( t ) = ∑ s = 1 t 1 ( I s = i ) T_i(t) = \sum_{s=1}^{t} \mathbf{1}(I_s = i) Ti(t)=s=1t1(Is=i) 为在过去时刻(初始时刻到第 t t t 时刻)过程中选择第 i i i 个赌博机的次数总和。

当选择第 i i i个赌博机的次数越少, s s s越小, c t , s c_{t,s} ct,s越大,即第 i i i个赌博机获得的奖励越不确定, c t − 1 , T i ( t − 1 ) c_{t-1,T_i(t-1)} ct1,Ti(t1)的意义在于摇动那些选择次数较少的赌博机以博取更大的奖励。

也就是说,在第 t t t 时刻,UCB 算法一般会选择具有如下最大值的第 j j j 个赌博机:

U C B = X ‾ j + 2 ln ⁡ n n j 或者 U C B = X ‾ j + C × 2 ln ⁡ n n j UCB = \overline{X}_j + \sqrt{\frac{2 \ln n}{n_j}} \quad \text{或者} \quad UCB = \overline{X}_j + C \times \sqrt{\frac{2 \ln n}{n_j}} UCB=Xj+nj2lnn 或者UCB=Xj+C×nj2lnn

其中, X ‾ j \overline{X}_j Xj 是第 j j j 个赌博机在过去时间内所获得的平均奖赏值, n j n_j nj 是在过去时间内拉动第 j j j 个赌博机臂膀的总次数, n n n 是过去时间内拉动所有赌博机臂膀的总次数。 C C C 是一个平衡因子,其决定着在选择时偏重探索还是利用。

从这里可看出,UCB算法如何在探索-利用(exploration-exploitation)之间寻找平衡:既需要拉动在过去时间内获得最大平均奖赏的赌博机,又希望去选择拉动臂膀次数最少的赌博机。

蒙特卡洛树搜索

蒙特卡罗树搜索(Monte Carlo Tree Search,简称 MCTS)是一种用于决策过程的启发式搜索算法,特别适用于具有巨大搜索空间的游戏和问题,例如围棋、国际象棋和复杂的组合优化问题。MCTS 通过在决策树中进行随机模拟(也称为蒙特卡罗模拟),逐步构建搜索树,从而找到最优的决策路径。

核心概念

MCTS 的核心思想是通过在决策树上进行大量的随机模拟,来估计各个节点的价值,从而指导搜索过程。它主要由以下四个步骤组成,每次迭代都会重复这四个步骤:

  1. 选择(Selection):从根节点开始,根据某种策略(如上置信区间 UCB),选择一个子节点,直到到达一个尚未被完全展开的节点。

  2. 扩展(Expansion):如果选中的节点不是终止节点,从该节点中随机选择一个未被访问过的子节点,添加到搜索树中。

  3. 模拟(Simulation):从新添加的节点开始,进行一次随机的模拟(也称为“Playout”),直到到达终止状态(如游戏结束)。

  4. 回溯更新(Backpropagation):将模拟结果(如胜利或失败)沿着路径反向传播,更新各个节点的统计信息(如胜率、访问次数)。

image.png

关键组件

  • 选择策略:在选择步骤中,常用的策略是上置信区间应用于树(Upper Confidence Bounds applied to Trees,UCT)。UCT 平衡了探索(选择访问次数少的节点)和利用(选择具有高胜率的节点)。

    UCT = w i n i + c × ln ⁡ N n i \text{UCT} = \frac{w_i}{n_i} + c \times \sqrt{\frac{\ln N}{n_i}} UCT=niwi+c×nilnN

    其中, w i w_i wi 是节点 i i i 的获胜次数, n i n_i ni 是节点 i i i 的访问次数, N N N 是父节点的访问次数, c c c 是探索参数。

  • 模拟策略:通常是随机的,也可以使用启发式或领域特定的知识来改进模拟的质量。

  • 回溯更新:在回溯过程中,更新节点的胜率和访问次数,以反映最新的模拟结果。

总结

蒙特卡罗树搜索是一种强大的搜索算法,能够在复杂的决策空间中进行有效的搜索。通过大量的随机模拟和巧妙的选择策略,MCTS 在许多领域都展现出了卓越的性能。然而,其计算成本和对模拟策略的依赖性也是需要考虑的因素。随着计算能力的提升和算法的改进,MCTS 的应用前景将更加广阔。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

209.长度最小的子数组(滑动窗口类)

文章目录 209.长度最小的子数组滑动窗口904. 水果成篮76. 最小覆盖子串 209.长度最小的子数组 209.长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合…

存储课程学习笔记5_iouring的练习(io_uring,rust_echo_bench,fio)

我们知道,在处理大量高并发网络时,一般考虑并发,以及设计对应的方案(比如select,poll,epoll)等。 那么如果频繁进行文件或者磁盘的操作,如何考虑性能和并发,这里就可以考虑用到io_uring。 0&a…

MySQL 按照条件(分组)只取一个形成列表 group max

方法一、通过Max形成where条件 SELECTt1.* FROMbiz_customer_hold AS t1 WHEREt1.ch_create_time ( SELECT MAX( ch_create_time ) FROM biz_customer_hold AS t2 WHERE t2.ch_cust_no t1.ch_cust_no ) ORDER BYt1.ch_create_time DESC,t1.ch_hold_time DESC 方法二、通…

搭建Eureka高可用集群 - day03

全部代码发出来了 搭建服务提供者 步骤: 1.创建项目,引入依赖 2.添加Eureka相关配置 3.添加EnableEurekaClient注解 4.测试运行 步骤1:创建项目,引入依赖 使用Spring Initializr方式创建一个名称为eureka-provider的Sprin…

labview串口大数据量报错的一种解决思路(通过tcp进行写入和读取串口数据)

因为项目要求,用labview给客户开发了一个上位机,在现场给客户调试上位机时,发现了几种奇怪的现象 1:客户样件有两路串口,一路串口可以多字节进行发送数据,一路只能单字节发送数据,每次单字节数据…

第L6周:机器学习-随机森林(RF)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目标: 1.什么是随机森林(RF) 随机森林(Random Forest, RF)是一种由 决策树 构成的 集成算法 &#…

Spring注解@Value的基本知识(附Demo)

目录 前言1. 基本知识2. 高级用法3. 彩蛋 前言 对于Java的基本知识推荐阅读: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)【Java项目】实战CRUD的功能整理(持续更新) 1. 基本知识 Value 是 Spr…

前端开发macbook——NVM环境配置以及git配置流程

本文主要针对前端使用mac电脑时需要安装nvm对应环境,一文解决环境安装问题 主要步骤如下: 安装homebrew 安装nvm 安装git 第一步:安装homebrew /bin/bash -c "$(curl -fsSL https:/raw.githubusercontent.com/Homebrew/install/HE…

解决跨境电商平台账号无法访问的常见问题

跨境电商的迅猛发展,越来越多的卖家选择在全球各大电商平台如亚马逊、eBay等进行商品销售。然而,在实际运营过程中,卖家经常会遇到账号无法访问、应用打不开等问题,导致业务受阻。本文将针对这些问题进行详细分析,并提…

浏览器插件利器--allWebPluginV2.0.0.20-beta版发布

allWebPlugin简介 allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品,致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX控件直接嵌入浏览器,实现插件加载、界面显示、接口调用、事件回调等。支持Chrome、Firefo…

IIC总线

目录 一、概述二、时序1.开始传输2.发送器件地址3.发送读写控制位R/W4.从机应答器件地址5.发送字地址6.从机应答字地址7.收发数据发送数据单次写连续写 接收数据当前地址读随机读连续读 8.停止通信 三、IIC驱动EEPROM读写程序 参考:正点原子FPGA开发指南 一、概述 …

持续集成与持续交付CI/CD

CI/CD 是指持续集成(Continuous Integration)和持续部署(Continuous Deployment)或持续交付(Continuous Delivery) 持续集成(Continuous Integration) 持续集成是一种软件开发实践&…

Java汽车销售管理

技术架构: springboot mybatis Mysql5.7 vue2 npm node 有需要该项目的小伙伴可以添加我Q:598748873,备注:CSDN 功能描述: 针对汽车销售提供客户信息、车辆信息、订单信息、销售人员管理、财务报表等功能&…

基于是springboot小区物业管理系统

小区物业管理系统 摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于小区物业管理系统当然也不能排除在外,随着网络技术的不断成熟,带动了小区物业管理系统&#x…

Flutter之SystemChrome全局设置

一、简介 SystemChrome作为一个全局属性,很像 Android 的 Application,功能很强大。 二、使用详解 2.1 setPreferredOrientations 设置屏幕方向 在我们日常应用中可能会需要设置横竖屏或锁定单方向屏幕等不同要求,通过 setPreferredOrien…

人工智能GPT____豆包使用的一些初步探索步骤 体验不一样的工作

豆包工具是我使用比较频繁的一款软件,其集合了很多功能。对话 图像 AI搜索 伴读等等使用都非常不错。电脑端安装集合了很多功能。 官网直达:豆包 使用我的文案创作能力,您可以注意以下几个技巧: 明确需求: 尽可能具…

PointNet++改进策略 :模块改进 | EdgeConv | DGCNN, 动态图卷积在3d任务上应用

目录 介绍核心思想及其实现核心思想实现步骤 如何改进PointNet**局部几何结构的处理****动态图的引入****特征聚合的灵活性****全局和局部特征的结合** 论文题目:Dynamic Graph CNN for Learning on Point Clouds发布期刊:TOG作者单位:麻省理…

[全网首发]怎么让国行版iPhone使用苹果Apple Intelligence

全文共分为两个部分:第一让苹果手机接入AI,第二是让苹果手机接入ChatGPT 4o功能。 一、国行版iPhone开通 Apple Intelligence教程 打破限制:让国行版苹果手机也能接入AI 此次发布会上,虽然国行 iPhone16 系列不支持 GPT-4o&…

C++:二叉搜索树

1.二叉搜索树的概念 二叉搜索树又称二叉排序树,它或者是一颗空树,或者是具有以下性质的二叉树: 若它的左子树不为空,那么左子树上的所有节点的值都小于等于根节点的值若它的右子树不为空,那么左子树上的所有节点的值…

免费像素画绘制软件 | Pixelorama v1.0.3

Pixelorama 是一款开源像素艺术多工具软件,旨在为用户提供一个强大且易于使用的平台来创作各种像素艺术作品,包括精灵、瓷砖和动画。这款软件以其丰富的工具箱、动画支持、像素完美模式、剪裁遮罩、预制及可导入的调色板等特色功能,满足了像素…