[PyTorch][chapter 66][强化学习-值函数近似]

前言

                现实强化学习任务面临的状态空间往往是连续的,无穷多个。

这里主要针对这种连续的状态空间处理。后面DQN 也是这种处理思路。

目录:

   1: 原理

   2: 梯度更新

   3: target 和 预测值

   4     流程


一 原理

       强化学习最重要的是得到 值函数,或者动作-状态值函数,

  根据值函数可以得到最优策略。

   当状态空间为连续的时候,表达为状态的线性函数

     V_{\theta}(x)=\theta^{T}x

     x:状态向量

    \theta: 向量参数

        我们希望通过上面公式学得的值函数尽可能接近真实的V^{\pi},近似度经常用最小二乘误差度量

   E_{\theta}=E_{x \sim \pi}[V^{\pi}(x)-V_{\theta}(x)]^2

  E_{x \sim \pi}  表示由策略采样得到的状态上的期望


二  梯度更新

     为了使得误差最小,采用梯度下降法,对误差求梯度导数

      \frac{\partial E}{\partial \theta}=E_{x \sim pi}[2(V^{\pi}(x)-V_{\theta}(x))x]

     于是可得到对于单个样本的更新规则

     \theta= \theta+\alpha(V^{\pi}(x)-V_{\theta}(x))x


三 预测值 和  target 

     我们并不知道策略的真实值函数 V^{\pi},可以借助时序差分学习,

