强化学习DDPG算法
DDPG(Deep Deterministic Policy Gradient)算法详解
1. 背景与动机
- 问题场景:DDPG 是为解决连续动作空间的强化学习问题而设计的(如机器人控制、自动驾驶),而传统DQN仅适用于离散动作空间。
- DQN的局限性:
- DQN通过Q-learning框架选择离散动作(如“左/右”),但无法处理连续动作(如“方向盘转动角度”)。
- 高维连续动作空间中,DQN需要遍历所有可能的动作计算Q值,计算复杂度爆炸。
- DPG的启发:
- Deterministic Policy Gradient(DPG)是一种直接优化确定性策略的方法(输出确定动作,而非动作的概率分布),适用于连续控制。
- DDPG将DPG与深度神经网络结合,并引入DQN的经验回放和目标网络技术,提升稳定性和样本效率。
2. DDPG核心原理
DDPG属于Actor-Critic架构,结合了策略梯度(Policy Gradient)和值函数近似(Q-learning)。
2.1 网络结构
- Actor网络(策略网络):
- 输入:状态(State)
- 输出:确定性动作(Action)
- 目标:直接输出最优动作,最大化Q值。
- Critic网络(价值网络):
- 输入:状态(State) + 动作(Action)
- 输出:Q值(评估当前状态动作对的长期收益)
- 目标:准确估计Q值,指导Actor更新。
2.2 核心思想
- 确定性策略梯度:
- 策略函数为确定性函数: a = μ ( s ∣ θ μ ) a = \mu(s|\theta^\mu) a=μ(s∣θμ)
- 策略梯度公式:
∇ θ μ J ≈ E s ∼ ρ β [ ∇ a Q ( s , a ∣ θ Q ) ∣ a = μ ( s ∣ θ μ ) ∇ θ μ μ ( s ∣ θ μ ) ] \nabla_{\theta^\mu} J \approx \mathbb{E}_{s \sim \rho^\beta} \left[ \nabla_a Q(s,a|\theta^Q) \big|_{a=\mu(s|\theta^\mu)} \nabla_{\theta^\mu} \mu(s|\theta^\mu) \right] ∇θμJ≈Es∼ρβ[∇aQ(s,a∣θQ) a=μ(s∣θμ)∇θμμ(s∣θμ)] - 通过链式法则,Critic的Q值梯度指导Actor更新策略。
- 目标网络与软更新:
- 使用独立的目标Actor网络(参数 θ μ ′ \theta^{\mu'} θμ′)和目标Critic网络(参数 θ Q ′ \theta^{Q'} θQ′),缓解训练不稳定性。
- 软更新公式:
θ t a r g e t ← τ θ + ( 1 − τ ) θ t a r g e t ( τ ≪ 1 , 如 0.001 ) \theta_{target} \leftarrow \tau \theta + (1-\tau)\theta_{target} \quad (\tau \ll 1, \text{如} 0.001) θtarget←τθ+(1−τ)θtarget(τ≪1,如0.001)
2.3 算法流程
-
初始化:
- Actor当前网络 μ ( s ∣ θ μ ) \mu(s|\theta^\mu) μ(s∣θμ) 和 Critic当前网络 Q ( s , a ∣ θ Q ) Q(s,a|\theta^Q) Q(s,a∣θQ)
- 目标网络 μ ′ ( s ∣ θ μ ′ ) \mu'(s|\theta^{\mu'}) μ′(s∣θμ′) 和 Q ′ ( s , a ∣ θ Q ′ ) Q'(s,a|\theta^{Q'}) Q′(s,a∣θQ′)(初始参数相同)
- 经验回放池(Replay Buffer)
-
交互与采样:
- Actor根据当前策略选择动作 a t = μ ( s t ∣ θ μ ) + N t a_t = \mu(s_t|\theta^\mu) + \mathcal{N}_t at=