深度强化学习(五)(蒙特卡洛与自举)

深度强化学习(五)(蒙特卡洛与自举)

一.蒙特卡洛与自举

上一节介绍了多步 TD 目标。单步 TD 目标、回报是多步 TD 目标的两种特例。如下图所示, 如果设 m = 1 m=1 m=1, 那么多步 TD 目标变成单步 T D \mathrm{TD} TD 目标。如果设 m = n − t + 1 m=n-t+1 m=nt+1, 那么多步 TD 目标变成实际观测的回报 u t u_t ut

蒙特卡洛

二.蒙特卡洛

我们可以将一局游戏进行到底, 观测到所有的奖励 r 1 , ⋯ , r n r_1, \cdots, r_n r1,,rn, 然后计算回报 u t = ∑ i = 0 n − t γ i r t + i u_t=\sum_{i=0}^{n-t} \gamma^i r_{t+i} ut=i=0ntγirt+i 。拿 u t u_t ut 作为目标, 鼓励价值网络 q ( s t , a t ; w ) q\left(s_t, a_t ; \boldsymbol{w}\right) q(st,at;w)接近 u t u_t ut 。定义损失函数:
L ( w ) = 1 2 [ q ( s t , a t ; w ) − u t ] 2 . L(\boldsymbol{w})=\frac{1}{2}\left[q\left(s_t, a_t ; \boldsymbol{w}\right)-u_t\right]^2 . L(w)=21[q(st,at;w)ut]2.

然后做一次梯度下降更新 w \boldsymbol{w} w :
w ← w − α ⋅ ∇ w L ( w ) , \boldsymbol{w} \leftarrow \boldsymbol{w}-\alpha \cdot \nabla_{\boldsymbol{w}} L(\boldsymbol{w}), wwαwL(w),

这样可以让价值网络的预测 q ( s t , a t ; w ) q\left(s_t, a_t ; \boldsymbol{w}\right) q(st,at;w) 更接近 u t u_t ut 。这种训练价值网络的方法被称作“蒙特卡洛”

蒙特卡洛的好处是无偏性: u t u_t ut Q π ( s t , a t ) Q_\pi\left(s_t, a_t\right) Qπ(st,at) 的无偏估计。由于 u t u_t ut 的无偏性, 拿 u t u_t ut 作为目标训练价值网络, 得到的价值网络也是无偏的。

蒙特卡洛的缺点是方差大。随机变量 U t U_t Ut 依赖于 S t + 1 , A t + 1 , ⋯ , S n , A n S_{t+1}, A_{t+1}, \cdots, S_n, A_n St+1,At+1,,Sn,An 这些随机变量, 其中不确定性很大。观测值 u t u_t ut 虽然是 U t U_t Ut 的无偏估计, 但可能实际上离 E [ U t ] \mathbb{E}\left[U_t\right] E[Ut] 很远。因此,拿 u t u_t ut 作为目标训练价值网络,收敛会较慢。

三.自举

在强化学习中,“自举”的意思是“用一个估算去更新同类的估算”,。SARSA使用的单步TD目标定义为:
y ^ t = r t + γ ⋅ q ( s t + 1 , a t + 1 ; w ) ⏟ 价值网络做出的估计  \widehat{y}_t=r_t+\underbrace{\gamma \cdot q\left(s_{t+1}, a_{t+1} ; \boldsymbol{w}\right)}_{\text {价值网络做出的估计 }} y t=rt+价值网络做出的估计  γq(st+1,at+1;w)
SARSA 鼓励 q ( s t , a t ; w ) q\left(s_t, a_t ; \boldsymbol{w}\right) q(st,at;w) 接近 y ^ t \widehat{y}_t y t, 所以定义损失函数
L ( w ) = 1 2 [ q ( s t , a t ; w ) − y ^ t ⏟ 让价值网络拟合  y ^ t ] 2 . L(\boldsymbol{w})=\frac{1}{2}[\underbrace{q\left(s_t, a_t ; \boldsymbol{w}\right)-\widehat{y}_t}_{\text {让价值网络拟合 } \widehat{y}_t}]^2 . L(w)=21[让价值网络拟合 y t q(st,at;w)y t]2.
自举的好处是方差小。单步 TD 目标的随机性只来自于 S t + 1 S_{t+1} St+1 A t + 1 A_{t+1} At+1, 而回报 U t U_t Ut 的随机性来自于 S t + 1 , A t + 1 , ⋯ , S n , A n S_{t+1}, A_{t+1}, \cdots, S_n, A_n St+1,At+1,,Sn,An 。很显然, 单步 T D \mathrm{TD} TD 目标的随机性较小, 因此方差较小。用自举训练价值网络,收敛比较快。

