强化学习的动态规划

news2024/11/27 21:38:54

一、动态规划

        动态规划(DP)一词指的是一系列算法,这些算法可用于在给定环境的完美模型作为马尔可夫决策过程(MDP)的情况下计算最优策略。经典的DP算法在强化学习中具有有限的实用性,既因为其对完美模型的假设,也因为其巨大的计算费用,但它们在理论上仍然很重要。DP为理解其余部分所介绍的方法提供了必不可少的理论基础。事实上,所有这些方法都可以被视为尝试实现与DP相同的效果,只是计算量更少,并且不假设环境的完美模型。

        我们通常假设环境是一个有限MDP。也就是说,我们假设其状态、动作和奖励集S、A(s)和R对于s∈S是有限的,其动态由概率p(s0,r|s,a)给出,对于所有s∈S,a∈A(s),r∈R和s0∈S+(S+是S加上一个终态,如果问题是离散的)。尽管DP思想可以应用于具有连续状态和动作空间的问题,但只有在特殊情况下才能获得精确解。对于具有连续状态和动作的任务获得近似解的常见方法是量化状态和动作空间,然后应用有限状态DP方法。后续介绍的方法适用于连续问题,并且是该方法的重要扩展。

        动态规划(DP)以及强化学习(RL)的核心思想是使用价值函数来组织和构建寻找最佳策略的过程。我们将介绍如何使用DP计算价值函数。正如之前所讨论的,一旦我们找到了最优的价值函数v或q,它们满足Bellman最优方程,我们就可以轻松地获得最优策略。

或者

        对于所有s∈S,a∈A(s)和s0∈S+,正如我们将看到的,DP算法是通过将Bellman等式转化为赋值来获得的,即将这些等式转化为更新规则,以改进所需价值函数的近似值。

二、策略评估

        首先,我们来考虑如何计算任意策略π的状态值函数vπ。这在DP文献中被称为政策评估,也称为预测问题。我们可以得知,对于所有s∈S,

        其中π(a|s)是在策略π下在状态s采取行动a的概率,并且期望值以π为下标,表示它们是条件于π被遵循。只要γ<1或从策略π下的所有状态保证最终终止,vπ的存在和唯一性就得到保证。

        如果环境动态是完全已知的,那么上式就是|S|个同时线性方程的体系,需要解的是未知数(vπ(s), s∈S) |S|个。在原则上,它的解决方案虽然繁琐但却是直接的。对于我们的目的来说,迭代解法是最适合的。考虑一个近似值函数v0,v1,v2,...的序列,每个映射S+到R。初始近似值v0是任意选取的(除了终态,如果有的话,必须赋予值为0),每个连续的近似值都是通过使用作为更新规则的Bellman方程vπ来获得的:

        对于所有的s∈S。很明显,vk=vπ是这个更新规则的固定点,因为vπ的Bellman方程可以确保在这种情况下相等。事实上,序列{vk}在一般情况下可以证明当k→∞时收敛于vπ,这符合确保vπ存在的相同条件。这个算法被称为迭代政策评估。

        为了从vk产生下一个近似值vk+1,迭代政策评估对每个状态s应用相同的操作:它将旧的状态s的值替换为从s的后继状态获得的新的值,以及在正在评估的政策下所有一步转移可能性的预期即时奖励。我们称这种操作为完全备份。每次迭代迭代政策评估都会备份每个状态的值一次,以产生新的近似值函数vk+1。根据被备份的对象是状态(如本例)还是状态-动作对,以及后继状态的估计值的组合方式不同,完全备份有几种不同的类型。所有在DP算法中进行的备份都称为完全备份,因为它们都是基于所有可能的后继状态,而不是基于样本后继状态。

三、实现的流程

        要编写一个顺序计算机程序来实现迭代政策评估,如上式中所示,您需要使用两个数组,一个用于旧值vk(s),一个用于新值vk+1(s)。这样,可以从旧值逐个计算新值,而不会更改旧值。当然,使用一个数组并在原地更新值更容易,也就是说,每个新的备份值立即覆盖旧值。然后,根据状态被备份的顺序,有时上式右侧会使用新值而不是旧值。这个稍微不同的算法也会收敛到vπ;事实上,正如您所料,由于它使用新数据,通常比两个数组版本收敛得更快。我们认为备份是通过扫过状态空间来完成的。对于原地算法,在扫过过程中状态被备份的顺序对收敛速率有重要影响。当我们想到DP算法时,我们通常想到的是原地版本。

        另一个实现问题涉及算法的终止。在形式上,迭代政策评估只在极限情况下收敛,但在实践中必须在达到极限之前停止。迭代政策评估的典型停止条件是在每次扫视后测试量 maxs∈S |vk+1(s) vk(s)| ,当它足够小时停止。图1给出了具有此停止标准的迭代政策评估的完整算法。

