一、基于策略的方法

1. 基本思想

前面学过的 Q-learning、DQN 等方法属于基于价值的方法,即先学习价值函数,再由价值函数导出策略,例如

$a^*(s)=\arg\max_a Q(s,a)$
基于策略的方法则直接学习策略本身。若策略参数化为 $\pi_\theta(a\mid s)$,则目标是最大化其期望回报:
$J(\theta)=\mathbb{E}_{s_0}[V^{\pi_\theta}(s_0)]$
因此,这类方法的核心是直接对策略参数 $\theta$ 做优化。

2. 策略梯度

策略梯度定理给出了目标函数对参数的梯度形式:

$\nabla_\theta J(\theta)=\mathbb{E}_{(s,a)\sim\pi_\theta}\left[Q^{\pi_\theta}(s,a)\nabla_\theta\log\pi_\theta(a\mid s)\right]$
它的含义是:若某个动作带来的长期回报较高,就提高该动作在当前状态下的概率。于是参数可按梯度上升更新:
$\theta\leftarrow\theta+\alpha\nabla_\theta J(\theta)$
和 Q 学习相比,策略梯度是直接优化策略,而不是先优化价值函数。

3. REINFORCE

REINFORCE 用蒙特卡洛回报估计策略梯度。定义从时刻 $t$ 开始的回报为

$G_t=\sum_{t'=t}^{T}\gamma^{t'-t}r_{t'}$

则策略梯度可估计为

$\nabla_\theta J(\theta)=\mathbb{E}_{\pi_\theta}\left[\sum_{t=0}^{T}G_t\nabla_\theta\log\pi_\theta(a_t\mid s_t)\right]$

它的优点是形式直接,缺点是必须等回合结束后才能更新,而且方差较大。

4. Actor-Critic

REINFORCE 方差较大,因此引入 Actor-Critic 框架。

- Actor:策略网络$\pi_\theta(a\mid s)$
- Critic:价值网络 $V_\omega(s)$$Q_\phi(s,a)$

它的思想是:用 Critic 估计价值,用 Actor 更新策略。策略梯度可写成更一般的形式:

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

其中 $\psi_t$ 可以取回报、优势函数或 TD 误差。最常见的是一步 TD 误差:

$\delta_t=r_t+\gamma V_\omega(s_{t+1})-V_\omega(s_t)$

于是 Actor 可按

$\theta\leftarrow\theta+\alpha\delta_t\nabla_\theta\log\pi_\theta(a_t\mid s_t)$

来更新。

5. A2C 与 A3C

优势函数定义为

$A^\pi(s,a)=Q^\pi(s,a)-V^\pi(s)$

它表示动作相对当前平均水平的好坏。A2C 用优势函数或 TD 误差更新 Actor,用价值函数更新 Critic。Critic 的常见损失为

$L(\omega)=\frac{1}{2}\left(r_t+\gamma V_\omega(s_{t+1})-V_\omega(s_t)\right)^2$

A3C 则是在 A2C 基础上采用多线程异步并行。PPT 中给出的 $k$ 步优势估计为

$A(s_t,a_t;\theta_v)=\sum_{i=0}^{k-1}\gamma^i r_{t+i}+\gamma^k V(s_{t+k};\theta_v)-V(s_t;\theta_v)$

它的优点是并行采样快,且能降低样本相关性。

6. 确定性策略梯度

在连续动作空间中,随机策略可以写成分布,但也可以直接使用确定性策略$\nabla_\theta J(\mu_\theta)=\mathbb{E}_{s\sim\rho^\mu}\left[\nabla_\theta\mu_\theta(s)\nabla_a Q_w(s,a)\big|_{a=\mu_\theta(s)}\right]$

$a=\mu_\theta(s)$

这时目标函数可写为

$J(\mu_\theta)=\mathbb{E}_{s\sim\rho^\mu}[Q_w(s,\mu_\theta(s))]$

对应的确定性策略梯度为

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

它避免了在连续动作空间中显式求 $\arg\max_a Q(s,a)$。

7. DDPG

DDPG 是深度确定性策略梯度方法,属于连续控制中的经典 Actor-Critic 算法。

- Actor:确定性策略 $\mu_\theta(s)$
- Critic:动作价值函数 $Q_\omega(s,a)$

它使用经验回放、目标网络和动作噪声来提高稳定性。Critic 的目标值为

$y_t=r_t+\gamma Q_{\omega^-}(s_{t+1},\mu_{\theta^-}(s_{t+1}))$

损失函数为

$L(\omega)=\mathbb{E}\left[\frac{1}{2}(Q_\omega(s_t,a_t)-y_t)^2\right]$

Actor 的更新方向为

$\nabla_\theta J(\mu_\theta)=\mathbb{E}_{s\sim\mathcal{D}}\left[\nabla_\theta\mu_\theta(s)\nabla_a Q_\omega(s,a)\big|_{a=\mu_\theta(s)}\right]$

由于确定性策略本身不探索,实际执行时通常加入噪声:

$a_t=\mu_\theta(s_t)+\mathcal{N}_t$

8. SAC

DDPG 虽然有效,但训练稳定性一般。SAC 是更稳定的离线策略算法,属于最大熵强化学习方法。

最大熵强化学习不仅最大化奖励,还最大化策略熵:

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

其中

$H(\pi(\cdot\mid s))=\mathbb{E}_{a\sim\pi}[-\log\pi(a\mid s)]$

Soft Bellman 方程为

$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\mid s_t)]$

