DDPG 算法直觉 (without code)

DDPG 算法直觉 (without code)

DDPG 算法直觉

DDPG 是一种面向连续动作空间的 off-policy Actor-Critic 算法,它将确定性策略梯度与 DQN 的经验回放、目标网络等稳定训练机制结合,使智能体能够直接学习连续控制任务中的动作策略。

DDPG 算法类型

off-policy

DDPG 的 Actor 是确定性策略 \(μ(s)\),实际训练中采样时需要添加噪声 \(a_t=μ(s_t∣θ^μ)+N_t\);而学习/优化的目标策略则是 \(μ(s)\)。产生数据的策略和被优化的目标策略不同,所以 DDPG 是 off-policy

deterministic policy

DDPG 直接学“在这个状态下应该输出什么动作”,Actor 直接输出一个具体动作 \(a=μ(s∣θ^μ)\)。理论基础来自 Silver et al. 2014 的 Deterministic Policy Gradient

算法直觉

DDPG基于 AC 框架维护四个网络,一组 online network 与 一组 target network:

DDPG四个网络

Actor 负责解决连续动作选择,Critic 负责价值评估;target Actor + target Critic 负责提供稳定的 TD target。

原因:如果都用当前 online 网络,target 会随着 Actor 和 Critic 每次更新一起剧烈变化,训练容易震荡或发散。

1. 收集 replay buffer

在线 Actor 网络通过环境状态直接输出基于确定性策略的动作,添加噪声以保证探索:

\[ a_t=μ(s_t∣θ^μ)+N_t \]

环境执行动作,收集 \(r_t, s_{t+1}\),把 transition 存入 replay buffer:

\[(s_t,a_t,r_t,s_{t+1}) \]

2. 从 buffer 中采样 batch

3. 构造 TD target

DDPG目标网络

基于每一条 transition,Target Actor 负责计算出下一个动作(不需要探索):

\[ a'_{i+1}=μ'(s_{i+1}) \]

通过 Target Critic 评估下一步状态:

\[Q'(s_{i+1},a'_{i+1}) \]

基于 Bellman 方程计算 target (Advantage):

\[y_i =r_i + Q'(s_{i+1},a'_{i+1}) \]

4. 优化

在线网络 (梯度更新)

Actor 输出:

\[a=μ(s∣θ_μ) \]

Critic 评价这个动作:

\[Q(s,μ(s)) \]

Online Critic 优化目标是接近 \(y_i\),基于以上得到的 target,进行 MSE 优化:

\[L=(Q(s,a)−y)^2 \]

Critic 的更新就是普通的均方误差反向传播:

\[θ^Q←θ^Q−α∇_{θQ}L \]

Online Actor 优化目标是输出的动作,使 Critic 给出的 Q 值尽量大:

\[J(θ^μ)=E_s[Q(s,μ(s∣θ^μ))] \]

实际训练中通常写成最小化 loss:

\[L_{actor}=−1/N∑Q(s_i,μ(s_i)) \]

目标网络 (soft update)

主网络负责快速学习,target network 负责提供相对稳定的学习目标。target critic 和 target actor 不参与梯度更新,只从主网络慢慢复制:

\[θ^{Q'}←τθ^{Q'}+(1−τ)θ^{Q'} \]

\[θ^{μ'}←τθ^{μ'}+(1−τ)θ^{μ'} \]

其中 \(\tau\)很小,比如 0.001。


算法流程图(图源chatgpt)

DDPG流程


引用

  1. Lillicrap, T.P., Hunt, J.J., Pritzel, A., Heess, N., Erez, T., Tassa, Y., Silver, D. and Wierstra, D. (2016) ‘Continuous control with deep reinforcement learning’, International Conference on Learning Representations (ICLR). Available at: arXiv:1509.02971.