3.4 深度确定性策略梯度(Deep Deterministic Policy Gradient, DDPG)

news/2025/10/13 3:36:54/文章来源:https://www.cnblogs.com/zzzxx/p/19137617

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


背景与动机

在前面的策略梯度方法中,演员(Actor)产生的是随机策略 \(\pi_\theta(s)\),即输出动作的概率分布(离散动作)或分布参数(连续动作)。
其优点在于能保证探索:几乎所有动作都有非零概率被采样,避免遗漏潜在高回报动作。
但也带来两个主要缺点:

  1. 只能同策略(on-policy)训练:评论者提供的 Q 值必须基于当前演员生成的样本,否则会产生高偏差,无法使用经验回放(Replay Buffer)。
  2. 方差大:即使是同一最优策略,两个回合的回报可能差别很大,导致样本效率低。

相比之下,DQN 这类基于值函数的算法学习的是确定性策略

\[a_t^* = \arg\max_a Q_\theta(s_t, a) \]

行为策略用于探索(如 \(\epsilon\)-greedy),但学习的策略本身是确定性的。
这种方式是 off-policy 的,因此可以使用经验回放并提高样本效率。

DDPG(Deep Deterministic Policy Gradient) 结合了两者的优点:

  • 策略梯度(Actor–Critic 架构、可处理连续动作);
  • 值函数方法(样本高效、可离策略训练)。

确定性策略梯度定理(Deterministic Policy Gradient Theorem)

定义确定性策略 \(\mu_\theta(s)\),目标函数为:

\[J(\theta) = \mathbb{E}_{s \sim \rho_\mu}[R(s, \mu_\theta(s))] \]

@Silver2014 推导得其梯度形式为:

\[\nabla_\theta J(\theta) = \mathbb{E}_{s \sim \rho_\mu}[\nabla_\theta \mu_\theta(s) \nabla_a Q_\varphi(s,a) |_{a=\mu_\theta(s)}] \]

这与链式法则一致:

\[\frac{\partial Q(s,a)}{\partial \theta} = \frac{\partial Q(s,a)}{\partial a} \frac{\partial a}{\partial \theta} \]

其中:

  • \(\nabla_a Q(s,a)\):评论者提供的“方向”,告诉演员如何调整动作;
  • \(\nabla_\theta \mu_\theta(s)\):演员内部梯度,指示如何更新参数以产生该动作。

dpg-chainrule

由此自然形成 Actor–Critic 架构:

  • Actor:输出确定性动作 \(\mu_\theta(s)\)
  • Critic:估计 \(Q_\varphi(s,a)\),并提供 \(\nabla_a Q_\varphi(s,a)\)

线性逼近器下的 DPG 已验证有效,但非线性函数(深度网络)下最初不稳定。


深度确定性策略梯度(DDPG)

@Lillicrap2015 将 DPG 与 DQN 的思想结合,形成了能在连续动作空间上高效学习的 DDPG 算法。

核心改进

  1. 经验回放(Replay Buffer):实现离策略训练;
  2. 目标网络(Target Networks):稳定训练;
  3. 软更新(Soft Update):缓慢追踪训练网络,减少非平稳性:

\[\theta' = \tau \theta + (1-\tau)\theta' \quad (\tau \ll 1) \]


网络更新

评论者(Critic)使用 Q-learning 形式的目标:

\[J(\varphi) = \mathbb{E}[(r + \gamma Q_{\varphi'}(s', \mu_{\theta'}(s')) - Q_\varphi(s,a))^2] \]

演员(Actor)使用确定性策略梯度:

\[\nabla_\theta J(\theta) = \mathbb{E}[\nabla_\theta \mu_\theta(s) \nabla_a Q_\varphi(s,a)|_{a=\mu_\theta(s)}] \]


探索机制:Ornstein–Uhlenbeck 噪声

由于策略确定性强,探索可能迅速收敛至局部最优。
因此 DDPG 使用加性噪声

\[a_t = \mu_\theta(s_t) + \xi \]

噪声 \(\xi\)Ornstein–Uhlenbeck 过程 生成,具有时间相关性和零均值:

\[dx_t = \theta(\mu - x_t)dt + \sigma dW_t, \quad dW_t \sim \mathcal{N}(0,dt) \]

OU


算法流程

