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,一经查实,立即删除!

相关文章

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

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

企微私域运营中的四大内容运营模块深度解析

在当前的数字营销时代,企业微信(企微)私域流量运营已成为企业获取用户、建立品牌、提升转化的重要手段。而在企微私域运营中,内容运营作为核心环节,其重要性不言而喻。本文将详细解析企微私域运营中的四大内容运营模块…

ES6新增语法

1、ECMA Ecma国际(Ecma International)是一家国际性会员制度的信息和电信标准组织。1994年之前,名为欧洲计算机制造商协会(European Computer Manufacturers Association) 2、ECMAScript ECMAScript 6(简…

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

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

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

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

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

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

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

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

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

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

局域网内vue2 配置本地IP地址访问项目

在日常开发中同事可能需要访问你的前端项目,可以通过配置实现通过ip访问 一.首先找到config文件夹目录下的 index.js文件 将此处的host的值修改为0.0.0.0(即 host: 0.0.0.0) // Various Dev Server settings//host: localhost //将localhost进行替换成 0.0.0.0hos…

Windows 7提权:技术解析与实战指南

Windows 7提权:技术解析与实战指南 在网络安全领域,提权是指通过某些手段获取系统更高权限的过程。对于渗透测试人员或安全研究人员来说,提权是常见且关键的一步,它允许他们更深入地了解系统的安全状况。本文将详细解析Windows 7…

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

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

【计算机体系结构】

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

高考专业抉择结合兴趣、能力、职业规划,理性看待计算机专业的发展前景。

作为一名即将参加2024年高考的学生,我对此问题深感关注。在过去几年里,计算机科学与技术、人工智能、网络安全、软件工程等专业一直被视为热门专业,吸引了大量学生的青睐。然而,随着市场竞争加剧和市场饱和度提高,这些…

如何加载数据库驱动以及JDBC驱动有哪些类型?

加载数据库驱动是JDBC中非常重要的第一步,因为它使得Java应用程序能够与数据库进行通信。加载数据库驱动通常通过调用Class.forName()方法实现,该方法接受一个字符串参数,该字符串参数是数据库驱动程序的完全限定类名。 以下是如何加载数据库…

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

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

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

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

java解析Excel部分数据小数位过长问题

java解析Excel部分数据小数位过长问题 解释: 在Java中解析Excel文件时,如果遇到数据为小数类型但小数位过长(例如显示为1.2345678912345678E10),这通常是因为Excel对于数字单元格有一个默认的显示格式,当…

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文件&…