PPO代码理解

目录

# Finding the ratio (pi_theta / pi_theta__old): ratios = torch.exp(logprobs - old_logprobs.detach()) 

advantages = rewards - state_values.detach()

surr1 = ratios * advantages

surr2 = torch.clamp(ratios, 1-self.eps_clip, 1+self.eps_clip) * advantages

loss = -torch.min(surr1, surr2) + 0.5*self.MseLoss(state_values, rewards) - 0.01*dist_entropy

为什么最大化用新旧策略概率比率乘以优势函数,即ratios * advantages这个式子就可以代表最大化收益?

详细解释一下上面回答的第一个公式,即策略梯度定理给出的策略参数的梯度形式

详细解释一下0.5*self.MseLoss(state_values, rewards)它的意义

为什么价值网络可以估计在给定状态下,智能体未来能获得的总奖励的期望值,它是怎么估计出来的?

详细解释一下0.01*dist_entropy它的意思

优势函数 A(s,a) 表示在状态 s 下采取动作 a 相对于平均水平的优劣程度。正值表示该动作优于平均水平,负值表示该动作劣于平均水平。为什么state_values可以代表平均水平

V(s)在代码中只是个神经网络呀,输入736个特征,输出一个值,为什么它就是对所有可能动作的期望奖励的估计

PPO的第二项:0.5*self.MseLoss(state_values, rewards),是让状态-动作值函数Q(s,a)接近状态值函数V(s),可是状态-动作值函数Q(s,a)意思是在某个状态 s 下采取动作 a 所能带来的预期奖励,而状态值函数V(s)意思是在状态 s 下采取所有可能动作的平均奖励,这两个不是一个东西呀,为什么损失函数想让他俩越接近越好

状态-动作值函数Q(s,a)意思是采取动作 a 所能带来的预期奖励,而状态值函数V(s)意思是采取所有可能动作的平均奖励,采取的动作都不一样,为什么要让他们接近

状态-动作值函数Q(s,a)意思是采取动作 a 所能带来的预期奖励,而状态值函数V(s)意思是采取所有可能动作的平均奖励,采取的动作都不一样,状态值函数V(s)神经网络的意思是让采取所有可能动作的平均奖励接近采取动作 a 所能带来的预期奖励吗


# Finding the ratio (pi_theta / pi_theta__old): 
ratios = torch.exp(logprobs - old_logprobs.detach()) 

# Finding the ratio (pi_theta / pi_theta__old): 
ratios = torch.exp(logprobs - old_logprobs.detach())

 


advantages = rewards - state_values.detach()

advantages = rewards - state_values.detach()


surr1 = ratios * advantages

surr1 = ratios * advantages


surr2 = torch.clamp(ratios, 1-self.eps_clip, 1+self.eps_clip) * advantages

surr2 = torch.clamp(ratios, 1-self.eps_clip, 1+self.eps_clip) * advantages


loss = -torch.min(surr1, surr2) + 0.5*self.MseLoss(state_values, rewards) - 0.01*dist_entropy

loss = -torch.min(surr1, surr2) + 0.5*self.MseLoss(state_values, rewards) - 0.01*dist_entropy


为什么最大化用新旧策略概率比率乘以优势函数,即ratios * advantages这个式子就可以代表最大化收益?

\pi代表策略,某个状态在该策略下选择该动作的概率乘以选择该动作后的收益,最大化这个值。期望E是对一批数据求平均。 


详细解释一下上面回答的第一个公式,即策略梯度定理给出的策略参数的梯度形式


详细解释一下0.5*self.MseLoss(state_values, rewards)它的意义


为什么价值网络可以估计在给定状态下,智能体未来能获得的总奖励的期望值,它是怎么估计出来的?


详细解释一下0.01*dist_entropy它的意思


优势函数 A(s,a) 表示在状态 s 下采取动作 a 相对于平均水平的优劣程度。正值表示该动作优于平均水平,负值表示该动作劣于平均水平。为什么state_values可以代表平均水平