DDPG 算法:

  1. 初始化 Actor \(\mu_\theta\) 与 Critic \(Q_\varphi\)
  2. 建立对应的目标网络 \(\mu_{\theta'}\)\(Q_{\varphi'}\)
  3. 建立经验回放池 \(\mathcal{D}\)
  4. 对每个 episode:
    • 重置噪声过程;
    • 对每步 \(t\)
      • 执行动作 \(a_t = \mu_\theta(s_t) + \xi\)
      • 存储转移 \((s_t,a_t,r_{t+1},s_{t+1})\)
      • 随机采样小批量;
      • 计算目标值:

        \[y_k = r_k + \gamma Q_{\varphi'}(s'_k, \mu_{\theta'}(s'_k)) \]

      • 更新评论者:

        \[\mathcal{L} = \frac{1}{N}\sum_k (y_k - Q_\varphi(s_k,a_k))^2 \]

      • 更新演员:

        \[\nabla_\theta J(\theta) = \frac{1}{N}\sum_k \nabla_\theta \mu_\theta(s_k)\nabla_a Q_\varphi(s_k,a)|_{a=\mu_\theta(s_k)} \]

      • 软更新目标网络:

        \[\theta' \leftarrow \tau\theta + (1-\tau)\theta' \\ \varphi' \leftarrow \tau\varphi + (1-\tau)\varphi' \]

ddpg


特点与局限

  • DDPG 为 off-policy 算法:使用旧策略样本更新当前策略;
  • 不需要重要性采样(importance sampling);
  • 能高效解决连续控制任务;
  • 局限:高样本复杂度、对超参数敏感。

分布式版本(如 @Barth-Maron2018 D4PG)显著提升了训练效率。


应用示例:自动驾驶

Wayve(2018)展示了基于 DDPG 的“一天学会驾驶”实验。
演员与评论者共享卷积特征层,并采用优先经验回放(PER)。
模型先在仿真环境中调参,再直接在实车(NVIDIA Drive PX2)上训练。

ddpg-drive


TD3(Twin Delayed Deep Deterministic Policy Gradient)

@Fujimoto2018 提出 TD3,针对 DDPG 的三个主要问题进行改进:

1. Q 值过估计(Clipped Double Q-learning)

DDPG 中的 Bellman 目标:

\[t = r + \gamma Q_{\varphi'}(s', \mu_{\theta'}(s')) \]

易因 \(\max\) 操作而过估计。

TD3 使用双评论者

\[t = r + \gamma \min(Q_{\varphi'_1}(s', \mu_{\theta'}(s')), Q_{\varphi'_2}(s', \mu_{\theta'}(s'))) \]

两者取最小值,减少过估计偏差。

td3-overestimation


2. 延迟更新演员(Delayed Policy Updates)

Critic 的偏差会污染 Actor 更新。
TD3 每 \(d\) 步才更新一次 Actor,让 Critic 先收敛:

  • 每步训练 Critic;
  • \(d\) 步训练 Actor 一次。

3. Bellman 目标噪声(Target Policy Smoothing)

为防止过拟合固定动作,TD3 在目标动作中也加噪声:

\[t = r + \gamma Q_{\varphi'}(s', \mu_{\theta'}(s') + \xi), \quad \xi \sim \mathcal{N}(0,1) \]

该技巧保持目标无偏,同时提高泛化。

td3-results

TD3 在连续控制任务上显著优于 DDPG、PPO、SAC 等算法。


D4PG(Distributed Distributional DDPG)

@Barth-Maron2018 提出 D4PG,融合多种先进特性:

特性 来源
确定性策略梯度 DDPG
分布式评论者 \(\mathcal{Z}_\varphi(s,a)\) Categorical DQN
n-step 回报 A3C
并行执行者(32–64个) 分布式训练
优先经验回放(PER) DQN+PER

D4PG 能在 CPU 环境下快速收敛并实现高性能,是连续控制中的里程碑算法。

d4pg-results

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

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

相关文章

20232325 2025-2026-1 《网络与系统攻防技术》实验一实验报告

一、实验内容 本次实验以Linux可执行文件pwn1为对象,核心目标是通过三种技术手段篡改程序执行流程,触发原本不可运行的getShell函数或自定义shellcode,具体如下: (一)手工修改可执行文件,直接跳转到getShell函数…

MINIX 3 值得仔细研究 from Tanenbaum A., Bos H. Modern Operating Systems 5ed 2023

10.1.6 MINIX One property that all modern UNIX systems have is that they are large and complicated, in a sense the antithesis of the original idea behind UNIX. Even if the source code were freely avail…

乐理 -06 相对音感 绝对音感

相对音感 判断两个音之间的距离练习绝对音感 无参照音下判断

【光照】UnityURP[天空盒]原理与[动态天空盒]实现

《Unity URP动态天空盒技术解析》专栏文章摘要:URP天空盒采用立方体贴图技术,通过六面HDR图像构成全景环境,作为无限远背景始终跟随摄像机。核心技术包括:1.基于主光源方向的昼夜动态切换(smoothstep平滑过渡);…

