欢迎光临
我们一直在努力

DDPG 深度解析:确定性策略梯度 DPG 原理,连续动作空间强化学习开山算法

一、前言:连续动作空间的算法困境与DDPG的诞生

强化学习算法在离散动作空间(如Atari游戏)取得了巨大成功,但现实世界中绝大多数控制任务都属于连续动作空间:机器人关节角度、车辆速度与转向、机械臂抓取力度等,这些动作都是连续取值的实数向量,无法用传统DQN算法直接处理。

1.1 传统算法的三大核心局限

  • DQN的"连续动作盲区":DQN通过枚举所有动作计算Q值并选择最大值,在连续动作空间中动作数量无限,无法枚举求解。即使将连续空间离散化,也会面临"维度灾难"(如10维动作空间每维分3段,动作总数达59049个),且离散化会丢失精细控制信息。
  • 随机策略梯度(SPG)的"样本效率陷阱":传统策略梯度算法(如REINFORCE、A2C)使用随机策略,在每个状态输出动作的概率分布。其梯度公式需要对状态空间和动作空间双重积分,导致采样效率极低,在高维连续动作空间中几乎无法收敛。
  • 确定性策略的"探索缺失":长期以来学术界认为确定性策略无法计算梯度,因为确定性策略在同一状态下只输出一个动作,没有概率分布,无法使用似然比方法计算梯度。
  • 1.2 DDPG的历史地位与学术背景

    DDPG(Deep Deterministic Policy Gradient,深度确定性策略梯度)是连续动作空间强化学习的开山之作,它成功解决了上述所有问题,首次将深度神经网络应用于高维连续控制任务,取得了比肩传统规划方法的效果。

    DDPG的理论与实现源自两篇里程碑式论文:

    • 理论基础:2014年David Silver等人,ICML《Deterministic Policy Gradient Algorithms》,DPG定理理论奠基;
    • 工程落地:2015年Lillicrap等人,ICLR2016《Continuous Control with Deep Reinforcement Learning》,提出完整DDPG。

    二、理论基石:确定性策略梯度(DPG)定理

    DPG定理是DDPG算法的核心,它证明了确定性策略也可以计算梯度,并且梯度形式比随机策略梯度更简单、采样效率更高。

    2.1 符号定义与基础概念

    • S\\mathcal{S}S:状态空间;A\\mathcal{A}A:连续动作空间 A∈Rn\\mathcal{A}\\in\\mathbb{R}^nARn
    • 确定性策略:μθ:S→A, a=μθ(s)\\mu_\\theta: \\mathcal{S}\\rightarrow\\mathcal{A},\\ a=\\mu_\\theta(s)μθ:SA, a=μθ(s)θ\\thetaθ为策略网络参数
    • Vμ(s)V^\\mu(s)Vμ(s):状态价值;Qμ(s,a)Q^\\mu(s,a)Qμ(s,a):动作价值;ρμ(s)\\rho^\\mu(s)ρμ(s):策略μ\\muμ诱导的稳态状态分布

    2.2 随机策略梯度(SPG)回顾

    ∇θJ(πθ)=Es∼ρπ,a∼πθ[∇θlog⁡πθ(a∣s)⋅Qπ(s,a)]
    \\nabla_\\theta J(\\pi_\\theta) = \\mathbb{E}_{s \\sim \\rho^\\pi, a \\sim \\pi_\\theta} \\left[ \\nabla_\\theta \\log \\pi_\\theta(a|s) \\cdot Q^\\pi(s,a) \\right]
    θJ(πθ)=Esρπ,aπθ[θlogπθ(as)Qπ(s,a)]

    缺点:期望包含状态+动作双重采样,采样量大、梯度方差高。

    2.3 确定性策略梯度(DPG)定理

    ∇θJ(μθ)=Es∼ρμ[∇θμθ(s)⋅∇aQμ(s,a)∣a=μθ(s)]
    \\nabla_\\theta J(\\mu_\\theta) = \\mathbb{E}_{s \\sim \\rho^\\mu} \\left[ \\nabla_\\theta \\mu_\\theta(s) \\cdot \\nabla_a Q^\\mu(s,a) \\bigg|_{a=\\mu_\\theta(s)} \\right]
    θJ(μθ)=Esρμ[θμθ(s)aQμ(s,a)a=μθ(s)]

    推导链式法则:
    ∇θJ=Es[∇θQ(s,μθ(s))]=Es[∇aQ∣a=μ(s)⋅∇θμ(s)]
    \\nabla_\\theta J = \\mathbb{E}_s\\left[\\nabla_\\theta Q(s,\\mu_\\theta(s))\\right]
    =\\mathbb{E}_s\\left[\\nabla_a Q|_{a=\\mu(s)} \\cdot \\nabla_\\theta \\mu(s)\\right]
    θJ=Es[θQ(s,μθ(s))]=Es[aQa=μ(s)θμ(s)]

    2.4 DPG与SPG对比

    维度随机策略梯度SPG确定性策略梯度DPG
    策略输出 动作概率分布 单一确定动作
    期望积分 状态+动作双空间 仅状态单空间
    采样效率
    梯度方差 偏大 更小
    探索来源 策略内部随机 外部添加动作噪声

    三、DDPG算法核心架构:DPG+DQN工程技巧融合

    DDPG在DPG理论之上引入经验回放、双目标网络、软更新,经典Actor-Critic四网络结构。

    3.1 Actor-Critic双主网络

    • Actor(θμ\\theta^\\muθμ):策略网络 a=μ(s)a=\\mu(s)a=μ(s),优化目标:最大化Q(s,μ(s))Q(s,\\mu(s))Q(s,μ(s))
    • Critic(θQ\\theta^QθQ):价值网络 Q(s,a)Q(s,a)Q(s,a),拟合真实动作价值,用TD损失训练。

    作用:真正在学习、不断更新的网络
    Actor 主网络:输出动作,并不断被策略梯度更新,学得越来越好。
    Critic 主网络:评估动作好坏,并不断被 TD 误差更新,学得越来越准。

    3.2 双目标网络+软更新

    目标网络:θμ′,θQ′\\theta^{\\mu'},\\theta^{Q'}θμ,θQ,用于稳定目标Q值计算,软更新而非周期硬拷贝:
    θμ′←τθμ+(1−τ)θμ′θQ′←τθQ+(1−τ)θQ′
    \\theta^{\\mu'}\\leftarrow \\tau \\theta^\\mu + (1-\\tau)\\theta^{\\mu'} \\\\
    \\theta^{Q'} \\leftarrow \\tau \\theta^Q + (1-\\tau)\\theta^{Q'}
    θμτθμ+(1τ)θμθQτθQ+(1τ)θQ

    τ≪1\\tau\\ll1τ1(常用0.0010.0010.001),目标参数平滑缓慢变化。
    作用:有一个 “不动” 的网络来计算目标 Q 值
    目标 Actor网络 计算下一状态动作:a′=μ′(s′)a' = \\mu'(s')a=μ(s)
    目标 Critic 网络计算目标 Q 值:y=r+γQ′(s′,a′)y = r + \\gamma Q'(s',a')y=r+γQ(s,a)

    3.3 经验回放池ReplayBuffer

    存储(s,a,r,s′)(s,a,r,s')(s,a,r,s)离线样本,随机批次采样,打破时序相关性,DDPG为Off-Policy离线算法。

    3.4 动作噪声实现探索

    确定性策略本身无随机性,需外加噪声实现探索:
    OU奥恩斯坦-乌伦贝克噪声(时序相关噪声,适配连续物理控制)
    dxt=θ(μ−xt)dt+σdWtdx_t = \\theta(\\mu – x_t)dt + \\sigma dW_tdxt=θ(μxt)dt+σdWt

    公式符号详解
    • xtx_txt:表示t时刻的噪声值,是最终输出的噪声信号,会直接叠加到Actor网络输出的动作上。
    • θ\\thetaθ:均值回复速度,典型取值为0.15,控制噪声回到长期均值的快慢,数值越大,噪声的波动越剧烈。
    • μ\\muμ:长期均值,DDPG中固定为0,是噪声围绕其波动的中心值。
    • σ\\sigmaσ:噪声幅度,典型取值为0.2,控制噪声的整体大小,直接决定了探索的强度。
    • dWtdW_tdWt:维纳过程(布朗运动)增量,是公式中的随机源,满足dWt∼N(0,dt)dW_t \\sim \\mathcal{N}(0, dt)dWtN(0,dt),即服从均值为0、方差为dt的正态分布。
    公式两项的本质含义
  • 第一项:确定性均值回复项 θ(μ−xt)dt\\boldsymbol{\\theta(\\mu – x_t)dt}θ(μxt)dt
    这是OU噪声与普通高斯噪声最核心的区别。当当前噪声值xtx_txt大于长期均值μ\\muμ时,该项为负值,会推动噪声向均值方向减小;当xtx_txt小于μ\\muμ时,该项为正值,会推动噪声向均值方向增大。最终效果是噪声不会像高斯噪声那样随机跳变,而是围绕均值平滑、连续地变化,完美模拟了物理系统的惯性特性,比如机器人关节不会突然从0°跳到90°。
  • 第二项:随机扩散项 σdWt\\boldsymbol{\\sigma dW_t}σdWt
    这一项引入了高斯白噪声作为随机扰动源,噪声的整体幅度由参数σ\\sigmaσ控制,直接决定了智能体探索行为的剧烈程度。
  • 四、DDPG完整数学损失与训练流程

    4.1 损失函数

    (一)Critic损失(MSE TD-loss)

    L(θQ)=1N∑i=1N[yi−Q(si,ai;θQ)]2
    L(\\theta^Q)=\\frac1N\\sum_{i=1}^N \\big[y_i – Q(s_i,a_i;\\theta^Q)\\big]^2
    L(θQ)=N1i=1N[yiQ(si,ai;θQ)]2

    yiy_iyi 不是直接来自经验回放池,它是一个计算生成的目标值,但它的基础数据确实来自经验回放池。

  • 经验回放池存储的原始数据:
    经验池 RRR 中只存储四元组 (si,ai,ri,si+1)(s_i, a_i, r_i, s_{i+1})(si,ai,ri,si+1),即:

    • 当前状态 sis_isi
    • 执行的动作 aia_iai
    • 获得的即时奖励 rir_iri
    • 转移到的下一状态 si+1s_{i+1}si+1
  • 目标Q值 yiy_iyi 的计算过程:
    yi=ri+γ⋅Q′(si+1,μ′(si+1;θμ′);θQ′)y_i=r_i+\\gamma\\cdot Q'\\big(s_{i+1},\\mu'(s_{i+1};\\theta^{\\mu'});\\theta^{Q'}\\big)yi=ri+γQ(si+1,μ(si+1;θμ);θQ)
    其中:

    • rir_irisi+1s_{i+1}si+1:直接从经验回放池采样得到
    • μ′(si+1)\\mu'(s_{i+1})μ(si+1):目标Actor网络根据下一状态 si+1s_{i+1}si+1 计算出的最优动作
    • Q′(si+1,a′)Q'(s_{i+1}, a')Q(si+1,a):目标Critic网络对"下一状态+目标动作"的价值估计
    • γ\\gammaγ:折扣因子,衡量未来奖励的重要性
  • 损失函数的本质含义:

    • Q(si,ai;θQ)Q(s_i,a_i;\\theta^Q)Q(si,ai;θQ):主Critic网络对当前状态动作对的价值估计
    • yiy_iyi:我们希望主Critic网络学习到的"真实"价值目标
    • 损失函数就是让主网络的估计值尽可能接近这个计算出来的目标值
  • (二)Actor策略梯度损失(最大化Q等价最小化负期望)

    L(θμ)=−1N∑i=1NQ(si,μ(si;θμ);θQ)
    L(\\theta^\\mu)=-\\frac1N\\sum_{i=1}^N Q\\big(s_i,\\mu(s_i;\\theta^\\mu);\\theta^Q\\big)
    L(θμ)=N1i=1NQ(si,μ(si;θμ);θQ)

    • L(θμ)L(\\theta^\\mu)L(θμ):Actor网络的损失函数,仅用于更新Actor参数 θμ\\theta^\\muθμ
    • −1N∑i=1N-\\frac1N\\sum_{i=1}^NN1i=1N:对批量样本求平均后取负,负号实现"最大化转最小化"的工程转换
    • sis_isi:从经验回放池采样的第i个状态,来自真实环境交互数据
    • μ(si;θμ)\\mu(s_i;\\theta^\\mu)μ(si;θμ):Actor网络根据状态sis_isi输出的动作,由当前Actor参数决定
    • Q(⋅;θQ)Q(\\cdot;\\theta^Q)Q(;θQ):主Critic网络对状态动作对的价值评估。计算Actor损失时,Critic网络参数θQ\\theta^QθQ完全固定,不参与梯度更新

    梯度:

    ∇θμJ≈1N∑i=1N∇aQ∣a=μ(si)⋅∇θμμ(si)
    \\nabla_{\\theta^\\mu}J\\approx \\frac1N\\sum_{i=1}^N \\nabla_a Q\\big|_{a=\\mu(s_i)}\\cdot \\nabla_{\\theta^\\mu}\\mu(s_i)
    θμJN1i=1NaQa=μ(si)θμμ(si)

    ∇θμJ=Es[∂Q(s,a)∂a⋅∂a∂θμ]
    \\nabla_{\\theta^\\mu} J = \\mathbb{E}_s \\left[ \\frac{\\partial Q(s,a)}{\\partial a} \\cdot \\frac{\\partial a}{\\partial \\theta^\\mu} \\right]
    θμJ=Es[aQ(s,a)θμa]

    其中 a=μ(s;θμ)a = \\mu(s;\\theta^\\mu)a=μ(s;θμ)

    ∇θμJ≈1N∑i=1N[∇aQ(si,a)∣a=μ(si)⋅∇θμμ(si;θμ)]
    \\nabla_{\\theta^\\mu} J \\approx \\frac1N \\sum_{i=1}^N \\left[ \\nabla_a Q(s_i,a) \\bigg|_{a=\\mu(s_i)} \\cdot \\nabla_{\\theta^\\mu} \\mu(s_i;\\theta^\\mu) \\right]
    θμJN1i=1N[aQ(si,a)a=μ(si)θμμ(si;θμ)]

    梯度公式由两个部分相乘组成,各自有非常直观的物理意义:

  • 第一部分:∇aQ∣a=μ(si)\\boldsymbol{\\nabla_a Q\\big|_{a=\\mu(s_i)}}aQa=μ(si)

    • 含义:Q值对动作的梯度
    • 通俗解释:告诉我们"动作往哪个方向调整,Q值会增加"
    • 例如:如果这个梯度是正的,说明增大当前动作的值,能获得更高的回报
  • 第二部分:∇θμμ(si)\\boldsymbol{\\nabla_{\\theta^\\mu}\\mu(s_i)}θμμ(si)

    • 含义:动作对Actor参数的梯度
    • 通俗解释:告诉我们"参数怎么调整,动作会往我们想要的方向变化"
  • 两者相乘的结果:就是Actor参数的更新方向,让动作朝着"能获得更高Q值"的方向调整,最终实现最大化期望回报的目标。

    4.2 DDPG算法训练步骤

  • 随机初始化Actor网络μ(s∣θμ)\\mu(s|\\theta^\\mu)μ(sθμ)和Critic网络Q(s,a∣θQ)Q(s,a|\\theta^Q)Q(s,aθQ)
  • 初始化目标网络参数:θμ′←θμ\\theta^{\\mu'} \\leftarrow \\theta^\\muθμθμθQ′←θQ\\theta^{Q'} \\leftarrow \\theta^QθQθQ
  • 初始化经验回放池RRR
  • 循环遍历每一轮episode,取值范围episode=1∼Mepisode=1 \\sim Mepisode=1M
    • a. 初始化本轮探索噪声过程NNN
    • b. 获取环境初始状态s1s_1s1
    • c. 逐时间步循环,t=1∼Tt=1 \\sim Tt=1T
      i. 结合策略与探索噪声选取动作:at=μ(st∣θμ)+Nta_t = \\mu(s_t|\\theta^\\mu) + N_tat=μ(stθμ)+Nt
      ii. 在环境中执行动作ata_tat,获取即时奖励rtr_trt与下一状态st+1s_{t+1}st+1
      iii. 将样本元组(st,at,rt,st+1)(s_t,a_t,r_t,s_{t+1})(st,at,rt,st+1)存入经验回放池RRR
      iv. 从回放池RRR中随机采样小批量样本(si,ai,ri,si+1)(s_i,a_i,r_i,s_{i+1})(si,ai,ri,si+1)
      v. 计算目标Q值:yi=ri+γQ′(si+1,μ′(si+1∣θμ′)∣θQ′)y_i = r_i + \\gamma Q'(s_{i+1}, \\mu'(s_{i+1}|\\theta^{\\mu'})|\\theta^{Q'})yi=ri+γQ(si+1,μ(si+1θμ)θQ)
      vi. 最小化Critic损失 L=1N∑(yi−Q(si,ai∣θQ))2L=\\frac{1}{N}\\sum(y_i-Q(s_i,a_i|\\theta^Q))^2L=N1(yiQ(si,aiθQ))2,更新参数θQ\\theta^QθQ
      vii. 利用确定性策略梯度更新Actor:
      ∇θμJ≈1N∑∇aQ(s,a∣θQ)∣s=si,a=μ(si)⋅∇θμμ(s∣θμ)∣si\\nabla_{\\theta^\\mu}J \\approx \\frac{1}{N}\\sum \\nabla_a Q(s,a|\\theta^Q)\\big|_{s=s_i,a=\\mu(s_i)} \\cdot \\nabla_{\\theta^\\mu}\\mu(s|\\theta^\\mu)\\big|_{s_i}θμJN1aQ(s,aθQ)s=si,a=μ(si)θμμ(sθμ)si
      viii. 软更新两组目标网络参数:
      θμ′←τθμ+(1−τ)θμ′θQ′←τθQ+(1−τ)θQ′
      \\theta^{\\mu'}\\leftarrow \\tau \\theta^\\mu + (1-\\tau)\\theta^{\\mu'} \\\\
      \\theta^{Q'} \\leftarrow \\tau \\theta^Q + (1-\\tau)\\theta^{Q'}
      θμτθμ+(1τ)θμθQτθQ+(1τ)θQ

      ix. 若st+1s_{t+1}st+1为终止状态,结束当前时间步循环。
  • 全部训练迭代完成,保存训练后的最优Actor策略网络。
  • 五、超参数推荐与训练排错

    5.1 通用超参

    参数推荐值
    γ\\gammaγ折扣 0.99
    软更新τ\\tauτ 0.001
    Actor学习率 1e-4
    Critic学习率 1e-3
    batch_size 64~256
    回放池容量 1e5~1e6
    OU噪声σ 0.2

    5.2 常见问题

  • Q剧烈震荡:下调学习率、减小τ\\tauτ、扩充回放池;
  • 局部最优:提升初始噪声、缓慢衰减探索;
  • Critic过拟合:L2正则、少量Dropout。
  • 六、DDPG优缺点与适用场景

    6.1 优点

  • 首个落地高维连续动作深度RL框架,打通连续控制;
  • DPG单重期望,样本效率远优于随机策略梯度;
  • Off-Policy,复用历史样本,代码易实现。
  • 6.2 缺点

  • 超参数敏感、调参难度大;
  • Critic普遍存在过估计偏差;
  • 纯外加噪声探索,后期容易困在局部最优。
  • 6.3 适用场景

    机械臂控制、小车倒立摆、自动驾驶转向调速、连续型赛车游戏等中低维连续控制。

    七、后续衍生算法演进

    • TD3:双Critic抑制过估计、Actor延迟更新,DDPG工业优化版;
    • SAC:最大熵+随机策略,鲁棒性更强、少调参;
    • D4PG:分布式+分布价值+N步回报,面向大规模复杂控制。

    八、总结

    DDPG依托DPG确定性策略梯度理论,结合DQN经验回放与目标网络,奠定现代连续动作强化学习的基准架构。虽原生缺陷较多,但仍是学习TD3、SAC等进阶算法必不可少的前置基础。

    赞(0)
    未经允许不得转载:171主机测评 » DDPG 深度解析:确定性策略梯度 DPG 原理,连续动作空间强化学习开山算法
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址