【深度强化学习】确定性策略梯度算法 DDPG

news2024/11/23 18:48:14

前面讲到如 REINFORCE,Actor-Critic,TRPO,PPO 等算法,它们都是随机性策略梯度算法(Stochastic policy),在广泛的任务上表现良好,因为这类方法鼓励了算法探索,给出的策略是各个动作的概率分布。

实际上策略梯度方法分为两类:一类是随机性策略梯度算法,另一类是确定性策略梯度算法

确定性策略可能更适合需要精确控制的任务,在这些任务中,任何偏离最佳操作的行为都会对结果产生重大影响(如:下棋)。而随机策略可能更适合涉及不确定性或探索的任务,因为它们允许智能体尝试不同的行动并从其结果中学习。


DDPG 深度确定性策略梯度 Deep Deterministic Policy Gradient

直觉

DQN 挺好的,但是只能离散动作,不能连续动作,关键原因在于 max ⁡ a Q ( S , a ) \max_a Q(S,a) maxaQ(S,a),在无限多的动作下不适用。
解决方法:
max ⁡ a Q ( s , a ) = Q ( s , arg ⁡ max ⁡ a Q ( s , a ) ) → Q ( s , μ θ ( s ) ) \max_a Q(s,a) = Q(s,\arg \max_a Q(s,a)) \to Q(s, \mu_{\theta}(s)) amaxQ(s,a)=Q(s,argamaxQ(s,a))Q(s,μθ(s))
核心思想:既然在连续的时候从众多 a a a 里面选一个使得 Q Q Q 最大的 a a a 这么难,那我就用一个网络直接近似给出这个 a a a,代替这个 max操作,这个网络就叫 μ θ \mu_\theta μθ


图示

实际上是一种 Actor-Critic 方法

在这里插入图片描述
这里策略网络 μ ( s ; θ ) \mu(s;\theta) μ(s;θ)给出的动作 a a a 是确定的,而不是一个分布。


伪代码与解释

在这里插入图片描述

  • 动作 Clip : 在动作选择的时候,clip,因为动作是连续的,是由神经网络给出的,防止爆nan
  • (动作添加噪声 N ( 0 , σ 2 ) \mathcal{N}(0,\sigma^2) N(0,σ2)):探索 or 稳健
  • (动作输入之前批标准化):平衡连续动作量纲
  • 每得到一批数据,分别更新 Critic 、 Actor、慢 Critic、慢 Actor:
    • Critic Q ϕ ( ⋅ , ⋅ ) Q_{\phi}(\cdot,\cdot) Qϕ(,) 更新:利用 ( r , s ′ ) (r,s') (r,s) 计算 TD target,计算的时候都使用 target 参数( θ t a r g e t , ϕ t a r g e t \theta_{target}, \phi_{target} θtarget,ϕtarget) ,TD target 和 Q ( s , a ) Q(s,a) Q(s,a) 计算 TD loss, 最小化,梯度下降。
    • Actor μ θ ( ⋅ ) \mu_\theta(\cdot) μθ() 更新:我们假设 Critic 已经是一个良好的估计,那么就让 θ \theta θ 往能够使得 Critic 满意的方向走(选择使得 Critic 满意的连续动作 a a a),最大化,梯度上升。
    • 慢 Critic 和慢 Actor 更新:用移动平均更新即可(思想:类似于 DQN 目标网络,减少自举法带来的偏差)

DDPG 加特技

TD3:双延时 DDPG(Twin Delayed Deep Deterministic Policy Gradient)

在这里插入图片描述

截断双Q学习:Clipped Double Q-Learning

在这里插入图片描述


实验效果

在这里插入图片描述


变化路线

在这里插入图片描述

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

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

相关文章

禁毒知识竞赛流程和规则

禁毒知识竞赛是一项全国性竞赛活动。有着深化全国青少年毒品预防教育,巩固学校毒品预防教育成果的重要作用。本文介绍一场禁毒知识竞赛的完整流程和规则,供单位组织此类活动时参考。 1、赛制 第一轮10进6,第二轮6进4,4支队伍决出…

编译android的C版本Lua库

本文讲述如何使用android studio 编译最新版本的Lua开源库),请自行下载。 我们提供的Demo,可以自行下载,工程结构如下: 本文编译的是Lua 5.4.6的版本,编译采用cmake的方式,我们支持编译静态库和动态库(我们在这一讲里:“Lua与***C在Android上的互调”是使用静态库)…

02_Web开发基础之JavaScript

Web开发基础之JavaScript 学习目标和内容 1、能够描述Javascript的作用 2、能够使用分支结构if语句逻辑判断 3、能够使用其中一种循环语句 4、能够定义javaScript中的函数 5、能够定义javaScript中的对象 6、能够描述DOM的作用 7、能够通过DOM操作HTML标签元素及其属性 8、能够…

TrustZone之调试、跟踪和分析

接下来,我们将查看系统中的调试和跟踪组件,如下图所示: 现代Arm系统包括支持调试和性能分析的广泛功能。在TrustZone中,我们必须确保这些功能不能被用来危害系统的安全性。 关于调试功能,考虑开发新的SoC。不同的开发人员被信任调试系统的不同部分。芯片公司的工程…

JRT实现在线打印预览

在JRT打印元素绘制协议一篇已经介绍过打印把绘图和打印逻辑进行了分离,这是和老设计最大的不同。因为老的设计时候没想着做在线预览功能,是后面硬性扩出来的。这次从最初设计就考虑绘图逻辑各处共用,包括打印预览,在线打印预览等、…

Google Scholar引用没有GB/T格式

