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

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

一.蒙特卡洛与自举

上一节介绍了多步 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://xiahunao.cn/news/2868678.html

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

相关文章

compile→错误: 不支持发行版本 17

错误: 不支持发行版本 17 具体错误描述如下: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile (default-compile) on project big-event: Fatal error compiling: 错误: 不支持发行版本 17 -> [Help 1] [ERROR] …

Chapter 13 Techniques of Design-Oriented Analysis: The Feedback Theorem

Chapter 13 Techniques of Design-Oriented Analysis: The Feedback Theorem 从这一章开始讲负反馈Control系统和小信号建模. 13.2 The Feedback Theorem 首先介绍 Middlebrook’s Feedback Theorem 考虑下面负反馈系统 传输函数 Guo/ui G ( s ) u o u i G ∞ T 1 T G…

Artemis Finance引领Metis流动性质押,并启动积分空投活动

在以太坊可扩展性解决方案中, Optimism、Arbitrum等Layer2链主要面临两个问题:欺诈/有效性证明以及去中心化排序器Sequencers。在实际的发展过程中,Optimism或Arbitrum等Layer2链仍然侧重于在欺诈证明和有效性证明方面进行努力,在…

2024年AI辅助研发趋势

标题 《2024年AI辅助研发趋势》摘要 🚀引言 🌟技术进展:AI在研发中的革命性应用 💡行业应用案例:AI助力解决复杂研发难题 🏭面临的挑战与机遇:化解难题迎接未来 🛠️未来趋势预测&am…

在命令行中输入py有效,输入python无效,输入python会跳转到microsoft store

这里写自定义目录标题 如果你已经尝试过将python添加到系统变量如果你还未将python添加到系统变量没有python安装包且没有配置系统变量 如果你已经尝试过将python添加到系统变量 打开 运行,输入cmd,在命令行中输入 where python。 如果看到了这个 win…

【海贼王的数据航海】排序——概念|直接插入排序|希尔排序

目录 1 -> 排序的概念及其运用 1.1 -> 排序的概念 1.2 -> 常见的排序算法 2 -> 插入排序 2.1 -> 基本思想 2.2 -> 直接插入排序 2.2.1 -> 代码实现 2.3 -> 希尔排序(缩小增量排序) 2.3.1 -> 代码实现 1 -> 排序的概念及其运用 1.1 -&g…

C++ //练习 10.35 使用普通迭代器逆序打印一个vector。

C Primer(第5版) 练习 10.35 练习 10.35 使用普通迭代器逆序打印一个vector。 环境:Linux Ubuntu(云服务器) 工具:vim 代码块 /********************************************************************…

vue学习笔记26-插槽Slots

插槽Slots 组件接收模板内容&#xff08;html结构&#xff09;&#xff0c;在某些场景中我们想要为子组件传递一些模板片段。让子组件在它们的组件中渲染这些片段 将子组件在父组件引用后&#xff0c;比以往更改一下,将<子组件名/>➡️<子组件名></子组件名&g…

调皮的String及多种玩法(下部)

&#x1f468;‍&#x1f4bb;作者简介&#xff1a;&#x1f468;&#x1f3fb;‍&#x1f393;告别&#xff0c;今天 &#x1f4d4;高质量专栏 &#xff1a;☕java趣味之旅 欢迎&#x1f64f;点赞&#x1f5e3;️评论&#x1f4e5;收藏&#x1f493;关注 &#x1f496;衷心的希…

redis 入门01

1.安装与配置 在官网下压缩包并传送给自己的虚拟机或者使用wget直接下载都可以 注意:redis是运行在linux下的基于内存的kv键值对数据库 安装与配置参考 2.经典Hello World 注意设置redis在后台运行,默认是前台进行的 我们配置完成之后首先启动服务器 redis-server 配置文件 这里…

【NTN 卫星通信】 TN和多NTN配合的应用场景

1 场景描述 此场景描述了农村环境&#xff0c;其中MNO (运营商TerrA)仅在城市附近提供本地地面覆盖&#xff0c;而MNO (SatA)提供广泛的NTN覆盖。SatA使用GSO轨道和NGSO轨道上的卫星。SatA与TerrA有漫游协议&#xff0c;允许:   所有TerrA用户的连接&#xff0c;当这些用户不…

浅易理解:卷积神经网络(CNN)

浅易理解卷积神经网络流程 本文的目录&#xff1a; 1 什么卷积神经网络 2 输入层 3 卷积层 4 池化层 5 全连接层 传统的多层神经网络只有 输入层、隐藏层、输出层 卷积神经网络&#xff08;CNN)&#xff1a; 在多层神经网络的基础上&#xff0c;加入了更加有效的特征学习部分…

【开源】SpringBoot框架开发房屋出售出租系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 房屋销售模块2.2 房屋出租模块2.3 预定意向模块2.4 交易订单模块 三、系统展示四、核心代码4.1 查询房屋求租单4.2 查询卖家的房屋求购单4.3 出租意向预定4.4 出租单支付4.5 查询买家房屋销售交易单 五、免责说明 一、摘…

EOS 与ESD 区别

ESD: 英文&#xff1a;Electrical Static Discharge&#xff1b; 定义&#xff1a;不同静电电位的两个物体之间的电荷转移&#xff1b;中文释为静电放电。静电是一种客观的自然现象&#xff1b; EOS&#xff1a; 英文&#xff1a;Electrical Over Stress 定义&#xf…

C++:类之六脉神剑——默认成员函数

个人主页&#xff1a;日刷百题 系列专栏&#xff1a;〖C/C小游戏〗〖Linux〗〖数据结构〗 〖C语言〗 &#x1f30e;欢迎各位→点赞&#x1f44d;收藏⭐️留言&#x1f4dd; ​ ​ 一、默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为 空类 。 空类中真的什么都…

轻松搞定找不到vcomp140.dll无法继续执行程序的5种方法

在我们日常使用计算机的过程中&#xff0c;频繁且不可避免地会遭遇到各种类型的错误提示信息&#xff0c;这些错误信息往往会在关键时刻阻碍我们的操作进程。其中&#xff0c;有一个颇为常见的错误提示值得我们关注&#xff0c;那就是“vcomp140.dll丢失”。这个错误提示涉及到…

HCIP的学习(1)

一、HCIA复习 抽象语言&#xff08;文字、语音、图片&#xff09;----->电脑可以识别的机器语言本地计算机处理步骤&#xff1a; 抽象语言---->编码 编码------->二进制数 二进制数---->电信号 处理电信号OSI/RM七层参考模型 分层----核心思想 应用层---->人机…

开环端到端自动驾驶: 到底行不行

开环端到端自动驾驶&#xff1a; 到底行不行 附赠全面专业的自动驾驶学习资料&#xff1a;直达链接 TLDR: 别在nuScenes上做开环端到端自动驾驶刷点了。 论文&#xff1a; https://arxiv.org/pdf/2312.03031.pdf github: https://github.com/NVlabs/BEV-Planner 前言 Uni…

MySQL语法分类 DQL(4)聚合函数

为了更好的学习这里给出基本表数据用于查询操作 create table student (id int, name varchar(20), age int, sex varchar(5),address varchar(100),math int,english int );insert into student (id,name,age,sex,address,math,english) values (1,马云,55,男,杭州,66,78),…

个人博客系列-后端项目-用户注册功能(7)

介绍 用户注册API的主要流程&#xff1a;1.前端用户提交用户名&#xff0c;密码 2. 序列化器校验用户名&#xff0c;密码是否合法。3.存入数据库。4.签发token 创建序列化器 from rest_framework import serializers from rest_framework_simplejwt.serializers import Toke…