Model-based RL动态规划(基于价值、基于策略,泛化迭代)

news2024/11/13 9:24:46

白盒环境和黑盒环境

白盒环境:知道环境的状态转移函数P(s’|s)或P(s’|s,a)和奖励函数R(s)或R(s,a):
  白盒环境下的学习相当于直接给出了有监督学习的数据分布(就是有了目标靶子),不需要采样了,直接最小化泛化误差更新模型参数。
  对于马尔可夫决策过程(MDP),在白盒环境下(即known MDP),就可以直接用动态规划算法(策略迭代算法、价值迭代算法)求解出最优状态价值函数和最优策略(控制),或者求出某一策略下的价值函数(预测)。

黑盒环境:不知道环境的状态转移函数P(s’|s)或P(s’|s,a)和奖励函数R(s)或R(s,a):
  黑盒环境就只能采集数据,尽可能的靠近靶子学习,即最小化数据的误差更新参数(训练出的模型是否接近真是模型就要看采集的数据的量)。
  大部分强化学习现实场景,马尔可夫决策过程(MDP)是黑盒环境。对于马尔可夫决策过程(MDP),在不知道环境的状态转移函数和奖励函数下(或者是known MDP,但环境太大太复杂无法去使用)就使用无模型的强化学习算法和基于模型的强化学习算法算出最优策略和最优价值函数(控制),或者求出某一策略下的价值函数(预测)。这两种方法都是基于采样的数据来更新的,直接使用和环境交互的过程中采样到的数据来学习。

确定性策略和随机性策略

策略就是评判智能体在特定时间点的表现。把每一个状态和它所对应的最佳行动建立联系。
策略分为两种,
· 确定性策略:某一个特定状态下的策略,永远都会给出同样的行动。
· 随机性策略:策略给出的是多种行动的可能性分布。

一 策略迭代

策略迭代包含两个主要步骤:策略评估(Policy Evaluation)和策略改进(Policy Improvement)。

策略评估
在策略评估步骤中,我们计算给定策略 π 的状态价值函数 Vπ(s)。这是通过迭代更新每个状态的价值来实现的,直到达到稳定状态。

更新公式
在这里插入图片描述
在这里插入图片描述
其中 π(at,st)表示状态 st 下选取动作 at的概率,p(st+1†st,at)表示状态 st转移到st+1的概率。

策略改进
策略改进步骤利用当前价值函数来生成一个更好的策略。这通过为每个状态选择最大化预期回报的动作来实现。

改进公式
在这里插入图片描述

策略迭代交替进行策略评估和策略改进,直到策略收敛。

初始策略的设置,可以采用随机策略或者某种启发式方法。随机策略是随机选择动作,目的是用各个动作与环境交互,探索环境,获取更全面的数据。启发式方法,是通过专家知识或经验指导,选择相对较优的策略,可以加快模型的收敛速度。

在这里插入图片描述

二 值迭代

值迭代是一种更直接的方法,它通过迭代更新状态价值函数来直接找到最优策略。
从上例的策略评估中可以看出,迭代10次和迭代无穷次所得到的贪心策略是⼀样的。因此,对于上面的问题,不一定让策略评估和策略改进反复交替多次,而是用贝尔曼最优方程,一次性确定各个状态的 Vπ(s),再用这些最优状态值函数Vπ(s)计算动作值函数 Q(s,a) ,最后取Q(s,a)最大的动作,这就是值函数迭代算法。

更新公式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

值迭代在每次迭代中对状态价值函数进行更新,直到收敛。最优策略可以通过选择在每个状态下最大化价值函数的动作来确定。
在这里插入图片描述

三 策略迭代 vs 值迭代

3.1 局限性

策略迭代算法和值迭代算法,当状态和动作数量有限时,经过有限次迭代即可收敛到近似最优策略,但都需要非常多的迭代次数才能完成,因此适合状态和动作都离散且数量不多的情况。

