【论文】Continuous Rapid Action Value Estimates阅读笔记

news2024/9/23 3:22:42

之前在阅读KR-UCT论文时,里面提到过与UCT结合的主要两种启发式方法旨在指导探索策略,通过使用渐进拓宽(PW)限制考虑的行动的数量,并使用快速行动价值估计(RAVE)选择最有前途的行动。因此找了一篇RAVE来学习一下。


MCTS最常使用上置信树算法来处理探索和利用之间的权衡,而一些启发式算法被用于指导在大型搜索空间中的探索。在这些启发式方法中,包括快速行动值估计(RAVE)。虽然RAVE被认为是MCTS效率的一个关键因素,但到目前为止,它一直局限于离散的作用空间和状态空间。本文的重点是利用基于高斯卷积的平滑技术将RAVE扩展到连续动作和状态空间。

PW和RAVE提出的原因:

根据式(1),每一个可能的动作都必须在每个状态中选择一次,当手臂数量在时间范围下很大,这是很难处理的(every possible action must be selected once in each state, which is hardly tractable when the number of arms is large in front of the time horizon,实在不知道该怎么通俗地解释,只能意会,不能言传);同样,式(1)不能用于一个连续的手臂空间。为了解决这个限制,每个节点树中要考虑的手臂的数量受到限制(PW启发式),手臂的选择也受到控制(RAVE)。

Progressive WideningPW): 

渐进扩展(PW)启发式根据访问的次数n (s)限制了状态s中考虑的动作的数量。渐进式增宽也被用于连续的动作空间。具体地说,PW在状态s中允许的动作的数量pw(n(s))被设置为的整数部分,p=为2或4。在增加pw(n(s))后,RAVE用于选择下一个要考虑的操作。 

(之后会再找一篇有关PW的论文进行学习)

Rapid Action Value Estimation(RAVE):

快速行动价值估计(RAVE),它旨在通过分享沿着游戏树的不同子树收集的奖励,对行动进行更稳健的评估。形式上,设表示在访问状态s后选择了动作a的所有树行走的平均经验奖励,并且设是这种树行走的次数。

 是动作a的之和。

连续RAVE算法 :

连续动作空间: 

虽然所提出的离散RAVE方法支持动作值的快速估计,但其可靠性随着可以考虑的动作数量在相同的情况下增加其他因素的增加而降低。事实上,在连续的动作空间a中,期望中给定动作的尝试次数为0,这使得RAVE无用。因此,我们可以很自然地考虑动作值的平滑估计,例如使用高斯卷积。

给定训练集:

与某个相关的值y的高斯估计定义为:

其中,σ是一个平滑参数,加权x和d(x,x‘)的最近邻的相对重要性,表示空间上所选择的距离。在本文的其余部分中,将只考虑上的欧氏距离。

沿着这条线,让表示从s开始的树行走,让表示相关的累积经验奖励。

被定义为:

 其中是一个问题相关参数(为了同质性,与动作空间的平方维数成正比);表示所有中涉及的动作的总数,表示随着现有经验证据的增加而达到高斯卷积的峰值。计数器同样用高斯卷积估计,(用计算)

离散情况下的和连续情况下的都考虑了所有访问状态S和之后收集的累积奖励的tree-walks。两者的区别在于只考虑执行动作a的tree-walks,而认为都有一个根据执行的动作和考虑的动作a之间的距离呈指数下降的权重。因为更biased(因为它考虑了所有的动作,尽管是加权),因此考虑了  的动态组合:

选择最大化的动作

要注意的是,仅作为动作空间的有限子集进行计算,由于PW效应,每一个状态节点只考虑一定数量的动作,相关的连续快速动作值估计(RAVE)在每次tree-walk之后更新。

连续状态空间:

如前所述,   都十分biased,因为它们考虑每一次tree-walk有条件地访问状态s,并在之后执行动作a或其他相似的动作,尽管这一动作可能会在一个与状态s很不同的状态中执行。

在连续状态空间里,它很自然根据之间的距离来加权与某些状态-动作对相关的贡献。

其中,常数与问题有关,与状态空间的平方维数成正比,作为估计的可用证据的峰值。


实验验证

实验目标和实验设定

实验的主要目标是相对于MCTS/UCT基线,评估动作和状态-动作连续RAVE启发式的效率。

