学习深度强化学习---第2部分----RL动态规划相关算法

文章目录

    • 2.1节 动态规划简介
    • 2.2节 值函数与贝尔曼方程
    • 2.3节 策略评估
    • 2.4节 策略改进
    • 2.5节 最优值函数与最优策略
    • 2.6节 值迭代与策略迭代
    • 2.7节 动态规划求解最优策略

本部分视频所在地址:深度强化学习的理论与实践

2.1节 动态规划简介

态规划有两种思路:分治法和动态规划,目的是求解一个大问题。
分治法
分治法是将一个大问题分解成多个相互独立的子问题。然后再逐个解决每个子问题,最后将多个问题的结算结果c1、c2、…、cn进行总结,最后得到总问题的解。
subp1:表示将大问题分成的子问题
这些子问题的特点是这些子问题之间是相互独立的,也就是这些子问题是可以独立求解的。
动态规划
这个方法是将一个总问题进行逐步求解,先求解subp1,再求解subp2,…,最后求解subpn问题,
子问题的特点是嵌套的,递归的求解,即想要解决子问题subp3,必须先要求解子问题subp2,想要解决子问题subp2,必须先要求解子问题subp1。每个子问题的结构是一样的,即如果一个子问题是加法问题,则所有问题都是加法问题。
在这里插入图片描述
找到的其结构特征,就是去找到嵌套的结构特征
在这里插入图片描述
动态规划解决问题的案例

在这里插入图片描述

2.2节 值函数与贝尔曼方程

在这里插入图片描述
根据马尔科夫链定义一些东西:
即时奖励(通常称为奖励,reward)
累计奖励Gt: 表示状态为St时执行动作At之后累积的奖励。累计奖励中每一个时刻对应的即时奖励不能够同等看待。原因是例如在下象棋时第一步走马和棋局最后几步走马同样是走马的动作,但是走马的动作重要性是不同的。所得到的即时奖励是不同的。在棋局最后的终止状态附近的奖励应该被认为是更重要的。
累积折扣奖励(通常称回报,return): 智能体在t时刻的累积奖励会这么认为,离该时刻越近的即时奖励重要性应该越大,离该时刻越远的即时奖励重要性越小。举例:在终止状态T时刻,RT的重要性要远超于R1的重要性,其根本原因是动作AT-1的重要性要远超于动作A0的重要性。
在这里插入图片描述
延时越长时RT,对Gt的影响越小: 延时越长时RT,即T越大,参数γ经过T指数后参数变得很小,因此对Gt的影响越小。
强化学习的目的或目标: 寻找到一个能够使累积折扣奖励Gt最大的最优策略。如果该策略可以使得每一个时刻的累积折扣奖励都最大,这个策略是最优的。
在这里插入图片描述
有了累积折扣奖励函数之后,进一步定义两个值函数:状态值函数、动作值函数。
在这里插入图片描述
上面的Rt+1应该写成Rt+k
在这里插入图片描述
从上面的式子可以看出来,对于每个状态和每一个动作都会对应一个动作值,对于离散的状态空间和动作空间来讲那么动作值的个数应该是有限的,此时将会使用一个表来表示这个Q,之后会学习一种基于表的强化学习方法。
‘状态值函数和动作值函数之间是可以相互转换的。’
在这里插入图片描述
上面是假设s的下一个状态为s'
详细解释与推导:
在这里插入图片描述
动态规划的核心:贝尔曼方程。下面的两个方程认真一点都能写出来,需要注意的是在
1)状态值函数表达的贝尔曼方程中的r是在s状态下执行动作a之后得到的奖励r,在得到的这个方程的时候是这么简写的。
2)写动作值函数的贝尔曼方程时第2个Q函数中的s和a都是下一时刻的状态和下一时刻的动作。因此动作值函数表达的贝尔曼方程中有4个变量:当前时刻状态s,当前时刻的动作a,下一时刻的状态s',下一时刻的动作a',比较复杂,而状态值函数表达的贝尔曼方程中只有2个变量:当前状态s下一时刻状态s',形式较为简单。因此实际中使用状态值函数更多。
3)两种贝尔曼方程中的r是基于三元函数的。即r=r(s,a,s'),之前我们还定义过R=R(s,a),此处不是二元的。为什么是3元呢?:因为在方程里面求和的时候,求和符号下面的变量已知了,就代表下一时刻s’已经知道了,那r就采用三元的定义形式了。不过也可以写成二元的奖励函数,因此有了下面的基于二元奖励函数的贝尔曼方程。
4)三元价值函数和二元值函数的关系
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
贝尔曼方程与动态规划的关系:贝尔曼是动态规划的发明人,s状态下的状态值函数可以使用下一时刻状态s’的状态值函数表示出来,也是动态规划的原理。