V(s)在代码中只是个神经网络呀,输入736个特征,输出一个值,为什么它就是对所有可能动作的期望奖励的估计


PPO的第二项:0.5*self.MseLoss(state_values, rewards),是让状态-动作值函数Q(s,a)接近状态值函数V(s),可是状态-动作值函数Q(s,a)意思是在某个状态 s 下采取动作 a 所能带来的预期奖励,而状态值函数V(s)意思是在状态 s 下采取所有可能动作的平均奖励,这两个不是一个东西呀,为什么损失函数想让他俩越接近越好


状态-动作值函数Q(s,a)意思是采取动作 a 所能带来的预期奖励,而状态值函数V(s)意思是采取所有可能动作的平均奖励,采取的动作都不一样,为什么要让他们接近


状态-动作值函数Q(s,a)意思是采取动作 a 所能带来的预期奖励,而状态值函数V(s)意思是采取所有可能动作的平均奖励,采取的动作都不一样,状态值函数V(s)神经网络的意思是让采取所有可能动作的平均奖励接近采取动作 a 所能带来的预期奖励吗

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

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

相关文章

【数据分析实战】—预测宠物收养状况数据分析

文章目录 数据集数据集描述特征用途注意 宠物收养预测环境准备探索数据帧数据预处理机器学习数据预处理:模型培训和评估:合奏学习: 添加底部名片获取数据集吧! 数据集 数据集描述 宠物收养数据集提供了对各种因素的全面调查&…

【Linux】UNIX体系结构分解——操作系统,内核,shell

1.什么是操作系统? 从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境。我们通常将这种软件称为内核(kerel),因为它相对较小,而且位于环境的核心。 从广义上…

前端开发接单公司做到哪些点,客户才愿意把项目包给你。

作为前端外包接单公司,你知道客户选择和你合作都看中哪些因素吗?单纯是价格吗?未必,本位给大家列举7个要素,并对每个要素做了定位,大家查缺补漏吧。 作为前端外包接单公司,要吸引同行客户将前端…

【初阶数据结构】深入解析栈:探索底层逻辑

🔥引言 本篇将深入解析栈:探索底层逻辑,理解底层是如何实现并了解该接口实现的优缺点,以便于我们在编写程序灵活地使用该数据结构。 🌈个人主页:是店小二呀 🌈C语言笔记专栏:C语言笔记 &#x1…

【Altium】打开原理图是空白的解决方法

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 打开画完的原理图,报错提示并且图纸为空白的解决方法 2、 问题场景 收到其他人画好的原理图,打开后提示报错:Load file error:值对于无符号的字节太大或太小。并且原理图显示为空…

java基于ssm+jsp 美食推荐管理系统

1前台首页功能模块 美食推荐管理系统,在系统首页可以查看首页、热门美食、美食教程、美食店铺、美食社区、美食资讯、我的、跳转到后台等内容,如图1所示。 图1前台首页功能界面图 用户注册,在注册页面可以填写用户名、密码、姓名、联系电话等…

【shell脚本速成】mysql备份脚本

文章目录 案例需求脚本应用场景:解决问题脚本思路实现代码 🌈你好呀!我是 山顶风景独好 🎈欢迎踏入我的博客世界,能与您在此邂逅,真是缘分使然!😊 🌸愿您在此停留的每一刻…

【计算机体系结构】

第一章 计算机体系结构的基本概念 知识点 1.冯诺依曼描述的计算机的四个部分 2.指令驱动 3.存储程序计算机在体系结构上的主要特点 4.计算机体系结构的三个方面 5.计算机组成 6.计算机系统的多层次结构 7.翻译和解释 8.一种指令集结构可以有多种组成,同样一种组成可…

【八股系列】shouldComponentUpdate是为了解决什么问题?(React)

🎉 博客主页:【剑九 六千里-CSDN博客】 🎨 上一篇文章:【说一下mobx和redux有什么区别?(React)】 🎠 系列专栏:【面试题-八股系列】 💖 感谢大家点赞👍收藏⭐评论✍ 文章…

