一、策略梯度算法

1. 从基于价值到基于策略

传统Q学习学习动作价值函数,而策略梯度直接学习参数化策略 πθ(a∣s),目标函数为期望回报:

J(\theta) = \mathbb{E}_{s_0}[V^{\pi_\theta}(s_0)]

通过梯度上升最大化目标函数。策略梯度定理给出:

\nabla_\theta J(\theta) = \mathbb{E}_{\pi_\theta}\left[\nabla_\theta \log \pi_\theta(a|s) \cdot Q^{\pi_\theta}(s,a)\right]

2. REINFORCE算法

使用蒙特卡洛方法估计 Q(s,a),梯度为:

\nabla_\theta J(\theta) = \mathbb{E}_{\pi_\theta}\left[\sum_{t=0}^T \left(\sum_{t'=t}^T \gamma^{t'-t} r_{t'}\right) \nabla_\theta \log \pi_\theta(a_t|s_t)\right]

流程:采样轨迹 → 计算每个时刻的回报 ψt → 更新参数 θ=θ+α∑tψt∇θlog⁡πθ(at∣st)

二、Actor-Critic框架

1. 核心思想

用可训练的价值网络(Critic)替代蒙特卡洛估计,降低方差。策略梯度的一般形式:

g = \mathbb{E}\left[\sum_{t=0}^T \psi_t \nabla_\theta \log \pi_\theta(a_t|s_t)\right]

其中 ψt可以是TD残差 rt+γV(st+1)−V(st)或优势函数 A(s,a)=Q(s,a)−V(s)。

2. A2C算法

  • Actor更新:θ←θ+αθ∑δt∇θlog⁡πθ(at∣st)

  • Critic更新:损失函数 L(\omega)=\frac{1}{2}\left(r+\gamma V_\omega(s_{t+1})-V_\omega(s_t)\right)^2,梯度下降更新

3. A3C(异步A2C)

使用多线程并行采样,梯度异步更新,大幅提升训练效率。

三、确定性策略梯度(DPG)与DDPG

1. 确定性策略

随机策略:a∼πθ(⋅∣s)
确定性策略:a=μθ(s)(连续动作空间可微)

确定性策略梯度定理:

\nabla_\theta J(\pi_\theta) = \mathbb{E}_{s \sim \rho^\pi}\left[\nabla_\theta \mu_\theta(s) \nabla_a Q^\pi(s,a)\big|_{a=\mu_\theta(s)}\right]

2. DDPG算法

解决DPG+神经网络不稳定的问题,采用:

  • 经验回放(off-policy)

  • 目标网络(软更新 ττ)

  • 批标准化

  • 动作噪声探索

更新流程:

  • Critic最小化 L=1/N∑(yi−Qω(si,ai))2,其中y_i = r_i + \gamma Q_{\omega^-}\left(s_{i+1}, \mu_{\theta^-}(s_{i+1})\right)

  • Actor通过链式法则更新\nabla_\theta J \approx \frac{1}{N}\sum_{i=1}^N \nabla_\theta \mu_\theta(s_i) \nabla_a Q_\omega(s_i,a)\big|_{a=\mu_\theta(s_i)}


四、SAC算法(Soft Actor-Critic)

1. 最大熵强化学习

目标函数加入熵正则项,鼓励探索:

\pi^* = \arg\max_\pi \mathbb{E}_\pi\left[\sum_t r(s_t,a_t) + \alpha H(\pi(\cdot|s_t))\right]

Soft贝尔曼方程:

Q(s_t,a_t) = r(s_t,a_t) + \gamma \mathbb{E}_{s_{t+1}}[V(s_{t+1})]

V(s_t) = \mathbb{E}_{a_t \sim \pi}[Q(s_t,a_t) - \alpha \log \pi(a_t|s_t)]

2. SAC核心技巧

  • 使用两个Q网络(取min缓解过高估计)

  • 重参数化技巧使采样可导:at=fθ(ϵt;st)at​=fθ​(ϵt​;st​)

  • 自动调整熵正则系数 αα,损失函数L(\alpha)=\mathbb{E}_{s_t \sim R, a_t \sim \pi}\left[-\alpha \log \pi(a_t|s_t) - \alpha \mathcal{H}_0\right]

3. 算法流程

初始化Q网络、策略网络、目标网络、经验池 → 每个时间步采样动作交互 → 存储 → 从回放池采样 → 计算目标y → 更新Critic → 重参数化更新Actor → 更新αα → 软更新目标网络


五、基于模型的控制

1. 模型预测控制(MPC)

无显式策略,每步生成候选动作序列,推演未来 HH 步,选最优序列的第一个动作执行。

\arg\max_{a_{k:k+H}} \sum_{t=k}^{k+H} r(s_t,a_t) \quad \text{s.t.} \quad s_{t+1} = \hat{P}(s_t,a_t)

打靶法

  • 随机打靶:随机采样动作序列

  • 交叉熵方法(CEM):维护分布,保留最优M条序列更新分布,迭代优化

2. PETS算法

概率集成与轨迹采样。环境模型输出高斯分布 \hat{P}(s_t,a_t) = \mathcal{N}\bigl(\mu_\theta(s_t,a_t), \Sigma_\theta(s_t,a_t)\bigr),损失函数为负对数似然:

\mathcal{L}(\theta) = \sum_{n=1}^{N} \left[ (\mu_\theta(s_n,a_n)-s_{n+1})^\top \Sigma_\theta^{-1}(s_n,a_n) (\mu_\theta(s_n,a_n)-s_{n+1}) + \log\det \Sigma_\theta(s_n,a_n) \right]

  • 第一项:马氏距离(加权预测误差)

  • 第二项:协方差正则,防止方差坍缩

集成多个模型(不同初始化+不同数据)捕捉认知不确定性,MPC时随机选模型预测。

3. MBPO算法(基于模型的策略优化)

关键观察:模型推演步数过长累积误差大。解决方案:分支推演——从真实采样状态开始,用模型推演短步数(k步),生成数据用于训练策略。无模型部分使用SAC。


六、DRL控制应用案例

案例一:无人机自主导航与避障

  • 状态:自身状态(位置/速度/姿态)+ 传感器(雷达/视觉)

  • 动作:连续三维加速度或角速度

  • 奖励:距离目标负惩罚(−d−d)、碰撞惩罚(-100)、能耗惩罚(−∥a∥2×0.01−∥a∥2×0.01)、成功奖励(+500)

  • 算法:PPO(稳定、样本效率高)或SAC(平滑、鲁棒)

案例二:机械臂轨迹跟踪

  • 动力学M(\theta)\ddot{\theta} + C(\theta,\dot{\theta})\dot{\theta} + G(\theta) = \tau

  • 任务:末端执行器精确跟踪“8”字等轨迹

  • 奖励:跟踪误差惩罚r_{\text{error}} = -\| \text{error}_{ee} \|^2 + 控制平滑惩罚r_{\text{control}} = -\| \tau \|^2 \times 0.01

  • 结果:SAC跟踪精度达微米级,抗扰动能力远超PID

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