实验1 现代c++初体验

task 1.cpp1 #include<iostream>2 #include<string>3 #include<vector>4 #include<algorithm>5 6 template<typename T>7 void output(const T& c);8 9 void test1(); 10 void test…

Hadoop概念以及安装

Hadoop概论Hadoop是一个由 Apache基金会所开发的分布式系统基础架构。 主要解决,海量数据的存储和海量数据的分析计算问题。 广义上来说, Hadoop通常是指一个更广泛的概念 Hadoop生态圈。Hadoop三大发行版本:Apache、…

presto配置

presto启动时默认配置文件目录在安装目录下的etc下每个节点的配置 在etc下创建node.properties文件,配置如下: node.environment=production node.id=ffffffff-ffff-ffff-ffff-ffffffffffff node.data-dir=/var/pres…

Hadoop--MapReduce

dr.who是通过http连接的默认用户,可以直接在配置文件里面修改为当前用户,重启之后就可以使用当前用户在页面里面对文件进行相关操作。 MapReduce概述 分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应…

Hadoop--yarn

Yarn资源调度器 Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。 Y****arn基本架构 YARN主要由ResourceM…

AI元人文构想框架体系

AI元人文构想框架体系 一、核心概念与理论基础 1.1 基本定义 AI元人文构想:一种革命性AI发展范式,旨在构建能够理解、协调并增强人类复杂价值体系的新型人工智能系统。其核心特征包括:从"优化工具"转变…

[DAX/数据分析表达式/Power BI] DAX 查询视图语言 = `Data Analysis eXpressions`(数据分析表达式) = 编程式数据分析语言

0 序Power BI1 概述:DAX 查询视图语言 = Data Analysis eXpressions(数据分析表达式) = 编程式数据分析语言 for Power BI / SSAS / ... DAX是什么?DAX 全称 Data Analysis eXpressions(数据分析表达式); 其是面向 …

Hadoop--HDFS-HA高可用

high avilability HA****概述 1)所谓HA(High Availablity),即高可用(7*24小时不中断服务)。 2)实现高可用最关键的策略是消除单点故障。HA严格来说应该分成各个组件的HA机制:HDFS的HA和YARN的HA。 3)Hadoop2.…

Hadoop--HDFS

注意机器启动过之后,同步的时候不要同步data文件夹一次写入,多次读出,不支持文件修改。适合数据分析,不适合网盘应用 分布式存储,文件系统。 优点:高容错性。多复制,丢失自动恢复 适合大数据,数据以及文件规模…

10月——算法竞赛回坑杂记

说起来上次打比赛已经是好久以前了呢。初中、高中作为OIer的生涯就这么糊里糊涂的结束了,似乎连一个正经的告别都没写。谁叫广大附离家那么远呢,只记得当时比完赛回到家光顾着玩了,第二天一早又懒得补上。说起来也好…

20232308 2025-2026-1 《网络与系统攻防技术》实验一实验报告

1.实验内容 1. 本周学习内容缓冲区溢出缓冲区溢出原理:本质是数组的生长方向与栈的生长方向相反,且数组调用没有进行越界检查。 返回地址覆盖:掌握如何通过缓冲区溢出覆盖栈上的返回地址,以控制程序的执行路径。 返…

20232307 2025-2026-1 《网络与系统攻防技术》实验一

20232307 2025-2026-1 《网络与系统攻防技术》实验一20232307 2025-2026-1 《网络与系统攻防技术》实验一 一、实验内容 1.手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数。 2.利用foo函数的Bof漏洞,…

Redis知识点汇总

Redis快速回忆 核心数据结构字符串 小于1M,成倍扩容,大于1M,就每次扩容1M,最大512M。哈希购物车列表集合有序集合位图 Bitmap 虽然基于String类型,但是可以直接操作位一个字节8位表示一个用户是数据使用的时候把握…

乐理 -05 乐音 乐级

乐音 一直发生在某个频率不发生变化的称为乐音噪音 没有固定的频率像鼓之类的称为 噪音乐器 乐音体系音列 多个 有序乐级

Redis实现分布式锁以及Redis客户端比较

对比 1、redisTemplate是基于某个具体实现的再封装,比如说springBoot1.x时,具体实现是jedis;而到了springBoot2.x时,具体实现变成了lettuce。封装的好处就是隐藏了具体的实现,使调用更简单,但是有人测试过jedis效…

一致性哈希原理

数据服务器如何组织:设计时候保证高频中低频都有数量。否则就是忙的忙死闲的闲死 逻辑层服务器:增加和减少机器的时候代价很小 数据层服务器:增加和减少机器的时候代价是全量的 取模服务器个数的问题--缓存雪崩 取模…