Spire.PDF for .NET【文档操作】演示:设置 PDF 文档的 XMP 元数据

XMP 是一种文件标签技术,可让您在内容创建过程中将元数据嵌入文件本身。借助支持 XMP 的应用程序,您的工作组可以以团队以及软件应用程序、硬件设备甚至文件格式易于理解的格式捕获有关项目的有意义的信息(例如标题和说明、可搜索的关键字以及…

PSL400PC10P80、PSL410PC10P100、PSL420PC10P60比例换向阀放大器

PSL100PC10P60、PSL110PC10P80、PSL120PC10P100、PSL200PC10P80、PSL210PC10P60、PSL220PC10P100、PSL400PC10P80、PSL410PC10P100、PSL420PC10P60、PSL500PC10P100、PSL510PC10P80、PSL520PC10P100、PSL600PC10P60、PSL610PC10P100、PSL620PC10P60、PSL700PC10P80、PSL710PC10…

vue2和vue3分别如何全局引入并使用js

如下js:util/tool.js var tool {nullKeyValueConvertLine(data){if(data && data.length > 0){data.map((item,index)>{for(var key in item){if(!item[key]&&item[key]!0){item[key] -}}})}}, } export default tool 在vue2项目中全局引…

Android使用DevRing框架搭建数据库实体类以及使用

一、引用DevRing依赖 //导入DevRing依赖implementation com.ljy.ring:devring:1.1.8创建数据库表的依赖implementation org.greenrobot:greendao:3.2.2 // add libraryimplementation org.greenrobot:greendao-generator:3.0.0 二、修改工程目录下的.idea->gradle.xml文件&…

算法与数据结构面试宝典——回溯算法详解(C#,C++)

文章目录 1. 回溯算法的定义及应用场景2. 回溯算法的基本思想3. 递推关系式与回溯算法的建立4. 状态转移方法5. 边界条件与结束条件6. 算法的具体实现过程7. 回溯算法在C#,C中的实际应用案例C#示例C示例 8. 总结回溯算法的主要特点与应用价值 回溯算法是一种通过尝试…

C++:STL容器-map

C:STL容器-map 1. map构造和赋值2. map大小和交换3. map插入和删除4. map查找和统计5. map容器排序 map中所有元素都是pair(对组) pair中第一个元素为key(键),起到索引作用,第二个元素为value(实…

移远通信SC200L(展锐SL8541E)Linux系统修改分区大小

一、确定大小 由于默认的根文件分区大小仅500M,/lib目录移植个app都放不进去,这谁受得了? userdata分区却有6G,匀一点。 在 prebuilts/pac-binary/sl8541e/ 下有分区信息表 sl8541e-emmc-marlin2.xml: 找到system项&a…

通过言语和非言语检索线索描绘睡眠中的记忆再激活茗创科技茗创科技

摘要 睡眠通过重新激活新形成的记忆痕迹来巩固记忆。研究睡眠中记忆再激活的一种方法是让睡眠中的大脑再次暴露于听觉检索线索(定向记忆再激活范式)。然而,记忆线索的声学特性在多大程度上影响定向记忆再激活的有效性,目前还没有得到充分探索。本研究通…

华为仓颉语言:编程语言的新篇章

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

多物理场仿真对新能源汽车用电机优化分析 衡祖仿真

1、问题所在 为了改善空气质量,减少环境污染,减少对石油的依赖,降低能源安全风险,国家大力倡导发展新能源汽车,大量新能源车企应运而生,竞争日趋激烈。使用经济效率较高的电机对于增强企业市场竞争力非常重…

【火猫体育】欧洲杯:苏格兰VS匈牙利焦点大战

北京时间6月24日,欧洲杯A组苏格兰VS匈牙利的焦点大战将正式打响。这场比赛对于苏格兰队来说不容有失,因为球队必须战胜对手才能有希望从小组赛出线,晋级本届欧洲杯16强。苏格兰在欧洲杯首战,就被东道主德国队上了一课。德国队在比…