在实际应用中有如下的局限性:
(1)要求模型已知,即需要知道状态转移概率p和奖励函数r。但实际应用中,这个要求很难满足。如果事先不知道模型,就需先让智能体与环境交互来估计模型,即估计状态转移概率和奖励。因过程比较复杂,只能用于状态比较少的场合。
(2)效率问题。当状态数量较多时,算法效率比较低。在实际应用中,很多问题的状态数量和动作数量非常多.比如,围棋有19×19 = 361个位置,每个位置有黑子、白子或无子三种状态,整个棋局有 3361种状态。对于这种情况,无论是值迭代还是策略迭代,以当前计算机的计算能力,根本无法计算。比较有效的方法是通过一个函数,比如神经网络,来近似计算值函数,以减少复杂度,并提高泛化能力(应用范围和效果)。

3.2 两者对比

策略迭代:通常需要更多的时间来收敛,因为它在每个策略下进行完整的策略评估。但是,一旦收敛,就得到了最优策略。
值迭代:通常收敛速度更快,但可能在找到最优策略之前就停止迭代。

基于策略与基于价值的优势
从图中我们可以看到,策略直接指出了每一步的最佳行动,

  • 基于策略的方法往往比基于值的方法收敛到更好的解决方案。原因是,解决方案是梯度推出来的,而梯度总是指向微分函数的最陡峭方向。当运用误差函数并采用梯度下降法时,每一步都做都会让误差函数的值最小化。但是,如果几个动作间的差异比较小,基于值的方法产生的结果差异更大,无法保证收敛。
  • 值函数需要明确定义的环境,在该环境下动作会产生确定的结果。如果学习过程是随机的,那么在采取相同动作时,可能有不同的结果(观测),这样值函数就没法使用了。基于策略的方法不需要采取相同的动作来探索环境。
  • 在高维空间内,基于策略的方法的计算成本更低,计算的更快。这是因为基于值的方法要求我们为每一种可能的动作计算一个价值。如果空间中的动作太多了,值函数就不会收敛于一个解决方案。基于策略的方法不同,因为本质上只是让我们执行动作并且调整梯度。

四 泛化迭代

策略迭代法的中心是策略函数,通过策略评估+策略提升两个步骤使策略变得越来越好;
价值函数通过自我更新、动态规划的方式不断迭代更新价值函数,并最终求出策略函数。

  • 两个方法都要求策略函数和价值函数
  • 最终最优的策略函数都是由价值函数得到的
  • 价值函数依据函数的数值收敛
  • 策略函数依据策略收敛

我们发现了一个关键:那就是两者都需要训练策略函数和价值函数,只是侧重点不同。
策略迭代的核心是策略,为了使策略能够提升,价值函数可以求解得准确,也可以求解得不准确;
价值迭代的核心是价值,算法的核心部分根本没有出现与策略有关的内容,直到最后才出现了策略。

两种方法都十分看重自己关心的那部分,而可以选择忽略另一部分,因此可以看出两个方法都比较极端。既然我们找到了两个极端的方法,那么我们可不可以找到两种方法的中间带呢?当然是可以的,这就是本节要介绍的泛化迭代法,英文一般称为Generalized Policy Iteration,但我觉得这个词里只出现Policy是不够准确的。

在这里插入图片描述

上面这条线是价值函数,价值函数是连续的,所以这条线并不难得到。而对于价值迭代的算法,则是一直在上面那条线上行走
图中的折线主要表达了策略迭代的算法,我们选定某个策略,求解价值函数,然后更新策略,这样优化的轨迹会不断地在两条主线上跳动。

泛化迭代:
我们先做几轮价值迭代,然后再做策略迭代,这样的方法同样可以得到正确的结果,但是可能会有更快的速度。

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

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

相关文章

电脑桌面文件删除了怎么找回来?别急,快速恢复攻略在此

