深度确定性策略梯度(Deep Deterministic Policy Gradient, DDPG)算法的原理与训练过程
字数 2207 2025-10-29 11:31:55

深度确定性策略梯度(Deep Deterministic Policy Gradient, DDPG)算法的原理与训练过程

题目描述
DDPG是一种面向连续动作空间的深度强化学习算法,它结合了确定性策略梯度(Deterministic Policy Gradient, DPG)和深度Q网络(DQN)的思想。核心挑战在于如何在高维连续动作空间中高效学习策略,同时保持训练稳定性。DDPG通过Actor-Critic框架、目标网络和经验回放等技术解决这一问题。

解题过程循序渐进讲解

  1. 问题背景与算法动机

    • 连续动作空间(如机器人控制、自动驾驶)中,动作是实数向量(如速度、角度),传统DQN无法直接处理(需离散化动作,导致维度爆炸)。
    • DDPG的核心思想:使用确定性策略(给定状态,直接输出唯一动作),通过梯度上升优化策略。
    • 关键借鉴:
      • DPG理论:策略梯度定理的确定性版本,证明可直接计算策略梯度。
      • DQN技术:目标网络(Target Network)和经验回放(Experience Replay)提升稳定性。
  2. Actor-Critic框架设计

    • Actor网络(策略网络)
      • 输入:状态 \(s\)
      • 输出:确定性动作 \(a = \mu(s)\)(如通过tanh激活函数约束动作范围)。
      • 目标:学习策略 \(\mu\) 以最大化期望累积奖励。
    • Critic网络(价值网络)
      • 输入:状态 \(s\) 和动作 \(a\)
      • 输出:动作价值 \(Q(s, a)\)
      • 目标:准确评估当前策略的价值,为Actor提供梯度方向。
  3. 目标网络与软更新

    • 直接使用单一网络易导致训练发散(类似DQN的问题)。
    • DDPG维护两套网络:
      • 在线网络(Online Network):参数 \(\theta^\mu\)(Actor)、\(\theta^Q\)(Critic),用于交互和环境学习。
      • 目标网络(Target Network):参数 \(\theta^{\mu'}\)\(\theta^{Q'}\),用于稳定计算目标Q值。
    • 软更新(Soft Update)

\[ \theta^{\mu'} \leftarrow \tau \theta^\mu + (1-\tau) \theta^{\mu'}, \quad \theta^{Q'} \leftarrow \tau \theta^Q + (1-\tau) \theta^{Q'} \]

 其中 $ \tau \ll 1 $(如0.001),使目标网络参数缓慢跟踪在线网络,避免剧烈波动。
  1. 经验回放(Experience Replay)

    • 存储转移样本 \((s, a, r, s', d)\)(状态、动作、奖励、下一状态、终止标志)到回放缓冲区。
    • 训练时随机采样小批量(Mini-batch)数据,打破时间相关性,提高数据效率。
  2. Critic网络的训练与损失函数

    • 目标Q值计算(类似DQN,但基于目标网络):

\[ y = r + \gamma (1-d) Q'(s', \mu'(s')) \]

 其中 $ \mu'(s') $ 由目标Actor网络生成,$ Q' $ 由目标Critic网络计算。  
  • 损失函数采用均方误差:

\[ L(\theta^Q) = \mathbb{E}[(y - Q(s, a))^2] \]

 通过梯度下降最小化损失,使Critic更准确估计Q值。
  1. Actor网络的策略梯度更新
    • 目标:最大化期望回报 \(J(\theta^\mu) = \mathbb{E}[Q(s, \mu(s))]\)
    • 策略梯度公式(链式法则):

\[ \nabla_{\theta^\mu} J \approx \mathbb{E}[\nabla_a Q(s, a)|_{a=\mu(s)} \nabla_{\theta^\mu} \mu(s)] \]

 - 步骤:  
   1. 计算动作 $ a = \mu(s) $ 对Q值的梯度 $ \nabla_a Q(s, a) $。  
   2. 计算策略 $ \mu(s) $ 对Actor参数 $ \theta^\mu $ 的梯度 $ \nabla_{\theta^\mu} \mu(s) $。  
   3. 结合两者更新Actor参数(梯度上升)。  
  • 直观理解:调整策略,使动作朝向能提升Q值的方向移动。
  1. 探索策略的改进
    • 确定性策略本身无探索性(相同状态总是输出相同动作)。
    • DDPG添加噪声到动作中:

\[ a_t = \mu(s_t) + \mathcal{N} \]

 常用Ornstein-Uhlenbeck噪声(时间相关性噪声,适合物理控制)或高斯噪声。  
  • 注意:噪声仅用于交互收集数据,不影响梯度计算。
  1. 训练流程总结
    • 初始化在线网络和目标网络参数。
    • 循环每一步:
      1. 根据当前策略(加噪声)执行动作,存储转移样本到回放缓冲区。
      2. 从缓冲区采样小批量数据。
      3. 更新Critic网络(最小化Q值误差)。
      4. 更新Actor网络(策略梯度上升)。
      5. 软更新目标网络参数。
    • 持续直到策略收敛。