SAC 使用两个 Q 网络缓解过估计。Q 网络目标通常写为

$y_t=r_t+\gamma\left(\min_{j=1,2}Q_{\omega_j^-}(s_{t+1},a_{t+1})-\alpha\log\pi_\theta(a_{t+1}\mid s_{t+1})\right)$

策略损失为

$L_\pi(\theta)=\mathbb{E}\left[\alpha\log\pi_\theta(a_t\mid s_t)-\min_{j=1,2}Q_{\omega_j}(s_t,a_t)\right]$

SAC 的特点是训练更稳定、样本效率更高,在连续控制中表现较好。

二、基于模型的方法

1. 基本思想

无模型方法不显式学习环境动态,而基于模型的方法会先学习环境模型,再利用模型辅助决策或训练。环境模型通常写为

$\hat{P}(s_{t+1}\mid s_t,a_t)$

必要时也可学习奖励模型$\hat{r}(s_t,a_t)$。这样,智能体就可以在模型中“想象”未来轨迹。

2. 模型预测控制(MPC)

MPC 的思想是:在每一步都利用模型向前推演若干步,搜索未来一段动作序列,然后只执行最优序列的第一个动作。

在第 $k$ 步、预测时域为 $H$ 时,优化问题写为

$\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)$

MPC 不一定显式学习一个固定策略,而是反复进行“规划 - 执行一步 - 再规划”。

3. 随机打靶法与 CEM

MPC 的关键是如何生成候选动作序列。

随机打靶法的做法是:随机采样 $N$ 条长度为 $H$ 的动作序列,分别用模型评估回报,再选最优序列的第一个动作执行。

交叉熵方法(CEM)则更高效。它维护一个参数化分布,例如

$a_{k:k+H}\sim\mathcal{N}(\mu,\Sigma)$

每轮采样若干条序列,保留高回报的精英样本,再用它们更新分布参数:

$\mu\leftarrow\frac{1}{|\mathcal{E}|}\sum_{\tau\in\mathcal{E}}\tau$

$\Sigma\leftarrow\frac{1}{|\mathcal{E}|}\sum_{\tau\in\mathcal{E}}(\tau-\mu)(\tau-\mu)^T$

因此,CEM 比纯随机打靶更能利用已有的好结果。