在日常使用电脑的过程中,我们经常会遇到这样的情况:一不小心,桌面上的某个重要文件被删除了。这时,大多数人可能会感到惊慌失措,不知所措。 其实,不必过于担心,因为有很多方法可以帮助我们找回…

@开发者极客们,网易2024低代码大赛来啦

极客们,网易云信拍了拍你 9月6日起,2024网易低代码大赛正式开启啦! 低代码大赛是由网易主办的权威赛事,鼓励开发者们用低代码开发的方式快速搭建应用,并最终以作品决出优胜。 从2022年11月起,网易低代码大赛…

构建数字产业生态链,共绘数字经济新蓝图

在当今数字化浪潮席卷全球的时代,构建数字产业生态链成为了推动经济发展的关键引擎。数字产业生态链如同一个强大的磁场,吸引着各类创新要素汇聚,共同描绘出数字经济的宏伟新蓝图。 数字产业生态链的核心在于融合与协同。它将软件开发、数据分…

【原创】java+springboot+mysql学生信息管理系统设计与实现

个人主页:程序猿小小杨 个人简介:从事开发多年,Java、Php、Python、前端开发均有涉猎 博客内容:Java项目实战、项目演示、技术分享 文末有作者名片,希望和大家一起共同进步,你只管努力,剩下的交…

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时&#xff0c;发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null&#xff0c;再判断Count。 看了一下Count的源码如下&#xff1a; 1 [__DynamicallyInvokable] 2 public int Count 3 { 4 [__…

做了十几个数字化项目后,我对数字化转型的思考

现在讲数字化转型多是自顶向下视角&#xff0c;但企业仅提战略、目标还不够&#xff0c;必须把任务分配到每个团队及个人每天的工作中&#xff0c;这些工作与员工以前的工作不同&#xff0c;意味着团队和员工也要转型。 企业数字化转型口号再响亮&#xff0c;若一线员工工作内…

如何使用gewechat开发微信机器人

简介&#xff1a;本文将指导你如何搭建一个微信机器人&#xff0c;通过接入gewe实现智能回复与聊天功能。我们将从基础设置开始&#xff0c;逐步讲解如何配置机器人&#xff0c;并通过实例展示其实际应用。 随着人工智能技术的不断发展&#xff0c;智能机器人已经成为我们日常…

传输层协议TCP

本篇详细的讲解了有关传输层协议中 TCP 的常见知识&#xff0c;其中主要包括&#xff1a;TCP 协议段格式、确认应答机制、超时重传机制、连接管理机制&#xff08;三次握手和四次挥手&#xff09;、TIME_WAIT 和 CLOSE_WAIT 状态、滑动窗口、流量控制、延迟应答、捎带应答、面向…

宠物空气净化器352和希喂哪个品牌比较好?352、希喂宠物空气净化器终极PK

家里猫咪掉毛太厉害了怎么办&#xff1f;我家长毛、短毛猫都有&#xff0c;短毛还是猫界蒲公英银渐层&#xff0c;不会再有比曾经的我更受掉毛困扰的铲屎官了&#xff01;我曾经为了减少我家猫咪掉毛&#xff0c;鱼油、维生素A、维生素B5、碘营养物质都在喂&#xff0c;没啥用&…

table表格左键双击,单元格可编辑效果

1) 效果&#xff0c;修改内容后数据同步修改: 2) 思路 1、el-table提供了左键双击事件。 2、左键双击后&#xff0c;该单元格更改为input框后&#xff0c;input框需要获取焦点。 3、输入内容后&#xff0c;(回车按钮或者点击其他位置input框失去焦点)&#xff0c;数据需要更…

Django学习实战篇三(适合略有基础的新手小白学习)(从0开发项目)

前言&#xff1a; 在上一章中&#xff0c;我们对Django的Model层有了比较全面的认识&#xff0c;本章就来配置Django自带的admin。这里需要认识到&#xff0c;Django的Model层是很重要的一环&#xff0c;无论是对于框架本身还是对于基于Django框架开发的大多数系统而言。因为一…