2.3节 策略评估

智能体思考在当前环境下要做出什么动作的过程就叫策略。
在这里插入图片描述
在这里插入图片描述
所有的终止状态的状态值函数都是0
下图中的状态转移概率在上图中已经展示了一部分,比较好写。使用的策略是平均策略,也即时在不管在哪个状态下,采取任意一个动作的概率均为0.5,也因为是每个状态下可采取的动作只有两个,定义策略时采用平均策略较好。
在这里插入图片描述
下图中基于状态值函数的贝尔曼方程中的4个方程就严格按照方程写是比较好写出来的。解出来的结果见下图
在这里插入图片描述
在V4的时候稍微麻烦一点,部分计算如下图
在这里插入图片描述
需要注意的一点:
联立的这个4元方程组一定是有解的,原因是:显然可以看出第1个方程中V2可以使用V1表示,第2个方程中V3可以使用V2表示,第3个方程中V4可以使用V3表示,而第4个方程中可以将所有变量均使用V1去表示,因此这个方程组可以合并成一个关于V1的方程,则必有解。我认为其他的场景下使用动态规划模型建模的强化学习方法使用方程组法去解则其解也类似如此唯一。
如果在秩的角度来解释:每个方程都是根据在不同状态下写出来的,每个状态是独立的,因此这几个方程是独立的,是不相关的,因此方程组的秩是满秩的,因此有唯一解。
当方程组很大的时候采用高斯消元法已经不够用了,此时使用迭代法来求解一个方程组。即先设置一个初值,经过贝尔曼方程的逐次计算得到一个迭代序列,经过多次迭代就会得到一个最终的近似解。迭代法之后用的更多,优点是速度快、方法简单,缺点是得到的解是近似解,不是精确解。
在这里插入图片描述
假如有一个新的策略π’,根据这个策略算出来一系列的状态值,这些状态值都要大于原来的策略π算出来的状态值,那么这个新策略π’就要比原来的策略π要好。具体为什么是这样,暂时不太清楚,存疑后解。
在这里插入图片描述

2.4节 策略改进

根据下面的定义可以得出结论:找最优的策略的就是去找最大的状态值函数。
在这里插入图片描述
π’(s)表示根据π’策略从状态s开始下一步执行的动作
策略改进定理:
在这里插入图片描述
证明:
在这里插入图片描述
上面证明的一个说明:在V的时候,下标是π或π’似乎无关紧要,不用纠结,当然认真抠细节的话,我觉着应该是薛定谔的V
在这里插入图片描述
说明:策略改进定理是策略得到改进的充分条件

