确定性策略梯度与 DDPG

03-策略梯度与ActorCritic 进阶 约 20 分钟 #DDPG#确定性策略梯度#连续控制#off-policy 更新 2026-10-02
当前状态:未学
本文基于模型知识整理(生成时未联网核对),关键结论建议对照 Silver et al. 2014 与 Lillicrap et al. 2015 复核。

一句话定义

对连续动作空间,对每个动作求 max 不可行;确定性策略梯度(DPG)证明"策略是确定性映射 μ(s) 时,$\nabla J = \mathbb{E}[\nabla_a Q(s,a)|_{a=\mu(s)} \nabla_\theta\mu(s)]$"——沿 Q 的动作梯度方向调整策略输出;DDPG 是它的深度版:Actor 输出连续动作,Critic 评估之,配上回放池与目标网络(off-policy + DQN 稳定件)。

为什么重要

它是"连续控制"问题的第一代深度基线:机械臂力矩、机器人关节角这类动作无法枚举,DQN 的 max 无从计算。DDPG 把"Q-Learning 思想 + 策略网络替代 max"的组合拳打出来了,其"Actor+双目标网络+回放池"的四件套结构被 TD3/SAC(kp-019)继承改良。

前置知识

kp-004(Q 函数)、kp-010(回放与目标网络)、链式法则。

核心概念

  • 确定性策略:$a = \mu_\theta(s)$(无动作分布);探索由外部噪声提供(最常见:OU 噪声或高斯噪声叠加在动作上)。
  • DPG 定理:$\nabla_\theta J \approx \mathbb{E}_{s\sim D}\left[\nabla_a Q(s,a)|_{a=\mu_\theta(s)} \cdot \nabla_\theta \mu_\theta(s)\right]$——链式法则穿过 Q 对动作的梯度。
  • Critic 目标:$y = r + \gamma\, Q_{\phi'}(s', \mu_{\theta'}(s'))$——下一动作由目标 Actor 给出,再由目标 Critic 评估(双目标网络软更新 $\tau \approx 0.005$)。
  • 四件套结构:在线 Actor、在线 Critic、目标 Actor、目标 Critic。
  • 回放池:off-policy 红利(kp-009),样本复用 + 打散相关性。

原理与机制

DPG 为什么成立:它是策略梯度定理在确定性策略下的极限形式——把随机策略的方差压到零, $\nabla\log\pi$ 项退化、留下"Q 对动作的偏导"直接指示"这个动作该往哪调"。直觉读法:critic 说"这个动作再大一点会更好",actor 就把输出往大调——critic 的动作梯度成为 actor 的教师。

探索问题的结构性弱点:确定性策略自己不探索,噪声必须外加且与学习耦合——噪声过大破坏 critic 的 TD 目标(状态-动作对被噪声污染),过小则陷在初始策略邻域。这个两难正是 SAC 用"学习到的随机策略+最大熵"替代的动机(kp-019)。

稳定性弱势清单(DDPG 名声难训的原因):① 对超参极度敏感(尤其 τ、噪声尺度、学习率比);② critic 高估沿 Bellman 链放大;③ 复现性差(kp-030)。TD3 的三项修补(延迟更新/目标平滑/双 critic)逐一对应(kp-019)。

公式或模型

  • Critic 损失:$L(\phi) = \mathbb{E}\left[(y - Q_\phi(s,a))^2\right]$,$y = r + \gamma Q_{\phi'}(s', \mu_{\theta'}(s'))$
  • Actor 损失:$L(\theta) = -\mathbb{E}_{s\sim D}\left[Q_\phi(s, \mu_\theta(s))\right]$——直接最大化"当前策略动作的 Q"
  • 软更新:$\phi' \leftarrow \tau\phi + (1-\tau)\phi'$

图示

s ─► μ_θ(s) ──a──► Q_φ(s,a) ─┐
        ▲                    │ 最大化 → actor 损失 = −Q
        └── ∇_a Q 指示调整方向 ┘
目标: y = r + γ Q_φ'(s', μ_θ'(s'))   (双目标网络, 软更新 τ)
探索: a = μ_θ(s) + 噪声(OU/高斯)

直观类比

学开车:critic 是副驾教练,评价"方向盘往这边打、油门这么大,前景(Q)如何";actor 是司机,沿着教练给的"方向盘梯度"微调动作。DDPG 的毛病是教练只有一个且过于乐观(高估)、司机太死板(确定性)只能靠乱晃(外加噪声)来找新路。

实例或案例

  • MuJoCo 标准任务(HalfCheetah/Walker2d):DDPG 是 2015-2018 年的连续控制基线;调参得当性能可观,但跨种子方差大。
  • 从 DDPG 到 SAC 的演进常被用作"算法工程化"教学案例:同一框架下,逐步打补丁(TD3)到重构(SAC)。

常见误区

  • 误区一:"DDPG 是 on-policy 的 AC"。它用回放池 + 目标网络,行为(带噪声的确定性策略)≠ 目标(纯确定性策略)——是 off-policy 的。
  • 误区二:"探索噪声只影响采样不影响学习"。噪声动作进入回放池参与 critic 训练,噪声尺度直接改变目标分布;OU 噪声的时间相关性常被高估,多数基准上高斯噪声足矣。
  • 误区三:"确定性策略没有概率,策略梯度定理失效"。DPG 是独立定理(策略梯度定理的极限情形);确定性策略的最优性在有噪声环境仍由期望目标定义。

与其他知识点的关系

  • kp-010:回放+目标网络的直接继承。
  • kp-013:DPG 与随机策略梯度的对偶。
  • kp-019:TD3/SAC 是它的两个进化版本。
  • kp-012:off-policy+自举+函数逼近三角全占,稳定性弱势的理论根源。

自测题

  1. 写出 DPG 定理并解释 ∇_a Q 的角色。

答:$\nabla J = \mathbb{E}[\nabla_a Q(s,a)|_{a=\mu(s)}\nabla_\theta\mu(s)]$;critic 对动作的梯度指出"动作该往哪个方向调整",链式传给 actor 参数。

  1. DDPG 为什么需要两个目标网络?

答:TD 目标同时用到下一状态的动作(目标 actor)与该动作的价值(目标 critic);两个都慢速移动才能稳住目标。

  1. DDPG 探索的来源与结构性弱点?

答:外加噪声(OU/高斯);弱点是噪声与学习耦合——过大污染 TD 目标、过小困在局部,SAC 用学习到的随机策略解决。

延伸阅读

  • Silver 等, "Deterministic Policy Gradient Algorithms"(ICML 2014)。
  • Lillicrap 等, "Continuous control with deep reinforcement learning"(arXiv 1509.02971,DDPG)。
  • Spinning Up "DDPG" 实现(与 TD3 对照阅读)。