私域电商 IP 化发展的探索与优势

摘要&#xff1a;本文聚焦于私域电商与社交电商的区别&#xff0c;重点探讨私域电商的 IP 属性。深入分析其在获取流量、转化用户以及挖掘用户价值方面的独特优势。同时引入链动 2 1 模式、AI 智能名片、S2B2C 商城小程序源码等元素&#xff0c;详细阐述这些元素在私域电商 IP…

前端:JavaScript中的this

前端&#xff1a;JavaScript中的this 1. this的指向2. 指定this的值3. 手写call方法4. 手写apply方法5. 手写bind方法 1. this的指向 在非严格模式下&#xff0c;总是指向一个对象&#xff1b;在严格模式下可以是任意值。 开启严格模式&#xff0c;如果是为整个脚本开启&#…

mapActions辅助函数的使用

什么是mapActions? mapActions 是 Vuex 提供的一个辅助函数&#xff0c;它允许你将组件中的方法映射为 Vuex 中的 Actions&#xff0c;以便于你可以直接从组件内部调用这些 actions。通过使用 mapActions 你可以在组件中以函数的方式引用 Vuex 中的 Actions&#xff0c;从而避…

个人随想-一道简单的AI面试题

大模型的兴起&#xff0c;很多公司现在都开始进入AI开发的新篇章&#xff0c;那么或多或少​也需要招聘一些AI的开发人员。 其实很多公司需要的&#xff0c;说白了就是一个AI开发工程师或者架构师&#xff0c;但是在招聘过程中&#xff0c;或多或少对要求写的太过夸张&#xf…

​在乙游热潮中,Soul App创新社交玩法,寻找年轻人的精神共鸣

经过8月份的连续事件,社会公众对于乙女游戏(下文简称乙游)有了全新的认知。 起初,是女子举重奥运冠军罗诗芳在社交平台与热门乙游《恋与深空》的意外互动,引发了广泛关注。“奥运冠军也玩乙游”成为社交平台热搜话题,众多玩家讨论奥运冠军是否会与他们有共同的虚拟角色喜好。 …

链动2+1:高效用户留存与增长的商业模式解析

大家好&#xff0c;我是吴军&#xff0c;任职于一家致力于创新的软件开发企业&#xff0c;担任产品经理的职位。今天&#xff0c;我打算深入分析一个历经时间考验且依旧充满活力的商业模式——“链动21”模式&#xff0c;并通过一个具体的案例和相关数据&#xff0c;展示它如何…

检测Meaven是否安装成功

一.配置本地仓库 1.创建一个文件夹用来存放jar包 2.解开第53行的注释,将存放jar包的路径复制 二.配置阿里云 三.配置jdk环境 1.JAVA_HOME 2.path地址里面配置BIN目录 四.配置Meaven_HOME 1.Meaven_HOME 2.path地址里面配置BIN目录 五.检查是否安装成功 1.mvn-v mvn -v 2.…

Redis 篇-深入了解分布式锁 Redisson 原理(可重入原理、可重试原理、主从一致性原理、解决超时锁失效)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 本章目录 1.0 基于 Redis 实现的分布式锁存在的问题 2.0 Redisson 功能概述 3.0 Redisson 具体使用 4.0 Redisson 可重入锁原理 5.0 Redisson 锁重试原理 6.0 Redisson WatchDo…

盘点:当养生茶遇上互联网,都有哪些打法?

健康行业电商大战早已拉开序幕&#xff0c;作为健康行业的一个大类——养生茶还能缺席么&#xff1f;三好夫人、同仁堂、东韵、九芝堂、余庆堂等等各路豪杰齐聚养生茶电商&#xff0c;看他们如何各显神通吧&#xff01; 三好夫人——一生只送一人 三好夫人以爱之名创立&#x…