满足(2-14)的最简单的策略就是贪婪策略
简单解释为:选择在状态s时使得动作值函数最大的动作作为策略。
贪心策略一定是策略改进定理中的(2-14)式的。红色的公式是用动作值函数来表示状态值函数的公式。从该公式中可以看出,状态值函数是动作值函数的期望值,而π’(s)如果是选择在状态s时使得动作值函数最大的动作,那么Qπ(s,π’(s))则是最大的动作值函数,必大于等于动作值函数的期望值,也即是必大于等于状态值函数,因此满足(2-14)式,故该策略可有效改进。
在这里插入图片描述
由下图Qπ(s,a)的表达公式,如果已知Vπ(s’)要去计算Qπ(s,a)需要知道状态转移函数p(s’|s,a),如果不知道状态转移函数p(s’|s,a)怎么办?可以使用基于动作值函数的贝尔曼方程去求解
在这里插入图片描述
基于动作值的贝尔曼方程见下图:(具体如何根据下图求解状态转移概率有待研究)
在这里插入图片描述
在这里插入图片描述
下面示例中的被划掉的0其实不应该写的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.5节 最优值函数与最优策略

2.6节 值迭代与策略迭代

2.7节 动态规划求解最优策略

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

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

相关文章

前端 Web Workers 简介

简介 以前我们总说,JS 是单线程没有多线程,当 JS 在页面中运行长耗时同步任务的时候就会导致页面假死影响用户体验,从而需要设置把任务放在任务队列中;执行任务队列中的任务也并非多线程进行的,然而现在 HTML5 提供了…

App备案、ios备案Bundle ID查询、公钥信息、SHA-1值

App备案、ios备案Bundle ID查询、公钥信息、SHA-1值 Bundle ID这个就不说了,都知道是啥,主要说公钥信息和SHA-1值的获取 打开钥匙串访问,找到当前需要备案App的dis证书,如下: #####右键点击显示简介 #####可以看…

03.仿简道云公式函数实战-QLExpress初探

1. 前言 在上一篇文章中,我们简单介绍了一下表达式引擎,并引出我们的主角QLExpress.在这篇文章中,我们先来一个QLExpress的热身。 2. 初探QLExpress 源码地址:https://github.com/alibaba/qlExpress 笔者下载源码的版本是3.3.…

STL源码剖析笔记——适配器(adapters)

系列文章目录 STL源码剖析笔记——迭代器 STL源码剖析笔记——vector STL源码剖析笔记——list STL源码剖析笔记——deque、stack,queue STL源码剖析笔记——Binary Heap、priority_queue STL源码剖析笔记——AVL-tree、RB-tree、set、map、mutiset、mutimap STL源…

【Spring 基础】00 入门指南

【Spring 基础】00 入门指南 文章目录 【Spring 基础】00 入门指南1.简介2.概念1)控制反转(IoC)2)依赖注入(DI) 3.核心模块1)Spring Core2)Spring AOP3)Spring MVC4&…

php实现截取姓名中的第一个字作为头像的实战记录

php 截取中文字符串第一个字 substr 函数 在 PHP 中,使用 substr 函数来截取中文字符串的第一个字。由于 PHP 默认的字符编码是 UTF-8,它可以正确处理中文字符。 $chineseString "你好世界"; $firstChar substr($chineseString, 0, 1); e…

中文分词演进(查词典,hmm标注,无监督统计)新词发现

查词典和字标注 目前中文分词主要有两种思路:查词典和字标注。 首先,查词典的方法有:机械的最大匹配法、最少词数法,以及基于有向无环图的最大概率组合,还有基于语言模型的最大概率组合,等等。 查词典的方法…

知识产权服务企业网站建设效果如何

知识产权服务也有较高的市场需求度,尤其如今互联网深入到各个行业,无论个人还是企业都会以不同的方式经营,相应的为保障自身权益,注册商标、专利等自然不可少,而对普通小白来说,想要完成这些流程也是有些难…

Python实现获取b站视频的弹幕内容

前言 本文是该专栏的第39篇,后面会持续分享python的各种干货知识,值得关注。 在本专栏之前,有详细介绍使用python增加b站视频的播放量方法,感兴趣的同学可往前翻阅《Python-增加b站视频播放量》。而本文,笔者再来单独的详细介绍,通过python来获取b站视频的弹幕内容。如下…