图1

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

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

相关文章

【ElasticSearch系列-04】ElasticSearch的聚合查询操作

ElasticSearch系列整体栏目 内容链接地址【一】ElasticSearch下载和安装https://zhenghuisheng.blog.csdn.net/article/details/129260827【二】ElasticSearch概念和基本操作https://blog.csdn.net/zhenghuishengq/article/details/134121631【三】ElasticSearch的高级查询Quer…

迅为iTOP-RK3568开发板npu手册更新

iTOP -RK3568开发板使用教程更新&#xff0c;后续资料会不断更新&#xff0c;不断完善&#xff0c;帮助用户快速入门&#xff0c;大大提升研发速度。 为了满足人工智能的需要&#xff0c;去年&#xff0c;迅为基于RK3568开发板编写了对应的手册文档>>>【资料上新】基…

K7系列FPGA进行FLASH读写1——CCLK控制(STARTUPE2原语)

最近的工作涉及对 FPGA 进行远程更新&#xff0c;也就是通过远程通信接口将 .bin 文件送到 FPGA&#xff0c;然后写入 FLASH&#xff0c;这样当 FPGA 重新上电后就可以执行更新后的程序了。因此第一步工作就是进行 FLASH 的读写控制。 然而如果尝试配置 FLASH 管脚时&#xff0…

队列、循环队列和双端队列

目录 1、队列 1.1 概念 2.2 队列的使用 2.3 队列模拟实现 2、循环队列 2.1 循环队列的认识 2.2 设计循环队列 3. 双端队列 (Deque) 1、队列 1.1 概念 队列 &#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表&#xff0c;队列…

Python之Excel——复制一个sheet当做模板,生成多个sheet

目录 专栏导读背景思路1、加载模板2、项目文件2、完整版代码:3、视频演示:4、总结:&#x1f44d; 该系列文章专栏&#xff1a;[Python办公自动化专栏] 专栏导读 &#x1f338; 欢迎来到Python办公自动化专栏—Python处理办公问题&#xff0c;解放您的双手 &#x1f3f3;️‍&…

synchronized和死锁介绍

synchronized特性synchronized使用修饰普通方法(对象锁)修饰静态方法&#xff08;类锁&#xff09;修饰代码块&#xff08;明确指定锁的对象&#xff09;非锁竞争情况 死锁死锁是什么&#xff1f;死锁的必要条件循环等待场景程序死锁怎么排除死锁问题怎么解决 标准库的线程安全…

led驱动电源模块能进行自动化测试吗,具体测试方法,流程是?

LED电源模块测试的痛点主要包括以下几点&#xff1a; 测试效率低&#xff1a;传统的LED电源模块测试方法通常采用人工操作&#xff0c;测试效率低下&#xff0c;且易出错。 测试项目不全面&#xff1a;传统的测试方法可能无法覆盖所有的性能指标&#xff0c;导致一些潜在的问…

非洲“支付宝”PalmPay搭载OceanBase:成本降低80%

10 月 30 日&#xff0c;非洲支付公司PalmPay 的核心系统搭载国产自研数据库OceanBase&#xff0c;正式投入使用。PalmPay 也是 OceanBase 首个非洲商业用户。 作为一家非洲领先的金融科技公司&#xff0c;PalmPay 于 2019 年在尼日利亚推出电子钱包应用&#xff0c;其功能类似…

Verilog刷题[hdlbits] :Module cseladd

题目&#xff1a;Module cseladd One drawback of the ripple carry adder (See previous exercise) is that the delay for an adder to compute the carry out (from the carry-in, in the worst case) is fairly slow, and the second-stage adder cannot begin computing …

推荐PHP匿名在线聊天室系统源码

