强化学习(TD3)

news2024/11/29 4:51:13

TD3——Twin Delayed Deep Deterministic policy gradient 双延迟深度确定性策略梯度

TD3是DDPG的一个优化版本,旨在解决DDPG算法的高估问题

优化点:

双重收集:采取两套critic收集,计算两者中较小的值,从而克制收集过估量成绩。

DDPG源于DQN,DQN源于Q_learning,这些算法都是通过估计Q值来寻找最优的策略,在强化学习中,更新Q网络的目标值target为:y=r+\gamma max_{a^{'}}Q\left ( s^{'}, a^{'} \right ),因为样本存在噪声\epsilon,所以真实情况下,有误差的动作价值估计的最大值通常会比真实值更大:E_{\epsilon }\left [ max_{a^{'}}\left ( Q\left ( s^{'},a^{'} \right )+\epsilon \right ) \right ]\geq max_{a^{'}}Q\left ( s^{'},a^{'} \right )

这就不可避免的降低了估值函数的准确度,由于估值方法的计算依据贝尔曼方程,即使用后续状态对估计值进行更新,这种性质又加剧了精确度的下降,在每一次更新策略时,使用一个不准确的估计值将会导致错误被累加,这些贝雷架的错误会导致某一个不好的状态被高估,最终导致策略无法被优化到最优,并使算法无法被收敛。

目标策略平滑正则化:在计算目标值时,加上扰动,从而使得评价更加准确。

延迟更新:让目标网络与当前网络更新不同步,当前网络更新d次之后再对traget网络进行更新;critic更新多次后,actor更新,critic的更新频次多于actor的

伪代码:

采用随机参数\theta _{1}\theta _{2}\phi初始化critic网络Q_{\theta _{1}}Q_{\theta _{2}}以及actor网络\pi _{\phi }

初始化目标critic、actor网络:\theta _{1}^{'}\leftarrow \theta _{1}\theta _{2}^{'}\leftarrow \theta _{2}\phi ^{'}\leftarrow \phi

初始化回放缓存区R

for t=1 to T do

        选择动作并添加探索噪声a=\pi _{\phi }\left ( s \right )+\epsilon\epsilon服从某种分布,执行动作后获得奖励r和新的状态s^{'},将经验值\left ( s, a, r, s^{'} \right )存入回放缓存区

        从回放缓存区中抽取小批量样本数据:

                \tilde{a}\leftarrow \pi _{\phi ^{'}}\left ( s^{'} \right )+\epsilon

                y\leftarrow r+\gamma min_{i=1,2}Q_{\theta _{i}^{'}}\left ( s^{'},\tilde{a} \right )

        更新critic网络参数:\theta _{i}\leftarrow argmin_{\theta _{i}}N^{-1}\sum_{}^{}\left ( y-Q_{\theta _{i}} \left ( s, a \right )\right )^{2}

        如果 t mod d then

                通过确定性策略梯度更新actor网络参数:

        ​​​​​​​        \triangledown _{\phi }J\left ( \phi \right )=N^{-1}\sum \triangledown _{a}Q_{\theta _{1}}\left ( s,a \right )|_{a=\pi _{\phi \left ( s \right )}}\triangledown _{\phi }\pi _{\phi }\left ( s \right )

                更新目标网络参数:

                \theta_{i}^{'}\leftarrow \tau \theta _{i}+\left ( 1-\tau \right )\theta _{i}^{'}

                \phi ^{'}\leftarrow \tau \phi _{i}+\left ( 1-\tau \right )\phi ^{'}

        end for

end for

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

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

相关文章

KMS密钥管理有哪些安全功能

KMS(Key Management Service)密钥管理服务是一种专门用于管理和保护加密密钥的系统。在现代的信息安全领域中,密钥的重要性不言而喻,它是确保数据加密、解密以及身份验证等安全操作的核心要素。KMS的出现,极大地提高了密钥管理的效率和安全性…

跨境云手机如何简化tiktok运营流程

如今,tiktok已经成为世界范围内都非常流行的社交媒体平台。然而在大多数情况下,由于网络原因,tiktok无法在国内使用,但依然有越来越多的人注册tiktok号码、建立tiktok矩阵。原因是tiktok仍然有大量的流量可供商业使用,…

CSP-201812-1-小明上学

CSP-201812-1-小明上学 解题思路 #include <iostream> using namespace std; int main() {int red, yellow, green, n, timeSum 0;cin >> red >> yellow >> green;cin >> n;for (int i 0; i < n; i){int flag, time;cin >> flag &g…

Spark---环境搭建---入门概念

目录 环境搭建 测试 Apache Spark是用于大规模数据处理的统一分析引擎&#xff1b; spark 仅仅替代了hadoop的mapraduce&#xff1b; spark比hadoop快一百倍&#xff1b; 环境搭建 1&#xff1a;解压&#xff1b; 2&#xff1a;配置spark环境变量&#xff1a; vim /etc/pro…

WouoUI-PageVersion 一个用于快速构建具有丝滑OLED_UI动画的项目

WouoUI-PageVersion 写在前面 简介&致谢 Air001的TestUI例子的b站的演示视频 Air001的LittleClock例子的b站演示视频: https://www.bilibili.com/video/BV1J6421g7H1/ Stm32的TestUI例子的b站演示视频: https://www.bilibili.com/video/BV1mS421P7CZ/ 所有演示的工程文…

【6-1】使用hanlp进行实体抽取以及句法分析(问题待解决)

1.使用hanlp抽取法人名称、企业名称等信息 # -*- coding: utf-8 -*- from pyhanlp import *text1"1998年11月11日&#xff0c;马化腾和同学张志东在广东省深圳市正式注册成立“深圳市腾讯计算机系统有限公司”&#xff0c;之后许晨晔、陈一丹、曾李青相继加入。当时公司…

缩小ppt文件大小的办法

之前用别人模版做了个PPT&#xff0c;100多M,文件存在卡顿问题 解决办法&#xff1a; 1.找到ppt中哪个文件过大&#xff0c;针对解决 2.寻找视频/音频文件&#xff0c;减少体积 3.字体文件是不是过多的问题。 一、文件寻找的内容步骤&#xff1a; 步骤&#xff1a; 1.把p…

MySQL数据库基础(九):SQL约束

文章目录 SQL约束 一、主键约束 二、非空约束 三、唯一约束 四、默认值约束 五、外键约束&#xff08;了解&#xff09; 六、总结 SQL约束 一、主键约束 PRIMARY KEY 约束唯一标识数据库表中的每条记录。主键必须包含唯一的值。主键列不能包含 NULL 值。每个表都应该有…

【Pygame手册03/20】用于绘制形状的 pygame 模块

目录 一、说明二、画图函数2.1 接口draw下的函数2.2 pygame.draw.rect()2.3 pygame.draw.polygon()2.4 pygame.draw.circle()2.5 pygame.draw.ellipse()2.6 pygame.draw.arc()2.7 pygame.draw.line ()2.8 pygame.draw.lines()2.9 pygame.draw.aaline()2.10 pygame.draw.aaline…

java之VO,BO,PO,DO,DTO

概念 VO&#xff08;View Object&#xff09;&#xff1a;视图对象&#xff0c;用于展示层&#xff0c;它的作用是把某个指定页面&#xff08;或组件&#xff09;的所有数据封装起来。DTO&#xff08;Data Transfer Object&#xff09;&#xff1a;数据传输对象&#xff0c;这…

为React开发人员释放ChatGPT的开发力量

本文将深入研究ChatGPT可以授权React开发人员的无数用例&#xff0c;并提供有价值的见解。将ChatGPT集成到React开发中&#xff0c;为寻求增强工作流程的开发人员开启了一个可能性的世界&#xff0c;从代码辅助和项目规划到创造性的头脑风暴和UI/UX设计协作。 React是一个用于构…

管理类联考-复试-管理类知识-汇总

文章目录 总论管理的四大职能管理的效率与成果管理的职能管理者的技能不同层级需要的管理技能 古典管理理论与我国当代企业形态泰罗科学管理理论法约尔14条管理原则霍桑实验我国经济管理体制制度现代企业的特质我国经济发展与社会矛盾管理的基本原理 管理道德与社会责任企业的社…

ESP32工程中CMake使用及加入第三方SDK库文件

1、ESP32工程结构 本文中使用的是乐鑫官方推出的ESP-IDF v5.1对ESP32S3设备开发&#xff0c;并非是Arduino、Micro-python等第三方工具开发。在ESP-IDF框架中&#xff0c;乐鑫官方已经将CMake 和 Ninja 编译构建工具集成到了ESP-IDF中。 ESP-IDF 即乐鑫物联网开发框架&#xff…

跨境电商无货源如何实现自动化对接1688货源商品上架?1688商品采集API来帮你

阿里巴巴集团旗下的B2B电子商务网站&#xff0c;提供海量优质商品&#xff0c;为采购商和供应商提供交流、合作、采购等服务&#xff0c;是很多没有货源优势的电商卖家首选的货源途径&#xff0c;也是国内最大、货源种类最齐全的货源网站。 不少做跨境电商无货源的朋友都想要直…

WordPress管理员修改自己用户名的插件Username

有一些站长在刚开搭建WordPress网站时&#xff0c;对于管理员的用户名是随意输入&#xff0c;后来想要修改时发现不懂得如何下手。其实&#xff0c;修改WordPress管理员用户名最快速的方法就是进入数据库直接修改&#xff0c;详见『通过phpMyAdmin直接修改WordPress用户名的图文…

【qt创建线程两种方式】

QT使用线程的两种方式 1.案例进度条 案例解析&#xff1a; 如图由组件一个进度条和三个按钮组成&#xff0c;当点击开始的时候进度条由0%到100%&#xff0c;点击暂停&#xff0c;进度条保持之前进度&#xff0c;再次点击暂停变为继续&#xff0c;点击停止按钮进度条停止。 案…

如何实现Android平台GB28181设备接入模块按需打开摄像头并回传数据

技术背景 实际上&#xff0c;我在年前的blog&#xff0c;已经写过Android平台GB28181后台service模式启动摄像头按需回传数据了&#xff0c;此次版本&#xff0c;是上个demo的迭代版&#xff0c;目的是平台侧如果不发起回传请求的话&#xff0c;摄像头不打开。 后台service模…

系统调用之文件IO

学习完使用标准io库函数&#xff0c;进一步深入linux的内核实现系统的调用&#xff0c;本节主要学习文件io的相关函数。 标准IO与文件IO的区别 标准io是库函数&#xff0c;是系统调用的封装。 文件io是系统调用&#xff0c;是linux内核中的函数。 标准io有缓存&#xff0c;文件…

云原生之容器编排实践-在K8S集群中使用Registry2搭建私有镜像仓库

背景 基于前面搭建的3节点 Kubernetes 集群&#xff0c;今天我们使用 Registry2 搭建私有镜像仓库&#xff0c;这在镜像安全性以及离线环境下运维等方面具有重要意义。 Note: 由于是测试环境&#xff0c;以下创建了一个 local-storage 的 StorageClass &#xff0c;并使用本地…

STM32 TIM输入捕获测频率占空比库函数

目录 一、输入捕获初始化函数 TIM_ICInit TIM_PWMIConfig TIM_ICStructInit 二、主从触发模式对应函数 TIM_SelectInputTrigger TIM_SelectOutputTrigger TIM_SelectSlaveMode 三、配置分频器函数 TIM_SetIC1Prescaler TIM_SetIC2Prescaler TIM_SetIC3Prescaler T…