CGAL的3D皮肤表面网格

1、介绍 Edelsbrunner 引入的皮肤表面和具有丰富而简单的组合和几何结构,使其适合在生物计算中模拟大分子。 对这些表面进行网格划分通常是进一步处理其几何形状所必需的,例如在数值模拟和可视化中。 皮肤表面由一组加权点(输入球&#xff09…

html通过CDN引入Vue使用Vuex以及Computed、Watch监听

html通过CDN引入Vue使用Vuex以及Computed、Watch监听 近期遇到个需求,就是需要在.net MVC的项目中,对已有的项目的首页进行优化,也就是写原生html和js。但是咱是一个写前端的,写html还可以,.net的话,开发也…

期末速成数据库极简版【查询】(3)

目录 多表查询 【8】多表连接——内连接 🙂等值连接 🙂自然连接 🙂非等值连接 【9】多表连接——外连接 【10】交叉连接不考 【11】联合查询 【12】扩展多表连接 【13】嵌套查询 🙂 多表查询 【8】多表连接——内连…

OSPF路由协议

随着Internet技术在全球范围的飞速发展,OSPF已成为目前应用最广泛的路由协议之一。OSPF(Open Shortest Path First)路由协议是由IETF(Internet Engineering Task Force)IGP工作组提出的,是一种基于SPF算法的…

JS 云服务 Deno Depoly 宣布,推出定时运行功能 Deno Cron

如果需要定时执行 JS 脚本,以后多一个选项。 Web 构建日益复杂。编写现代软件包括利用云基础设施、剖析模板代码和管理复杂的配置,而开发人员只想专注于编写业务逻辑。 Deno 旨在通过删除配置和不必要的模板,从根本上简化 Web 开发。我们将无…

网络攻击(三)--攻击阶段

5. 威胁建模阶段 目标 了解威胁建模阶段的工作内容 工作内容 威胁建模主要使用在情报搜集阶段所获取到的信息,来标识出目标系统上可能存在的安全漏洞与弱点。 在进行威胁建模时,确定最为高效的攻击方法、所需要进一步获取到的信息,以及从…

【前端】CSS浮动(学习笔记)

一、浮动 1、传统网页布局 网页布局的本质:用 CSS 来摆放盒子,把盒子摆放到相应位置。 CSS 提供了三种传统布局方式(盒子如何进行排列顺序) 普通流(标准流)浮动定位 实际开发中,一个页面基…

Tomcat头上有个叉叉

问题原因: 这是因为它就是个空的tomcat,并没有导入项目运行 解决方案: war模式:发布模式,正式发布时用,将WEB工程以war包的形式上传到服务器 war exploded模式:开发时用,将WEB工程的文件夹直接…

【网络协议】LACP(Link Aggregation Control Protocol,链路聚合控制协议)

文章目录 LACP名词解释LACP工作原理互发LACPDU报文确定主动端确定活动链路链路切换 LACP和PAgP有什么区别?LACP与LAG的关系LACP模式更优于手动模式LACP模式对数据传输更加稳定和可靠LACP模式对聚合链路组的故障检测更加准确和有效 推荐阅读 LACP名词解释 LACP&…

智能外呼有什么好处?

智能外呼是一种自动化的电话营销方式,利用AI智能外呼技术和大量数据分析,帮助企业实现与客户之间的高效、精准、个性化的客户沟通,还可以在客户服务、市场营销和销售等方面带来助力。那么,智能外呼有什么好处呢? 1. 提…

通过生成模拟释放无限数据以实现机器人自动化学习

该工作推出RoboGen,这是一种生成机器人代理,可以通过生成模拟自动大规模学习各种机器人技能。 RoboGen 利用基础模型和生成模型的最新进展。该工作不直接使用或调整这些模型来产生策略或低级动作,而是提倡一种生成方案,该方案使用…