深度确定性策略梯度(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框架、目标网络和经验回放等技术解决这一问题。
解题过程循序渐进讲解
-
问题背景与算法动机
- 连续动作空间(如机器人控制、自动驾驶)中,动作是实数向量(如速度、角度),传统DQN无法直接处理(需离散化动作,导致维度爆炸)。
- DDPG的核心思想:使用确定性策略(给定状态,直接输出唯一动作),通过梯度上升优化策略。
- 关键借鉴:
- DPG理论:策略梯度定理的确定性版本,证明可直接计算策略梯度。
- DQN技术:目标网络(Target Network)和经验回放(Experience Replay)提升稳定性。
-
Actor-Critic框架设计
- Actor网络(策略网络):
- 输入:状态 \(s\)
- 输出:确定性动作 \(a = \mu(s)\)(如通过tanh激活函数约束动作范围)。
- 目标:学习策略 \(\mu\) 以最大化期望累积奖励。
- Critic网络(价值网络):
- 输入:状态 \(s\) 和动作 \(a\)
- 输出:动作价值 \(Q(s, a)\)
- 目标:准确评估当前策略的价值,为Actor提供梯度方向。
- 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)] \]
- 步骤:
1. 计算动作 $ a = \mu(s) $ 对Q值的梯度 $ \nabla_a Q(s, a) $。
2. 计算策略 $ \mu(s) $ 对Actor参数 $ \theta^\mu $ 的梯度 $ \nabla_{\theta^\mu} \mu(s) $。
3. 结合两者更新Actor参数(梯度上升)。
- 直观理解:调整策略,使动作朝向能提升Q值的方向移动。
- 探索策略的改进
- 确定性策略本身无探索性(相同状态总是输出相同动作)。
- DDPG添加噪声到动作中:
\[ a_t = \mu(s_t) + \mathcal{N} \]
常用Ornstein-Uhlenbeck噪声(时间相关性噪声,适合物理控制)或高斯噪声。
- 注意:噪声仅用于交互收集数据,不影响梯度计算。
- 训练流程总结
- 初始化在线网络和目标网络参数。
- 循环每一步:
- 根据当前策略(加噪声)执行动作,存储转移样本到回放缓冲区。
- 从缓冲区采样小批量数据。
- 更新Critic网络(最小化Q值误差)。
- 更新Actor网络(策略梯度上升)。
- 软更新目标网络参数。
- 持续直到策略收敛。
关键优势与挑战
- 优势:直接处理连续动作,样本效率高,适用于复杂控制任务。
- 挑战:对超参数(如学习率、噪声参数)敏感,训练可能不稳定。后续算法(如TD3)在此基础上进一步改进。