当前位置: 首页 > news >正文

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

深度确定性策略梯度(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.hskmm.com/?act=detail&tid=29780

相关文章:

  • 20232325 2025-2026-1 《网络与系统攻防技术》实验一实验报告
  • 乐理 -06 相对音感 绝对音感
  • 【光照】UnityURP[天空盒]原理与[动态天空盒]实现
  • Hadoop概念以及安装
  • Presto
  • presto配置
  • Hadoop--MapReduce
  • Hadoop--yarn
  • AI元人文构想框架体系
  • [DAX/数据分析表达式/Power BI] DAX 查询视图语言 = `Data Analysis eXpressions`(数据分析表达式) = 编程式数据分析语言
  • Hadoop--HDFS-HA高可用
  • Hadoop--HDFS
  • Redis总结
  • 函数柯里化
  • 防抖与节流
  • 大数据概述
  • 10月——算法竞赛回坑杂记
  • 20232308 2025-2026-1 《网络与系统攻防技术》实验一实验报告
  • Redis知识点汇总
  • 乐理 -05 乐音 乐级
  • Redis实现分布式锁以及Redis客户端比较
  • 一致性哈希原理
  • 缓存和数据库数据的一致性
  • Redis不同数据类型代码场景实践
  • 布隆过滤器
  • Redis持久化
  • 上下文与this指向
  • [数据库] Microsoft SQL Server 数据库
  • 02 | 在环境中使用Airsim插件
  • 01 | UE5.3+Airsim+VS2022+Windows10(无人机仿真环境)