想选择GB/T 参考文献格式,却无法找到这种引用方式。 1、GB/T 7714:(我国)国家标准的代号由大写汉语拼音字母构成。 强制性国家标准的代号为"GB",推荐性国家标准的代号为"GB/T"。 国家标准的编号由…

C语言学习NO.-操作符(二)二进制相关的操作符,原码、反码、补码是什么,左移右移操作符、按位与,按位或,按位异或,按位取反

一、操作符的分类 操作符的分类 算术操作符&#xff1a; 、- 、* 、/ 、%移位操作符: << >>位操作符: & | ^ 赋值操作符: 、 、 - 、 * 、 / 、% 、<< 、>> 、& 、| 、^单⽬操作符&#xff1a; &#xff01;、、–、&、*、、-、~ 、siz…

基于YOLOv8深度学习的西红柿成熟度检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

linux下查看进程资源ulimit

ulimit介绍与使用 ulimit命令用于查看和修改进程的资源限制。下面是ulimit命令的使用方法&#xff1a; 查看当前资源限制&#xff1a; ulimit -a 这将显示当前进程的所有资源限制&#xff0c;包括软限制和硬限制。查看或设置单个资源限制&#xff1a; ulimit -<option> …

2023年【陕西省安全员C证】新版试题及陕西省安全员C证复审模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 陕西省安全员C证新版试题参考答案及陕西省安全员C证考试试题解析是安全生产模拟考试一点通题库老师及陕西省安全员C证操作证已考过的学员汇总&#xff0c;相对有效帮助陕西省安全员C证复审模拟考试学员顺利通过考试。…

C++初阶-stack的使用与模拟实现

stack的使用与模拟实现 一、stack的介绍和使用二、stack的使用三、stack的模拟实现3.1 成员变量3.2 成员函数3.2.1 push入栈3.2.2 pop出栈3.2.3 返回栈顶数据3.2.4 返回栈的大小3.2.5 判断栈是否为空 四、完整代码4.1 stack.h4.2 test.h 一、stack的介绍和使用 1.stack是一种容…

03_Web开发基础之综合应用

web开发基础之综合使用 学习目标和内容 1、能够描述jQuery的作用 2、能够使用jQuery的选择器获取元素 3、能够使用jQuery对HTML标签元素注册事件 4、能够使用jQuery对HTML元素的属性进行操作 5、能够描述Bootstrap的作用 6、能够使用Bootstrap创建简单网页 7、能够描述AJAX的作…

Java----新手一步一步安装 Java 语言开发环境

查看原文 文章目录 一、基于 Windows 10 系统 安装配置 JDK8二、基于 CentOS7 系统安装配置 JDK8 一、基于 Windows 10 系统 安装配置 JDK8 &#xff08;1&#xff09;打开 JDK下载网站&#xff0c;根据系统配置选择版本&#xff0c;这里选择windows 64位的版本&#xff0c;点…

人工智能-A*算法-最优路径搜索实验

上次学会了《A*算法-八数码问题》&#xff0c;初步了解了A*算法的原理&#xff0c;本次再用A*算法完成一个最优路径搜索实验。 一、实验内容 1. 设计自己的启发式函数。 2. 在网格地图中&#xff0c;设计部分障碍物。 3. 实现A*算法&#xff0c;搜索一条最优路径。 二、A*算法实…

DDA 算法

CAD 算法是计算机辅助设计的算法&#xff0c;几何算法是解决几何问题的算法 CAD 算法是指在计算机辅助设计软件中使用的算法&#xff0c;用于实现各种设计和绘图功能&#xff0c;CAD 广泛应用于建筑、机械、电子等领域&#xff0c;可以大大提高设计效率和精度 绘图算法是 CAD…

关于多重背包的笔记

多重背包可以看作01背包的拓展&#xff0c; 01背包是选或者不选。多重背包是选0个一直到选s个。 for (int i 1; i < n; i) {for (int j m; j > w[i]; --j){f[j] max(f[j], f[j - 1*w[i]] 1*v[i], f[j - 2*w[i]] 2*v[i],...f[j - s*w[i]] s*v[i]);} } 由上述伪代码…

FL Studio2024mac电脑版本下载步骤教程

FL Studio2024是款专业的音频录制编辑软件&#xff0c;可以针对作曲者的要求编辑出不同音律的节奏&#xff0c;例如鼓、镲、锣、钢琴、笛、大提琴等等任何乐器的节奏律动。FL Studio目前在中国已经受到广大制作人喜爱&#xff0c;使用它制作的音乐作品也已经数不胜数&#xff0…

Leetcode的AC指南 —— 链表:24. 两两交换链表中的节点

摘要&#xff1a; Leetcode的AC指南 —— 链表&#xff1a;24. 两两交换链表中的节点。题目介绍&#xff1a;给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能…

计算机服务器中了360后缀勒索病毒怎么处理,勒索病毒解密数据恢复

网络技术的不断发展与应用&#xff0c;越来越多的企业开始走向数字化办公模式&#xff0c;极大地方便了企业的生产运营。但随之而来的网络安全威胁也在不断增加&#xff0c;在本月&#xff0c;云天数据恢复中心陆续接到很多企业的求助&#xff0c;企业的计算机服务器遭到了360后…

文心一言 VS 讯飞星火 VS chatgpt (158)-- 算法导论12.3 5题

五、用go语言&#xff0c;假设为每个结点换一种设计&#xff0c;属性 x.p 指向 x 的双亲&#xff0c;属性 x.succ 指向 x 的后继。试给出使用这种表示法的二叉搜索树 T 上 SEARCH、INSERT 和DELETE 操作的伪代码。这些伪代码应在 O(h) 时间内执行完&#xff0c;其中 h 为树 T 的…