基于 v^{\pi}(x)=r+\gamma V^{\pi}(x^{'}) 用当前估计的值函数替代真实的值函数,

 则

   \theta =\theta +\alpha(r+\gamma V_{\theta}(x^{'})-V_{\theta}(x))x

       =\theta+\alpha(r+\gamma \theta^{T}x^{'}-\theta^{T}x)x

       在时序差分学习中,需要 状态-动作函数以获取策略,这里一种简单的做法

是令\theta 作用于状态和动作的联合向量上,例如给状态向量增加一维用于存放

动作编号,(x,a),另一种做法是对动作变量a 进行one-hot 编码,再合并到x.

 

   训练的时候:

     预测值: v_{\theta}(x)

     target:   r+\gamma V_{\theta}(x^{'})


四  流程

   

 

   

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大中小协作 共筑科学梦——华中科技大学附属花城中学举办首届科技节

为普及科学知识,张扬科学精神,创设浓郁的科学氛围,11月24日,华中科技大学附属花城中学举办了以“走近科学,触碰未来”为主题的首届科技节暨科创文化展示周活动。学生们在学习中感受科技的魅力,在“玩”中感…

ChatGPT文章批量改写伪原创软件说明文档

大家好,我是淘小白~ 最近有很多朋友咨询,chatGPT文章改写插件和改写软件,这个软件之前已经做出来了,用的朋友不是很多,这几天有不少咨询的,现在把说明文档补一下,(#^.^#) 1、软件语言 Pytho…

初出茅庐的小李之C语言必备知识预处理

编译预处理 编译预处理就是在编译源代码之前进行的一系列处理,将源程序中的一些特殊命令进行展开或处理,生成扩展的源代码。这些特殊命令通常以“#”开头,占单独的行,语句尾部不需要加分号。 宏定义 (#define)是一种常见的编译…

Kotlin学习——流程控制,when,循环,range工具 kt里的equals if实现类似三元表达式的效果

Kotlin 是一门现代但已成熟的编程语言,旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作,并提供了多种方式在多个平台间复用代码,以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…

张弛声音变现课,惊悚电影配音篇

在提供惊悚片的声音配音服务时,配音员旨在制造一种让观众的心率加快、情绪紧张的气氛。惊悚片侧重于心理层面的紧张和预期的恐怖,声音在塑造这种心理效应中起到了至关重要的作用。演员需通过对声音的精细雕琢和调整来强化电影的悬念和紧迫感。以下是为惊…

C语言SO EASY(ZZULIOJ1220: SO EASY)

题目描述 Superbin最近在研究初等数论,初等数论 是研究数的规律,特别是整数性质的数学分支。它是数论的一个最古老的分支。它以算术方法为主要研究方法,主要内容有整数的整除理论、同余理论、连分数理论和某些特殊不定方程。 是定义在正整数…

2017年2月16日 Go生态洞察:Go 1.8版本的革新

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

rocky8.9配置K8S集群kubernetes,centos同理

rocky8.9配置K8S集群 节点主机名IP地址mastertang1192.168.211.101node1tang2192.168.211.102node2tang3192.168.211.103 1)准备工作 全部主机都配置静态ip vi /etc/sysconfig/network-scriptsTYPEEthernet PROXY_METHODnone BROWSER_ONLYno BOOTPROTOstatic DE…

华为ensp:单臂路由

通过单臂路由实现vlan之间的互通 将vlan和trunk配置好,我直接就在r1上演示单臂路由 我们要在r1的e0/0/0上面随便配置个ip,如果你不在接口上配置ip那就无法开启协议 R1 interface e0/0/0 进入真实接口随便配置个ip ip add 192.168.10.1 24 再进入子接…

YOLOV7主干改进,使用fasternet轻量化改进主干(完整教程)

1,Pconv(来自Fasternet)(可作为模型中的基础卷积模块使用) 论文链接:https://arxiv.org/abs/2303.03667 2,为了大家方便的使用,这里我对原本的PConv的代码做了部分的改动&#xff0…

Executors(线程池操作类)

一,常用方法 二,案例 package XianChengChildren;import java.util.concurrent.*;public class ThewadPoolTest1 {public static void main(String[] args) throws Exception { // ExecutorService pool new ThreadPoolExecutor(3,5,8, // …

C++类与对象(6)—初始化列表、explicit关键字、static成员

目录 一、初始化列表 1、定义 2、注意事项 3、尽量使用初始化列表初始化 4、初始化顺序 二、 explicit关键字 1、定义 三、static成员 1、定义 2、特性 3、例题 一、初始化列表 下面这段代码可以正常编译: class A { private:int _a1;//成员声明int…

企业海外分部,如何实现安全稳定的跨境网络互连?

如今,众多企业广泛采取数字化业务系统,如OA、ERP及CRM等,来提升其业务运营效率。同时,私有云与公有云混合架构也逐渐普及化。 具体来说,很多企业选择将研发系统部署在公司本地的私有云环境,以此确保数据安全…

pgz easyexcel如何给excel文件添加自定义属性

免费API方式 直接上传URL,自定义修改Excel 视频演示【内含接口地址】 https://www.ixigua.com/7304510132812153385 前情提示 | 功能说明 多选仅支持微软office、office365系列Excel。因为WPS宏功能需要企业版且付费生成xlsx、xlsm等文件,office和WPS均可以打开,均可以单…

BTC 复兴:Ordinals 带来创新活力,BitVM 与 BitStream 相继问世

除了备受瞩目的 ETF,今年 Bitcoin 生态迎来全新的发展活力和机遇。Ordinals 协议的横空出世,以此为基础诞生的 BRC20 协议给整个比特币生态带去了一波新的能量,迎来铭文热度高涨。而诸如 BitVM、BitStream 等新技术甫一问世,便引发…

学习分布式事务Seata看这一篇就够了,建议收藏

一、事务的特性 ACID特性 A(Atomic):原子性,构成事务的所有操作,要么都执行完成,要么全部不执行,不可能出现部分成功部分失败的情况。 C(Consistency):一致…

Python编程技巧 – Lambda函数

Python编程技巧 – Lambda函数 Python Programming Skills – Lambda Functions By JacksonML 2023-11-25 在前文介绍过Python函数,一个函数用def关键字声明,不带或带有参数,并以冒号结束;函数块根据结果由解释器确定返回值动态…

计数问题+约瑟夫问题(map)

目录 一、计数问题 二、约瑟夫问题 一、计数问题 #include<iostream> #include<map> using namespace std; int main() {int n,x;cin>>n>>x;map<int,int>m;for(int i1;i<n;i){if(i>1 && i<10){m[i];}else{int temp i;while (…

MYSQL基础知识之【添加数据,查询数据】

文章目录 前言MySQL 插入数据通过命令提示窗口插入数据使用PHP脚本插入数据 MySQL 查询数据通过命令提示符获取数据使用PHP脚本来获取数据内存释放 后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;Mysql &#x1f431;‍&#x1f453;博…