自举的缺点是有偏差。价值网络 q ( s , a ; w ) q(s, a ; \boldsymbol{w}) q(s,a;w) 是对动作价值 Q π ( s , a ) Q_\pi(s, a) Qπ(s,a) 的近似。因我们认为 y ^ t \hat y_t y^t是真实估计,是一常数,如果本身 y ^ t \hat y_t y^t就是有偏差的,则价值网络就会在逼近 y ^ t \hat y_t y^t中学习放大这一偏差。

也就是说, 自举会让偏差从 ( s t + 1 , a t + 1 ) \left(s_{t+1}, a_{t+1}\right) (st+1,at+1) 传播到 ( s t , a t ) \left(s_t, a_t\right) (st,at)

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

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

相关文章

数据链路层_以太网

IP协议确定数据跨网络从主机A到主机B的路径,即IP协议解决了路径选择问题,但在这之前,必须先解决数据在一个子网内的传输的问题。跨网络的本质就是跨多个子网,只要一个子网内可以通信,那么便可以跨网络通信。 一.以太…

B端界面又丑又乱,也不会总结规范,来,我给5个规范模板,照着学

发5个别人总结的规范,一定会对你的B端系统改进,有帮助的。

地理数据 vs. 3D数据

在表示我们周围的物理世界时,地理空间数据和 3D 建筑数据是两个最常见的选择。 他们在各个行业和项目中发挥着至关重要的作用。 从构建数字孪生到可视化城市景观和创建沉浸式应用程序。 尽管地理空间和 3D 建筑数据有相似之处,但它们不可互换。 虽然地…

安装snap再安装flutter再安装localsend@Ubuntu(FreeBSD下未成功)

Localsend介绍 localsend是一个跨平台的文件传送软件,可以在Windows、MacOS、Linux、Android和IOS下互相传送文件,只要在同一个局域网即可。 localsend官网:LocalSend 尝试安装localsend,发现需要使用flutter, 安装f…

ubuntu 安装 infiniband 和 RoCE 驱动

下载驱动程序 驱动程序地址 https://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/ 安装 安装参考文档 https://docs.nvidia.com/networking/display/mlnxofedv24010331/installing+mlnx_ofed#src-2571322208_InstallingMLNX_OFED-InstallationProced…

三次握手seq和ack的流程 TCP协议栈seq和ack深层理解

☆ 大家可以把想了解的问题在评论发给我?我会根据问题补充到后面 ☆ 三次握手seq和ack的流程 是的,在TCP/IP协议中,三次握手过程确实涉及到序列号(Sequence Number, 简称Seq)和确认号(Acknowledgment Number, 简称Ack)的交换。这个过程是为了建立可靠的连接,确保数据能…

多人聊天室 (epoll - Linux网络编程)

文章目录 零、效果展示一、服务器代码二、客户端代码三、知识点1.connect()2.socket()3.bind()4.send()5.recv() 四、改进方向五、跟练视频 零、效果展示 一个服务器作为中转站,多个客户端之间可以相互通信。至少需要启动两个客户端。 三个客户端互相通信 一、服务…

【复现】通天星CMS 安全监控云平台 SQL注入漏洞_64

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一: 四.修复建议: 五. 搜索语法: 六.免责声明 一.概述 通天星CMSV6拥有以位置服务、无线3G/4G视频传输、云存储服务为核心的研发团队,专注于为定位、无线视频终端产品提供平…

C#,T检验(T -Test)的算法与源代码