关键优势与挑战

  • 优势:直接处理连续动作,样本效率高,适用于复杂控制任务。
  • 挑战:对超参数(如学习率、噪声参数)敏感,训练可能不稳定。后续算法(如TD3)在此基础上进一步改进。
深度确定性策略梯度(Deep Deterministic Policy Gradient, DDPG)算法的原理与训练过程 题目描述 DDPG是一种面向连续动作空间的深度强化学习算法,它结合了确定性策略梯度(Deterministic Policy Gradient, DPG)和深度Q网络(DQN)的思想。核心挑战在于如何在高维连续动作空间中高效学习策略,同时保持训练稳定性。DDPG通过Actor-Critic框架、目标网络和经验回放等技术解决这一问题。 解题过程循序渐进讲解 问题背景与算法动机 连续动作空间(如机器人控制、自动驾驶)中,动作是实数向量(如速度、角度),传统DQN无法直接处理(需离散化动作,导致维度爆炸)。 DDPG的核心思想:使用确定性策略(给定状态,直接输出唯一动作),通过梯度上升优化策略。 关键借鉴: DPG理论 :策略梯度定理的确定性版本,证明可直接计算策略梯度。 DQN技术 :目标网络(Target Network)和经验回放(Experience Replay)提升稳定性。 Actor-Critic框架设计 Actor网络(策略网络) : 输入:状态 \( s \) 输出:确定性动作 \( a = \mu(s) \)(如通过tanh激活函数约束动作范围)。 目标:学习策略 \( \mu \) 以最大化期望累积奖励。 Critic网络(价值网络) : 输入:状态 \( s \) 和动作 \( a \) 输出:动作价值 \( Q(s, a) \) 目标:准确评估当前策略的价值,为Actor提供梯度方向。 目标网络与软更新 直接使用单一网络易导致训练发散(类似DQN的问题)。 DDPG维护两套网络: 在线网络(Online Network) :参数 \( \theta^\mu \)(Actor)、\( \theta^Q \)(Critic),用于交互和环境学习。 目标网络(Target Network) :参数 \( \theta^{\mu'} \)、\( \theta^{Q'} \),用于稳定计算目标Q值。 软更新(Soft Update) : \[ \theta^{\mu'} \leftarrow \tau \theta^\mu + (1-\tau) \theta^{\mu'}, \quad \theta^{Q'} \leftarrow \tau \theta^Q + (1-\tau) \theta^{Q'} \] 其中 \( \tau \ll 1 \)(如0.001),使目标网络参数缓慢跟踪在线网络,避免剧烈波动。 经验回放(Experience Replay) 存储转移样本 \( (s, a, r, s', d) \)(状态、动作、奖励、下一状态、终止标志)到回放缓冲区。 训练时随机采样小批量(Mini-batch)数据,打破时间相关性,提高数据效率。 Critic网络的训练与损失函数 目标Q值计算(类似DQN,但基于目标网络): \[ y = r + \gamma (1-d) Q'(s', \mu'(s')) \] 其中 \( \mu'(s') \) 由目标Actor网络生成,\( Q' \) 由目标Critic网络计算。 损失函数采用均方误差: \[ L(\theta^Q) = \mathbb{E}[ (y - Q(s, a))^2 ] \] 通过梯度下降最小化损失,使Critic更准确估计Q值。 Actor网络的策略梯度更新 目标:最大化期望回报 \( J(\theta^\mu) = \mathbb{E}[ Q(s, \mu(s)) ] \)。 策略梯度公式(链式法则): \[ \nabla_ {\theta^\mu} J \approx \mathbb{E}[ \nabla_ a Q(s, a)| {a=\mu(s)} \nabla {\theta^\mu} \mu(s) ] \] 步骤: 计算动作 \( a = \mu(s) \) 对Q值的梯度 \( \nabla_ a Q(s, a) \)。 计算策略 \( \mu(s) \) 对Actor参数 \( \theta^\mu \) 的梯度 \( \nabla_ {\theta^\mu} \mu(s) \)。 结合两者更新Actor参数(梯度上升)。 直观理解:调整策略,使动作朝向能提升Q值的方向移动。 探索策略的改进 确定性策略本身无探索性(相同状态总是输出相同动作)。 DDPG添加噪声到动作中: \[ a_ t = \mu(s_ t) + \mathcal{N} \] 常用Ornstein-Uhlenbeck噪声(时间相关性噪声,适合物理控制)或高斯噪声。 注意:噪声仅用于交互收集数据,不影响梯度计算。 训练流程总结 初始化在线网络和目标网络参数。 循环每一步: 根据当前策略(加噪声)执行动作,存储转移样本到回放缓冲区。 从缓冲区采样小批量数据。 更新Critic网络(最小化Q值误差)。 更新Actor网络(策略梯度上升)。 软更新目标网络参数。 持续直到策略收敛。 关键优势与挑战 优势:直接处理连续动作,样本效率高,适用于复杂控制任务。 挑战:对超参数(如学习率、噪声参数)敏感,训练可能不稳定。后续算法(如TD3)在此基础上进一步改进。