强化学习的动态规划二

news2024/11/26 4:45:16

一、典型示例

        考虑如下所示的4×4网格。

图1

        非终端状态为S = {1, 2, . . . , 14}。在每个状态下有四种可能的行为,A = {up, down, right, left},这些行为除了会将代理从网格上移走外,其他都会确定性地引起相应的状态转换。因此,例如,p(6|5, right) = 1,p(10|5, right) = 0,p(7|7, right) = 1。这是一个无折扣的、分段的(episodic)任务。在到达终端状态之前的所有转换中,奖励为s1。终端状态在图中被着色(尽管它显示在两个地方,但它在形式上是一个状态)。预期奖励函数r(s, a, s0) = =1 对于所有状态s、s0和行为a。假设代理遵循等概率随机策略(所有行为的可能性相等)。图2的左侧显示了通过迭代政策评估计算出的值函数{vk}的序列。最终估计值实际上是vπ,在这种情况下,对于每个状态,它给出了从该状态终止的预期步数的否定。

图2

        小型网格世界中迭代策略评估的收敛。左侧一列是随机策略(所有动作均等)的状态值函数近似序列。右侧一列是与值函数估计相对应的贪婪策略序列(箭头的表示是所有实现最大值的动作)。最后一项策略只保证比随机策略有所改进,但在这种情况下,它和第三次迭代后的所有策略都是最优的。

二、策略改进

        我们计算一个策略的价值函数的理由是为了找出更好的策略。假设我们已经确定了一个任意确定性策略π的价值函数vπ。对于一些状态s,我们想知道是否应该改变策略以确定性地选择一个动作a = π(s)。我们知道从s开始遵循当前政策有多好,即vπ(s),但是改变到新政策会更好还是更差呢?回答这个问题的其中一种方式是考虑在s中选择a并随后遵循现有政策π。这种行为的值是

        关键标准在于这个值是否大于或小于vπ(s)。如果它更大,也就是说,如果在s中选择一次a然后遵循π比一直遵循π更好,那么人们就会期望每次遇到s时选择a会更好,并且新政策实际上会更好。 这是一个一般结果的特殊情况,该一般结果称为策略改进定理。让π和π0是任何一对确定性策略,对于所有的s∈S,

那么策略π0必须和π一样好或者更好。也就是说,它必须从所有状态s∈S获得更大或相等的期望回报:

此外,如果在任何状态下上式存在严格不等式,则至少在某个状态下存在严格不等式。这一结果特别适用于我们在前一段中考虑的两个策略,一个是原始的确定性策略π,另一个是除了π0(s) = a = π(s)之外与π相同的改变策略π0。显然,在除s以外的所有状态下都成立。因此,如果qπ(s, a) > vπ(s),则改变策略确实优于π。

        证明策略改进定理的想法很容易理解。我们不断扩展qπ的一侧,并重新应用(4.7),直到得到vπ0(s)

        到目前为止,我们已经看到,给定一个策略及其价值函数,我们可以很容易地评估在单个状态下对特定行动的政策变化。考虑在所有状态和所有可能的行为上的变化是很自然的延伸,在每个状态下选择根据qπ(s, a)看起来最好的行动。换句话说,考虑新的贪婪策略π0,由下式给出。

        其中argmaxa表示后续表达式最大化的a值(任意打破平局)。贪婪策略采取的是短期内看起来最好的行动-在一步预测之后-根据vπ。通过构造,贪婪策略符合策略改进的条件,因此我们知道它与原始策略一样好,或者更好。通过使新政策对原始策略变得贪婪,从而改善原始策略的过程,称为策略改进。

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

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

相关文章

VMware产品收集日志方法汇总

概述 vCenter日志是一个用于存储与vSphere环境相关的各种活动、事件和警告的日志系统。通过收集并分析vCenter日志,管理员可以获得有关其虚拟化环境的重要洞察和故障排除信息。 vCenter日志由多个组件组成,包括vCenter Server、ESXi主机和其他vSphere组…

软件测试面试题:Web 端测试和 App 端测试有何不同

Web 端测试和 App 端测试是针对不同平台的上的应用进行测试,Web应用和App端的应用实现方式不同,测试时的侧重点也不一样。 今天这篇文章就来介绍下两者的不同之处以及测试时的侧重点。 Web 端应用和 App 端应用的区别 平台兼容性 Web 端应用可以在任何…

C#开源的一个能利用Windows通知栏背单词的软件 - ToastFish

前言 今天给大家推荐一个C#开源且免费的能利用Windows通知栏背单词的软件,可以让你在上班、上课等恶劣环境下安全隐蔽地背单词(利用摸鱼时间背单词的软件):ToastFish。 操作系统要求 目前该软件只支持Windows10及以上系统&…

【C语言】C语言⻘蛙跳台阶问题--递归问题

🌈write in front :🔍个人主页 : 啊森要自信的主页 本期专栏🔥:本期将分享一些猜数字小游戏怎么一步一步实现的 🌈作者寄语 🌈: 小菜鸟的力量不在于它的体型,而在于它内心…

Fourier分析导论——第3章——Fourier级数的收敛性(E.M. Stein R. Shakarchi)

第 3 章 Fourier级数的收敛性(Convergence of Fourier Series) The sine and cosine series, by which one can represent an arbitrary function in a given interval, enjoy among other remarkable properties that of being convergent. This property did not escape…