这两种启发式都插入了相同的MCTS/UCT算法与双渐进拓宽和默认参数。经过几次初步实验,将问题相关参数的值设置为,其中分别对应于动作空间和状态空间的维数。在动作空间和状态空间中所选择的距离都是欧氏距离。

 一式中的k被设定为50。

实验的第二个目标是研究连续RAVE启发式对时间范围和状态空间大小的敏感性。

寻宝问题

状态空间:这个寻宝问题的游戏环境是一个长宽为D的正方形竞技场,所以智能体的状态空间是

智能体的目标:从起始点(位于左下角)出发,到达右上角的Treasure终点。

动作空间:智能体的速度是固定的,它的方向角a(应该就是动作空间了)的取值范围是

奖励设置:在每一时间步中,智能体会得到一个即时奖励-1;最终到达Treasure终点是给予奖励1000;如果在洞里则会得到即时奖励-500。

游戏考虑了两种选择:具有确定性或机率性转移概率;有或没有洞(竞技场中心的长宽为h的正方形)。

转移概率定义为:

在状态下选择动作(也就是方向角)a时,智能体到达状态,其中表示从中均匀抽取的随机变量(确定性情况下

 tree-walk停止的条件:智能体到达treasure终点或掉进洞里;或走了10D的距离。

在确定性情况设置下,最佳奖励是1000减去起始位置和treasure终点之间的最短路径,也就是需要避开洞。而在机率性情况的设置下,最优策略很难找到。

寻宝问题实验结果

情况一:在没有洞、确定性转移下的比较结果

在这种最简单的设置中,方法之间并没有显著的差异,尽管显著地改善了UCT小时间预算。有趣的是,并没有显著改善。因为最优化轨迹时从初始点到treasure终点的直线,最优选择并不依赖于当前状态。当最优选择取决于当前状态时,也就是在更复杂的设置中,的优势将会凸显出来。

情况二:机率性转移,最优动作取决于状态s

在这种情况下,  都明显改善了UCT,但出乎意料的是,更表现地优秀,尤其是噪音是适中的时候。原因如下:一方面,当不考虑状态的时候,估计方差(estimate variance)比较低;另一方面,最优选择仅仅略微取决于状态s。总的来说,因此使估计更快地收敛,而其偏差保持中等。这一解释被证实为   之间的差距随着噪声振幅的增大而减小。

情况三: 出现洞

这里的最优移动取决于当前的状态,即使是在确定性转移设置里。正如预期那样, 在所有确定性和机率性转移设置里, 都明显改善 ,尽管它们之间的差距随着噪声振幅的增加而减小。此外,   都改善了UCT

能源管理问题 

大略看了一下,和我的课题关系不是特别大,就先不仔细研究了,等到之后需要的时候再看。

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

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

相关文章

C++模板完整版

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、泛型编程 如何实现一个通用的交换函数呢? void Swap(int& left, int& right) {int temp left…

[SpringCloud] OpenFeign核心架构原理 (一)

Feign的本质: 动态代理 七大核心组件 Feign底层是基于JDK动态代理来的, Feign.builder()最终构造的是一个代理对象, Feign在构建对象的时候会解析方法上的注解和参数, 获取Http请求需要用到基本参数以及和这些参数和方法参数的对应关系。然后发送Http请求, 获取响应, 再根据响…

需求评审会常见的5大核心问题

需求评审会是项目管理过程中的一个重要环节,其核心问题的顺利讨论和评审,对项目来说非常重要。其有助于项目成员对需求理解达成共识,明确需求的内容、目标和预期结果,尽早发现需求不合理之处,从而能够及时调整和完善&a…

物联卡禁止个人使用是有原因的,技术层面给大家深度分析一下

运营商禁止物联卡个人使用是硬性规定,但是现在很有很多不法商贩在倒卖物联卡给个人,套路是很多的,小编之前的文章里有几篇深度介绍,大家可以搜索看一下,今天就从技术层面来给大家详细分析一下为什么物联卡不适合个人使…

智慧社区养老:Java与SpringBoot的技术融合

✍✍计算机毕业编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java、…

华为OD机试真题C卷-篇6

100分值题 宽度最小的子矩阵部门人力分配电脑病毒感染会议室占用时间段路口最短时间问题5G网络建设 宽度最小的子矩阵 给定一个n行 * m列的矩阵;给定一个k个整数的数组k_list;在n*m的矩阵中找一个宽度最小的子矩阵,该子矩阵包含k_list中所有…

从0到1全流程使用 segment-anything

从0到1全流程使用 segment-anything 一、安装 anaconda 一、下载 anaconda 二、以管理员身份运行安装 1、勾选 Just Me 2、统一安装路径(后续 python 等包也安装至此目录) 3、勾选 add to path 然后安装即可。 三、修改 Anaconda 默认路径及默认缓存路径 Anaconda 默认下…

反向代理多级多机

一 架构图 本次实验需要 5台机器 第一台 nginx 只做代理服务器 负责反向代理 加 负载均衡 后面的两台nginx 做真实服务器 处理静态资源 再后面的 tomcat 做真实服务器 处理动态资源 二 具体实验 (一) 具体实验环境 所有机器关闭防火墙 安装…

第一天 走进Docker的世界

第一天 走进Docker的世界 介绍docker的前世今生,了解docker的实现原理,以Django项目为例,带大家如何编写最佳的Dockerfile构建镜像。通过本章的学习,大家会知道docker的概念及基本操作,并学会构建自己的业务镜像&…

【性能测试】Jmeter性能压测-阶梯式/波浪式场景总结(详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、阶梯式场景&am…

Spring中Bean的作用域、实例化方式、生命周期、循环依赖问题

Spring中Bean的作用域、实例化方式、生命周期、循环依赖问题 一、Bean的作用域1.singleton2.prototype3.其他scope值 二、Bean的实例化方式1.通过构造方法实例化2.通过简单工厂模式实例化3.通过factory-bean实例化4.通过FactoryBean接口实例化5.BeanFactory和FactoryBean的区别…

车载主机中控屏_车载平板电脑|车载后装定制方案

现代汽车已经成为人们生活中不可或缺的交通工具,车载中控屏作为汽车信息娱乐和导航系统的重要组成部分,更是受到了越来越多车主的重视。而一款优秀的车载主机中控屏,不仅需要具备强大的性能和功能,还需要具备高性价比和更低的耗电…

深入探索Java线程管理:Thread类的全面指南

🌟 欢迎来到我的博客! 🌈 💡 探索未知,分享知识 💫 **🌟 欢迎来到我的博客! 🌈****💡 探索未知,分享知识 💫**深入探索Java线程管理&…

前端监控为什么采用GIF图片做埋点?

一、什么是埋点监控 前端监控是开发人员用来跟踪和维护应用程序表现层的运行状况的过程和工具。它主要包括三种类型:数据监控、性能监控和异常监控。 1、数据监控 主要是为了收集跟用户相关的数据,例如用户设备类型、浏览器版本、页面浏览量(…

【JavaScript】面试手撕浅拷贝

【JavaScript】面试手撕浅拷贝 引入 浅拷贝和深拷贝应该是面试时非常常见的问题了,为了能将这两者说清楚,于是打算用两篇文章分别解释下深浅拷贝。 PS: 我第一次听到拷贝这个词,有种莫名的熟悉感,感觉跟某个英文很相似&#xff…

2024全国护网行动HW行动招聘/收人!!!

2024全国护网行动HW行动招聘 溯蓉信创开始收人啦!!!现在开始收录2024HW简历,感兴趣的小伙伴扫码二维码添加微信 我们签约后,入场即预付款3k,签约后我们会在HW之前对我们的人员进行HW培训,保证上…

光辐射测量(1)基本介绍+辐射度量、光辐射度量基础

基本情况:本门课就是对“三度学”进行学习。“三度学”包括辐射度学、光度学、色度学。主要掌握其基本概念、原理、物理量的互相转换关系、计算分析方法、测量仪器与测试计量方法等。 三者所覆盖的范围如图。 辐射度学: 辐射度学是一门研究电磁辐射能测…

TikTok矩阵获客软件开发需要了解的代码!

在数字营销领域,TikTok已经成为一个不可忽视的平台,由于其庞大的用户群体和高度互动性,越来越多的企业开始寻求在TikTok上进行有效的获客策略。 为了实现这一目标,开发一款针对TikTok的矩阵获客软件成为了许多企业的选择&#xf…

力扣刷题:206.反转链表

题目: 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1]示例 2: 输入:head [1,2] 输出:[2,1]示例 3&am…

day11_oop_fianl_satic_多态

今日内容 零、 复习昨日 一、final 二、static 三、多态 四、向上转型&向下转型 五、多态应用 零、 复习昨日 0 类封装步骤 属性私有private提供setget方法 1 继承关键词,继承的好处 extends减少代码重复为多态做准备 2 子类可以使用父类什么 非私有的属性和方法 3 方法重写…