4. PETS

PETS(Probabilistic Ensembles with Trajectory Sampling)是典型的基于模型强化学习方法。它结合了概率模型、模型集成和 MPC。

PETS 认为系统中有两类不确定性:

- 偶然不确定性:环境本身随机
- 认知不确定性:模型因数据不足而不确定

为刻画偶然不确定性,PETS 将环境模型写成高斯分布:

$\hat{P}_\theta(s_t,a_t)=\mathcal{N}(\mu_\theta(s_t,a_t),\Sigma_\theta(s_t,a_t))$

其训练损失本质上来自高斯负对数似然:

$L(\theta)=\sum_{n=1}^{N}\left[(\mu_\theta(s_n,a_n)-s_{n+1})^T\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]$

其中第一项是加权平方误差,第二项限制协方差不能无节制增大。

为刻画认知不确定性,PETS 训练多个模型组成集成:

$\{\hat{P}_{\theta_1},\hat{P}_{\theta_2},\ldots,\hat{P}_{\theta_B}\}$

规划时,PETS 使用模型集成加 CEM 做 MPC 搜索。

5. MBPO

MBPO(Model-Based Policy Optimization)也是基于模型的方法,但它不主要依赖在线规划,而是利用模型生成额外训练样本,再结合无模型算法学习策略。

MBPO 的核心观察是:模型推演步数越长,误差累积越严重。因此它不从初始状态做长轨迹幻想,而是从真实经验中的状态出发,只做短分支推演:

$s_t\rightarrow\hat{s}_{t+1}\rightarrow\hat{s}_{t+2}\rightarrow\cdots\rightarrow\hat{s}_{t+k}$

其中 $k$ 通常较小。这样既能利用模型补充样本,又能控制累计误差。

PPT 中指出,MBPO 的无模型部分使用的是 SAC,因此它可以理解为:

$\text{模型学习}+\text{短分支推演}+\text{SAC 策略优化}$

6. 基于模型方法的特点

PETS 更偏向“在线规划”,即每次动作都依赖模型实时搜索;
MBPO 更偏向“模型辅助训练”,即先用模型扩充数据,再交给无模型算法优化策略。

二者共同说明:基于模型方法的核心不是单纯把环境拟合出来,而是高效利用模型提升样本效率和控制效果。

三、DRL 控制应用

1. 无人机自主导航与避障

该任务的状态通常包括位置、速度、姿态和环境感知信息,动作是连续控制指令。目标是学习策略 $\pi(a\mid s)$ 使无人机从起点到终点并避开障碍物。

奖励设计包括:

$r_{\text{goal}}=-\text{distance\_to\_goal}$

$r_{\text{collision}}=-100$

$r_{\text{energy}}=-0.01\|a\|^2$

$r_{\text{success}}=+500$

总奖励为

$r_{\text{total}}=r_{\text{goal}}+r_{\text{collision}}+r_{\text{energy}}+r_{\text{success}}$

2. 机械臂轨迹跟踪

该任务使用 SAC 进行连续控制。若末端执行器误差记为 $error_{ee}$,控制力矩记为 $\tau$,则奖励函数可写为

$r_{\text{error}}=-\|error_{ee}\|^2$

$r_{\text{control}}=-0.01\|\tau\|^2$

$r_{\text{total}}=r_{\text{error}}+r_{\text{control}}$

第一项鼓励提高跟踪精度,第二项限制控制过大,提升平滑性与稳定性。

四、总结

1. 基于策略的方法直接优化策略,代表算法有 REINFORCE、Actor-Critic、DDPG 和 SAC。

2. 基于模型的方法先学习环境模型,再利用模型做规划或辅助训练,代表方法有 MPC、PETS 和 MBPO。

3. 在连续控制任务中,SAC 和基于模型的方法都很重要,前者强调稳定高效的策略学习,后者强调利用模型提高样本效率。
 

Logo

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

更多推荐