1 T-Test 学生t检验(英语:Students t-test)是指虚无假设成立时的任一检定统计有学生t-分布的统计假说检定,属于母数统计。学生t检验常作为检验一群来自正态分配母体的独立样本之期望值的是否为某一实数,或是二群来自正态分配母体的独立样本之期望值的差是否为某一实数。举…

突破编程_前端_JS编程实例(工具栏组件)

1 开发目标 工具栏组件旨在模拟常见的桌面软件工具栏,所以比较适用于 electron 的开发,该组件包含工具栏按钮、工具栏分割条和工具栏容器三个主要角色,并提供一系列接口和功能,以满足用户在不同场景下的需求: 点击工具…

初识Spring MVC

什么是Spring MVC? 官方给的解释是 Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从⼀开始就包含在 Spring 框架中。它的 正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-webmvc),但它通常被称为"Spring MVC" 注:Severlet是…

c语言按位与,按位或,按位异或,按位取反

1、按位与& 按位与的实现逻辑是相同为1,相异为0; 2、按位或 | 按位或的实现逻辑是有1为1,无一为0; 3、按位异或 ^ 按位或的实现逻辑是相同为0,相异为1; 4、按位取反 ~ 按位取反的实现逻辑是0改1&am…

软件测试之学习测试用例的设计(等价类法、边界值法、错误猜测法、场景法、因果图法、正交法)

1. 测试用例的概念 软件测试人员向被测试系统提供的一组数据的集合,包括 测试环境、测试步骤、测试数据、预期结果 2. 为什么在测试前要设计测试用例 测试用例是执行测试的依据 在回归测试的时候可以进行复用 是自动化测试编写测试脚本的依据 衡量需求的覆盖率…

自动驾驶---Motion Planning之构建SLT Driving Corridor

1 背景 在上篇博客《自动驾驶---Motion Planning之Speed Boundary》中,主要介绍了Apollo中Speed Boundary的一些内容,可以构造ST图得到边界信息,最后结合粗糙的速度曲线和路径曲线,即可使用优化的方法求解得到最终的轨迹信息(s,s,s,l,l,l)。 本篇博客笔者主要介绍近…

sqllab第十八关通关笔记

知识点: UA注入 不进行url解析,不能使用 %20 编码等操作出现在User-agent字段中一般为insert语句 insert 表名(字段1,字段2,。。。) values(数据1,数据2,。。。) 通过admin admin进行登录发现页面打印出了…

vue防止用户连续点击造成多次提交

中心思想:在第一次提交的结果返回前,将提交按钮禁用。 方法一:给提交按钮加上disabled属性,在请求时先把disabled属性改成true,在结果返回时改成false 方法二:添加loading遮罩层,可以直接使用e…

Redis应用与原理(一)

更好的阅读体验 \huge{\color{red}{更好的阅读体验}} 更好的阅读体验 缓存发展史 缓存经典场景 在没有引入缓存前,为了应对大量流量,一般采用: LVS 代理Nginx 做负载均衡搭建 Tomcat 集群 这种方式下,随着访问量的增大&#xf…

Unity3d版白银城地图

将老外之前拼接的Unity3d版白银城地图,导入到国内某手游里,改成它的客户端地图模式,可以体验一把手游的快乐。 人物角色用的是它原版的手游默认的,城内显示效果很好,大家可以仔细看看。 由于前期在导入时遇到重大挫折&…

GPT实战系列-LangChain构建自定义Agent

GPT实战系列-LangChain构建自定义Agent LangChain GPT实战系列-LangChain如何构建基通义千问的多工具链 GPT实战系列-构建多参数的自定义LangChain工具 GPT实战系列-通过Basetool构建自定义LangChain工具方法 GPT实战系列-一种构建LangChain自定义Tool工具的简单方法 GPT…

torch.nn.Conv2d()与slim.conv2d()函数参数详解

目录 1. tf.nn.conv2d()函数1.1 input:1.2 filter:1.3 strides:1.4 padding: 2.tf.contrib.slim.conv2d()函数3. torch.nn.Conv2d()函数3.1 官方例子: 1. tf.nn.conv2d()函数 tensorflow构建网络模型时常用的卷积函数…