nodejs+vue网上商城系统系统-毕业设计

网上商城系统的架构设计通常分为三层:客户端层、应用层和数据层。 客户端层:客户端层是用户与系统交互的界面,包括Web页面、移动App等。用户可以通过客户端层进行商品浏览、下单、支付等操作。应用层:应用层是业务逻辑处理的中心&…

一个 不用氪金 也能让你变强的 VSCode 插件 Ai

哈喽,大家好 我是 彩色之外👨🏻‍💻。今天给大家推荐一款不用充钱也能让你变强的 vscode 插件 通义灵码(TONGYI Lingma),可以称之为 Copilot 的替代甜品 💪 👀 前期回顾 NPM- 滚动进…

BIOS开发笔记 – 显示

UEFI启动流程跑完前三阶段,UEFI环境的准备基本完成,到BDS阶段的任务就是准备引导OS。在此之前还需要使一些必要的硬件工作起来,比如键盘设备,屏幕等,怎么让屏幕工作呢?简单的说就是执行其相关的UEFI驱动。要注意一下的是,这里所说的驱动并不是屏幕的驱动,而是GPU的驱动…

Proteus仿真--1602LCD随机模拟显示乘法口诀(仿真文件+程序)

本文主要介绍基于51单片机的1602LCD随机模拟显示乘法口诀实验(完整仿真源文件及代码见文末链接) 仿真图如下 其中上方主要是1602LCD液晶显示,使用方法点击左下方的按键开关实现不同的乘数切换,按照乘法表进行 仿真运行视频 Prot…

Android Studio的Java项目种运行main()的方法

首先随便在项目里面建一个类 public class TestSocket {public static void main(String[] args) {System.out.println("hahah");}}直接运行时会直接报错的 在项目的 .idea 添加代码 <option name"delegatedBuild" value"false"/> 再…

Centos7安装Elasticsearch和Kibana 记录(无坑版)

说明&#xff1a; 本文命令全部标红 elasticsearch使用版本是7.17.5 ik分词器也是7.17.5 虚拟机配置&#xff1a;2核4g centos版本&#xff1a;7 1、获取elasticsearch的安装包 下载&#xff1a;wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17…

《网络协议》01. 基本概念

title: 《网络协议》01. 基本概念 date: 2022-08-30 09:50:52 updated: 2023-11-04 07:28:52 categories: 学习记录&#xff1a;网络协议 excerpt: 互联网、网络互连模型&#xff08;OSI&#xff0c;TCP/IP&#xff09;、计算机通信基础。 comments: false tags: top_image: /i…

k-means算法c++实现

计算数据集中的元素与各个簇的中心的距离&#xff0c;将它赋给最近的簇&#xff0c;然后重新计算每个簇的平均值&#xff0c;再将元素按离平均值点最近的原则重新分配直到没有出现重新分配 该算法要事先给出k的值&#xff0c;即划分为几个簇。 vector<int> datoclu(dat…

JDBC数据库连接---附通用的CRUD类

文章目录 JDBC数据库连接1 导包2 编写配置文件3 编写连接数据库代码4 测试工具类5 附加1 通用的CRUD类2 测试CURD类3 测试 JDBC数据库连接 本篇文章以 MySQL 数据库为例&#xff0c;若要切换其他数据库&#xff0c;只需修改 resource文件夹中的 jdbc.properties 配置文件即可。…

《实战:如何搭建一个完整的 Vue2.0 项目》- 7、Vue2.x 项目 webpack 4 升级 5(半自动升级)

1.自动升级 先全局安装升级插件 npm i npm-check npm-check-updates -g检查依赖 npm-check更新检查后的依赖并展示版本号&#xff0c;此时 package.json还没有更新 npm-check-updates升级 package.json&#xff0c;下图显示更新版本&#xff0c;此时 package.json文件已变更…

客服管理者如何调动客服人员的积极性?

客户是企业的财富&#xff0c;良好的客户服务体验可以有效地促进企业的销售和声誉&#xff0c;因此&#xff0c;客服工作显得尤为重要。而客服人员的积极性直接影响了整个客服部门的质量和效率。如何调动客服人员的积极性&#xff0c;成为了每个客服管理者都需要面对的难题。本…

Mendix 创客访谈录|质量部门开发应用程序自主可控

本期创客 我们是来自于西门子成都工厂质量部的 Mendix “草台班子” 创客访谈 在使用Mendix低代码平台开发应用软件前&#xff0c;你和你的部门/团队主要应用什么开发工具&#xff1f; 我们质量部属于OT&#xff08;运营技术&#xff09;部门, 一般是使用一些IT团队提供的功能单…

Mongoose 开源库--Filesystem(文件系统)使用笔记

一、相关API Mongoose 开源库中也包含 文件系统 相关的 API&#xff0c;如下&#xff1a; 文件虚拟层&#xff1a; struct mg_fs {int (*st)(const char *path, size_t *size, time_t *mtime); // stat filevoid (*ls)(const char *path, void (*fn)(const char *, void *), v…

结合选择MES管理系统供应商的关键因素进行深入探讨

在现代化的制造业中&#xff0c;MES管理系统已经成为了提高生产效率、降低成本、增强产品质量的重要工具。然而&#xff0c;选择一个合适的MES管理系统系统供应商并不是一件轻而易举的事。它需要对多个因素进行深入的权衡和考虑。结合上述的关键挑选因素&#xff0c;我们进一步…