PHP匿名在线聊天室系统源码 自适应PCWAP端 可发语音、图片&#xff0c;修改数据库config\settings.php可拿去搭建专门跟客户聊天的网站。 演示地址&#xff1a;runruncode.com/php/19610.html

AD教程(五)光耦及二极管元件模型的创建

AD教程&#xff08;五&#xff09;光耦及二极管元件模型的创建 二极管元件的创建 放置管脚&#xff0c;设置管脚号和管脚名称&#xff08;一般隐藏&#xff09;绘制三角形 右键放置直线&#xff0c;选择放置多边形&#xff0c;操作逻辑&#xff0c;每次操作都会增加一边&…

【面试精选】00后卷王带你三天刷完软件测试面试八股文

前言 本人普通本科计算机专业&#xff0c;做测试也有3年的时间了&#xff0c;讲下我的经历&#xff0c;我刚毕业就进了一个小自研薪资还不错&#xff0c;有10.5k&#xff08;个人觉得我很优秀&#xff09;&#xff0c;在里面呆了两年&#xff0c;积累了一些的经验和技能&#…

火爆全网,性能测试-Tomcat连接数分析/jprofiler定位接口相应时长(总结)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、Tomcat链接数分…

QT之多个界面相互切换 (stackedWidget控件)

TOC Chapter1 QT之多个界面相互切换 (stackedWidget控件) 原文链接 stackedWidget控件&#xff1a; 可以自由在多个widget切换&#xff0c;可以通过点击顶部菜单&#xff0c;显示不同界面&#xff0c;在实际开发中应用很广泛。 QStackedWidget是一个堆栈窗口控件&#xff0c…

tp6使用Spreadsheet报错:Class ‘PhpOffice\PhpSpreadsheet\Spreadsheet‘ not found

问题提示如下&#xff1a; 可能vendor下的 phpoffice是从别的项目拷贝过来的&#xff0c;所以咋都不行 解决办法是删掉vendor下的phpoffice&#xff0c;用composer重新下载 具体操作&#xff1a;1、在项目根目录下cmd执行下面这条命令 composer require phpoffice/phpspread…

【Linux】 shutdown 命令使用

shutdown 命令可以用来进行关机程序&#xff0c;并且在关机以前传送讯息给所有使用者正在执行的程序&#xff0c;shutdown 也可以用来重开机。使用权限&#xff1a;系统管理者。 语法 shutdown [选项] 时间 [警告信息] 命令选项及作用 执行令 man shutdown 执行命令结果 参…

矿山数字化react-native技术点记录

文章目录 1&#xff0c;宽度自适应表格实现2&#xff0c;新建作业手势动画3&#xff0c;tabBar中间midTabBar动态展示4&#xff0c;堆料图实现5&#xff0c;语音识别实现6&#xff0c;待办事项上下滑动切换页面7&#xff0c;装料卸料手势冲突8&#xff0c;首页初始化性能9&…

有活动啦 | 同立海源年终大促,满额赠礼!

秋天是倒放的春天 时间不停流转 四季马不停蹄 转眼间 距离2024年还有59天啦&#xff01; 在这个最美的季节 同立海源&#xff0c;年终大促&#xff0c;携礼而来&#xff01; 关于同立海源 北京同立海源生物科技有限公司&#xff0c;专注细胞和基因治疗&#xff08;CGT&am…

都是80m²小户型,凭啥她家那么好看!福州中宅装饰,福州装修

杨桥新苑 本案来自杨桥新苑的住宅&#xff0c; 质朴弥漫在80㎡的小家&#xff0c; 自然淡雅的木纹&#xff0c;精炼的玄关隔断&#xff0c; 简约的设计里传达着中式的静谧风雅&#xff0c; 简练的空间加入中国元素&#xff0c; 让人从进门开始就沾染一丝艺术气息。 风格&a…

库尔勒春雨社会工作服务中心开展“三金西瓜霜‘爱牙公益行’善网公益资源对接

为进一步增强辖区居民口腔健康观念和口腔保健意识&#xff0c;加大口腔防治知识宣传教育&#xff0c;促进形成良好的口腔健康行为。10月29日&#xff0c;库尔勒市春雨社会工作服务中心联合库尔勒市天山街道未成年人保护站开展“三金西瓜霜‘爱牙公益行’─善网公益资源对接”公…