跳转至

连续控制与 RL 的统一视角

定位:本章是"强化学习数学"方向中最能体现"控制人视角"的一章。在前三章中,我们建立了 MDP 的 Bellman 不动点理论、策略梯度与 Actor-Critic 的参数化优化理论、以及 TD 学习在函数逼近下的收敛性与致命三元组。本章将这三套工具统一到连续控制的语言中——揭示 RL 与经典最优控制是同一数学对象的不同面目。 前置:MDP 与动态规划基础(Bellman 算子 \(T^\pi\)/\(T^*\)\(\gamma\)-压缩性)、策略梯度与 Actor-Critic(策略梯度定理/PPO)、逼近动态规划与 TD 学习(投影 Bellman/致命三元组)。 姊妹章节:控制理论方向的最优控制/MPC 相关章节(本章与之有约 30% 交集,但克制在"RL 视角"上,纯控制推导留给控制理论方向)。 关键口号:LQR 是 RL 的 sandbox,HJB 是连续时间 Bellman,model-based RL = learning-based MPC。


前置自测

📋 前置自测(答不出 ≥ 2 题 → 先回前置章节复习)

  1. 写出 Bellman 最优方程的算子形式 \(T^* V = V^*\),并说明 \(T^*\) 为何是压缩映射。(回顾 6.1)
  2. 策略梯度定理 \(\nabla_\theta J(\theta) = \mathbb{E}[\nabla_\theta \log\pi_\theta(a|s) \cdot Q^{\pi}(s,a)]\) 中,\(Q^{\pi}\) 的含义是什么?为什么需要 baseline 减方差?(回顾 6.2)
  3. 离散代数 Riccati 方程(DARE)的解 \(P^*\) 代表什么物理量?它与 LQR 最优代价的关系是什么?(回顾控制理论方向 LQR/Riccati 章节)
  4. HJB 方程 \(\beta V^*(x) = \min_u\{\ell(x,u) + \nabla V^{*\top} f(x,u)\}\) 中各项的物理意义是什么?(回顾控制理论方向 HJB 方程章节)
  5. 什么是 Polyak-Lojasiewicz (PL) 条件?它为何能保证非凸优化的全局收敛?

本章目标

学完本章后,你将能够:

  1. **在 LQR 上闭式写出**策略梯度、Q-function、PL 条件,并用 NumPy 手算验证;
  2. 从离散 Bellman 推导到连续 HJB,理解 MPC 和 RL 的数学统一性;
  3. 对比 PILCO/PETS/Dreamer/TD-MPC2 的数学结构与工程取舍;
  4. **理解足式机器人 RL 框架**中的端到端/课程/特权学习/RMA 的数学基础;
  5. 掌握 Sim2Real 的鲁棒性理论(域随机化的分布鲁棒优化视角);
  6. 建立"何时用 MPC、何时用 RL、何时混合"的决策框架

知识树

连续控制与RL统一视角
├── 1. LQR 作为 RL 的 Sandbox(⭐⭐ 必学)
│   ├── 1.1 MDP 视角下的 LQR
│   ├── 1.2 值函数与 Q-function 的二次型结构
│   ├── 1.3 策略梯度闭式与非凸 landscape
│   └── 1.4 Fazel 2018 PL 条件与全局收敛
├── 2. HJB = 连续时间 Bellman(⭐⭐ 必学)
│   ├── 2.1 从离散 Bellman 到连续 HJB 的极限推导
│   ├── 2.2 黏性解与最优性条件
│   ├── 2.3 PMP 与 HJB 的对偶关系
│   └── 2.4 连续时间 TD 学习(Doya 2000)
├── 3. Model-Based RL 与 MPC 的融合(⭐⭐ 必学)
│   ├── 3.1 Dyna 到 PILCO:从表格到 GP
│   ├── 3.2 PETS:概率集成与不确定性传播
│   ├── 3.3 Dreamer 系列:隐状态空间的世界模型
│   ├── 3.4 TD-MPC2:latent MPC + TD learning
│   └── 3.5 模型误差 compounding 的数学分析
├── 4. 足式机器人 RL 框架(⭐⭐ 核心)
│   ├── 4.1 端到端学习框架
│   ├── 4.2 课程学习的数学基础
│   ├── 4.3 特权学习与教师-学生架构
│   ├── 4.4 RMA:快速运动自适应
│   └── 4.5 奖励工程:从手工设计到结构化方法
├── 5. Sim2Real 理论基础(⭐⭐ 核心)
│   ├── 5.1 域随机化的分布鲁棒优化视角
│   ├── 5.2 域自适应与系统辨识
│   ├── 5.3 执行器建模与延迟注入
│   └── 5.4 Sim2Real Gap 的系统性分类
├── 6. Residual RL 与安全约束(⭐⭐⭐ 进阶)
│   ├── 6.1 基于 MPC 的残差策略
│   ├── 6.2 安全约束与 CBF 融合
│   └── 6.3 Residual RL 的收敛性分析
├── 7. GPU 并行仿真与大规模训练(⭐⭐ 核心)
│   ├── 7.1 Isaac Gym/Lab 的数学模型
│   ├── 7.2 并行采样的统计效率
│   └── 7.3 大规模 PPO 的工程栈
└── 8. RL+控制的统一决策框架(⭐⭐ 核心)
    ├── 8.1 何时用纯 MPC
    ├── 8.2 何时用纯 RL
    ├── 8.3 何时混合
    └── 8.4 Bertsekas 的 rollout 统一视角

1. LQR 作为 RL 的 Sandbox ⭐⭐

1.1 MDP 视角下的 LQR

动机:为什么要把一个 1970 年代的经典线性控制器拿到 RL 里反复讨论?

作为一名每天手写 MPC、调 SLQ/DDP、在 ROS 节点里喂 QP solver 的机器人工程师,当你第一次读 Sutton-Barto 或 Levine CS285 的时候,最容易陷入的困惑是:这批人说的 \(V^\pi\)\(Q^\pi\)、advantage、TD error,究竟和我 C++ 代码里那个 OCS2 返回的 valueFunction(x,t)、Hamiltonian \(\mathcal{H}\)、adjoint \(\lambda\) 是什么关系?

答案由 Bertsekas(2019 年 RL & Optimal Control 讲义)Meyn(Control Systems and Reinforcement Learning, 2022)Recht(2019 A Tour of RL from Continuous Control)**三位共同给出:**RL 本质上就是一套"允许模型部分未知、允许用采样代替积分"的动态规划。Bellman 算子是核心算符,值函数是核心对象,策略迭代是母算法;所谓 model-free、函数逼近、off-policy,都是工程上对这三件事的变形。

本质洞察:LQR 是 RL 理论的"MNIST"——它是唯一一个所有 RL 对象(值函数、Q-function、策略梯度、PL 条件、样本复杂度)都能**解析写出**的非平凡特例。凡新算法,先在 LQR 上跑一遍、比一比样本复杂度,若连 LQR 都打不过 certainty-equivalent baseline,就别谈泛化了。

如果没有 LQR 这个 sandbox 会怎样? 我们将被迫在非线性系统上验证所有 RL 理论——那里没有闭式解,无法区分"算法错了"和"函数逼近偏了"。LQR 提供了一个**可控实验室**:理论预测的收敛率、梯度方向、非凸结构,在这里可以精确对照。

形式设定:离散时间折扣 LQR 定义为:

\[ x_{t+1} = A x_t + B u_t + w_t,\quad w_t\sim\mathcal{N}(0,\Sigma_w),\qquad \ell(x,u) = x^\top Q x + u^\top R u, \]

其中 \(x\in\mathbb{R}^n\)\(u\in\mathbb{R}^m\)\(Q\succeq 0\)\(R\succ 0\)\((A,B)\) 可稳定、\((A,Q^{1/2})\) 可检测。把 \(\ell\) 当作**负奖励**、\(\gamma\in(0,1)\)(折扣因子),即得到一个标准 MDP \((\mathcal{S}=\mathbb{R}^n,\mathcal{A}=\mathbb{R}^m,P,r)\)

⚠️ 关键警告:无折扣 + 噪声 = 发散。当 \(\gamma=1\)(无折扣)且 \(\Sigma_w\neq 0\) 时,累计代价 \(J=\sum_{t=0}^\infty\ell(x_t,u_t)\) 几乎必然趋于无穷——因为过程噪声持续注入能量,状态协方差不收敛到零,每步期望代价有正下界。此时**有限值函数不存在**,标准 Bellman 不动点方程无解。

正确处理方式(三选一): 1. 加折扣 \(\gamma<1\):累计代价有限,DARE 有解,值函数 \(V(x)=x^\top P x + c\)\(c=\frac{\gamma}{1-\gamma}\mathrm{tr}(P\Sigma_w)\) 为噪声贡献的常数项)。本章默认此约定。 2. Average-cost 准则:最小化长期平均代价 \(\lim_{T\to\infty}\frac{1}{T}\sum_{t=0}^{T-1}\mathbb{E}[\ell(x_t,u_t)]\)。此时 ARE(非 DARE)决定最优增益,值函数为 differential value function。 3. 无噪声 \(\Sigma_w=0\):此时 \(\gamma=1\) 可行(确定性 LQR),最优策略使 \(x_t\to 0\),累计代价有限。

很多 RL 论文(如 Fazel 2018)为简洁起见写 \(\gamma=1\),但隐含假设 \(\Sigma_w=0\) 或使用 average-cost 框架。本章为与 MDP/RL 记号兼容,统一使用折扣设定 \(\gamma\in(0,1)\)

LQR 对象 RL 对象 数学结构
状态转移 \(x_{t+1}=Ax+Bu+w\) 转移核 $P(s' s,a)$
阶段代价 \(\ell(x,u)=x^\top Qx + u^\top Ru\) 负奖励 \(r(s,a)=-\ell(s,a)\) 二次型
DARE 解 \(P^*\) 最优值函数 \(V^*(x)=x^\top P^* x\) 不动点
最优增益 \(K^*=(R+\gamma B^\top P^* B)^{-1}\gamma B^\top P^* A\) 确定性最优策略 线性映射
Hewer 迭代 策略迭代 (PI) Newton on ARE
Certainty equivalence System ID + planning MBRL 主干

本章与控制理论方向的分工:LQR 的 ARE/DARE 推导、Kalman-Yakubovich-Popov 引理、频域证明,全在控制理论方向的 LQR/LQG 与 Riccati 方程章节。本章**只陈述** DARE 的解与反馈增益形式,然后把精力全部放到"把 LQR 看作 MDP 后 PG / VI / Q-learning 能做什么"。

\[ \boxed{\;P^* = Q + \gamma A^\top P^* A - \gamma^2 A^\top P^* B (R + \gamma B^\top P^* B)^{-1} B^\top P^* A,\quad K^* = (R + \gamma B^\top P^* B)^{-1} \gamma B^\top P^* A.\;} \]

折扣因子的位置\(\gamma\) 乘在 \(A^\top P A\)\(B^\top P B\) 前面,来自 Bellman 方程 \(V(x)=\ell(x,u)+\gamma\mathbb{E}[V(x')]\) 的展开。当 \(\gamma=1\)\(\Sigma_w=0\) 时退化为无折扣 DARE 标准形式 \(P^*=Q+A^\top P^* A - A^\top P^* B(R+B^\top P^* B)^{-1}B^\top P^* A\)

1.2 值函数与策略的二次型结构 ⭐⭐

这是整个专题最值得手算一遍的一节。

定理 6.4.1(值函数二次型不变性) 在 LQR 中,对任意线性反馈策略 \(\pi_K(x) = -Kx\)(使 \(A-BK\) 稳定),其值函数 \(V^{\pi_K}(x)\)\(Q^{\pi_K}(x,u)\) 均为状态/动作的**二次型**:

\[ V^{\pi_K}(x) = x^\top P_K x + c_K,\qquad Q^{\pi_K}(x,u) = \begin{pmatrix}x\\ u\end{pmatrix}^\top H_K \begin{pmatrix}x\\ u\end{pmatrix} + c_K, \]

其中 \(P_K\) 是离散 Lyapunov 方程的解:

\[ P_K = Q + K^\top R K + (A-BK)^\top P_K (A-BK), \]

且 Q-function 矩阵块为

\[ H_K = \begin{pmatrix}Q + A^\top P_K A & A^\top P_K B\\ B^\top P_K A & R + B^\top P_K B\end{pmatrix}. \]

证明思路:Bellman 算子 \(T^{\pi_K}\) 作用在二次型上仍是二次型(直接代入展开、取期望、整理);由 \(T^{\pi_K}\) 的压缩性(回顾 6.1:Bellman 算子在加权 sup 范数下是 \(\gamma\)-压缩的,不动点唯一)即得不动点是二次型。\(\square\)

跨领域类比:LQR 的 Q-function 是二次型,这就像最小二乘问题的代价函数是二次型一样——二次型的全局极小可以用线性方程组直接求出(一阶条件 \(\partial Q/\partial u = 0\) 是线性方程)。非线性 RL 中 Q-function 不是二次型,所以需要函数逼近(神经网络)来近似,这就是 DQN/DDPG 的出发点。

推论(最优策略的线性反馈结构):由 \(u^* = \arg\min_u Q^*(x,u)\)\(Q^*\) 二次,一阶条件直接给出 \(u^* = -K^* x\)\(K^* = (R+B^\top P^* B)^{-1} B^\top P^* A\)

PG 的闭式表达:考虑参数化策略 \(\pi_K(x)=-Kx\),目标 \(J(K) = \mathbb{E}_{x_0\sim\mathcal{D}_0}[V^{\pi_K}(x_0)] = \mathrm{tr}(P_K\Sigma_0) + c_K\)。梯度可写为:

\[ \boxed{\;\nabla_K J(K) = 2\bigl[(R + B^\top P_K B)K - B^\top P_K A\bigr]\,\Sigma_K,\;} \]

其中 \(\Sigma_K = \mathbb{E}\sum_{t\geq 0}x_t x_t^\top\) 是闭环状态协方差(对 on-policy 轨迹分布的二阶矩)。

反事实推理:如果 \(J(K)\)\(K\) 空间是凸的,那么任意初始化的梯度下降都能找到全局最优——这将使 Fazel 2018 的整篇论文毫无意义。事实上 \(J(K)\) \(K\) 空间非凸:当状态维度 \(n\geq 3\) 时其 sublevel set 甚至不连通(Bu-Mesbahi-Fazel 2019 构造了具体反例)。但正是这一"非凸但友好"的结构——没有次优局部极小——才催生了 Fazel 的里程碑定理。

1.3 Hewer 迭代 = LQR 上的策略迭代 ⭐⭐

在 Hewer (IEEE TAC 1971, 16(4):382) 的经典迭代里:

  • Policy evaluation:对当前 \(K_n\) 求 Lyapunov 方程得 \(P_n\)
  • Policy improvement\(K_{n+1} = (R+B^\top P_n B)^{-1}B^\top P_n A\)

这**精确就是**经典策略迭代(Policy Iteration,PI)落到 LQR 上的实例,也等价于对 DARE 的 Newton 迭代——在稳定化初始增益 \(K_0\) 下 **单调收敛且局部二次收敛**至 \(P^*\)

跨领域类比:Hewer 迭代之于 LQR,就像 Newton 法之于一元方程求根——两者都利用了二阶信息实现超线性收敛。区别在于:Newton 法求的是 \(f(x)=0\) 的根,Hewer 迭代求的是 DARE 的不动点。

Q-learning for LQR(Bradtke-Ydstie-Barto 1994):Hewer 迭代的 model-free 近似——用样本回归估计 \(H_K\)(Q-function 矩阵),然后贪婪更新。收敛性等价于 Hewer 迭代:只要样本足够多让 \(\hat{H}_K\) 足够精确,就能全局收敛。这就是 LSPI-on-LQR(Lagoudakis-Parr 2003)。

1.4 Fazel 2018 与非凸 PG 的全局收敛 ⭐⭐

只掌握定理陈述与证明骨架;完整证明留给 6.5。 Fazel-Ge-Kakade-Mesbahi (ICML 2018, arXiv:1801.05039) 的 Global Convergence of Policy Gradient Methods for the Linear Quadratic Regulator 是 RL 理论里"非凸方法有全局保证"的**第一个严格结果**。

定理 6.4.2(Gradient Dominance / PL 条件) 对 LQR 的代价 \(J(K)\),只要 \(K\) 稳定化 \(A-BK\)\(\sigma_{\min}(\Sigma_K)>0\),有

\[ \boxed{\;J(K) - J(K^*) \;\leq\; \frac{\|\Sigma_{K^*}\|}{\sigma_{\min}(R)\,\sigma_{\min}(\Sigma_K)^2}\,\|\nabla_K J(K)\|_F^2.\;} \]

这是 Polyak-Lojasiewicz (PL) 不等式:梯度平方上界控制 suboptimality gap。PL 条件蕴含"任何稳定点即全局最优"——尽管 \(J\) 非凸,它没有次优局部极小。

本质洞察:PL 条件告诉我们,LQR 的代价景观虽然非凸,但**没有陷阱**——任何使梯度为零的点必然是全局最优。这不是平凡的性质:对一般非凸问题,梯度为零可能意味着鞍点或局部极小。LQR 的特殊代数结构(二次型值函数 + 线性动力学)赋予了它这个"无陷阱"的好性质。

三种算法的全局收敛率(Fazel 2018)

算法 更新公式 收敛率
Gauss-Newton = Hewer \(K_{n+1} = K_n - \frac{1}{2}(R+B^\top P_{K_n}B)^{-1}\nabla J(K_n)\Sigma_{K_n}^{-1}\) \(O(\log(1/\varepsilon))\)(二次)
Natural Policy Gradient \(K_{n+1} = K_n - \eta\nabla J(K_n)\Sigma_{K_n}^{-1}\) \(O(\kappa \log(1/\varepsilon))\)(线性)
Vanilla PG \(K_{n+1} = K_n - \eta\nabla J(K_n)\) \(\mathrm{poly}(\text{系统常数})\log(1/\varepsilon)\)

为什么 Gauss-Newton 需要 \(\frac{1}{2}\) 因为 \(\nabla J(K) = 2E_K\Sigma_K\),代入 GN 更新后: \(K_{n+1} = K_n - \frac{1}{2}(R+B^\top P_K B)^{-1}\cdot 2E_K\Sigma_K\cdot\Sigma_K^{-1} = K_n - (R+B^\top P_K B)^{-1}E_K = (R+B^\top P_K B)^{-1}B^\top P_K A\) 这正是经典 Hewer (1971) 迭代。若漏掉 \(\frac{1}{2}\),则 \(K_{n+1}=-K_n+2K^*\)(超调),迭代振荡而非收敛。

证明骨架: 1. 对 \(K\) 的策略梯度写为闭式:\(\nabla J(K) = 2 E_K \Sigma_K\),其中 \(E_K := (R+B^\top P_K B)K - B^\top P_K A\)。 2. Cost difference lemma\(J(K)-J(K^*) \leq \frac{\|\Sigma_{K^*}\|}{\sigma_{\min}(R)} \mathrm{tr}(E_K^\top (R+B^\top P_K B) E_K)\)。 3. 把 \(E_K\) 反代回梯度,即得 PL 不等式。 4. PL + smoothness \(\Rightarrow\) 线性收敛。

⚠️ 常见陷阱

💡 概念误区:认为"LQR 代价函数 \(J(K)\) 是凸的" - 新手想法:既然值函数是二次型、最优策略是线性的,代价肯定是凸的。 - 实际上:\(J(K) = \mathrm{tr}(P_K \Sigma_0)\)\(P_K\)\(K\) 的依赖是非线性的(通过 Lyapunov 方程)。当 \(n \geq 3\) 时 sublevel set 甚至不连通。 - 正确做法:理解"非凸但 PL"这个中间地带——它比凸弱(有多个临界点的可能),但比一般非凸强(没有次优局部极小)。

⚠️ 编程陷阱:对非稳定 \(K_0\) 跑策略梯度 - 错误做法:随机初始化 \(K_0\) 然后直接跑 PG。 - 现象:\(J(K_0) = \infty\)(闭环不稳定时代价发散),梯度不存在。 - 根本原因:\(P_K\) 只在 \(A-BK\) 稳定时才有有限解。 - 正确做法:从已知稳定化增益出发(如 LQR 的 dlqr 解作为热启动),或使用 ARS/REINFORCE 的 baseline 保底机制。

🧠 思维陷阱:认为"Fazel 定理说 PG 一定优于 PI" - 新手想法:PG 也能全局收敛,而且不需要模型,肯定比知道模型的 PI 更通用。 - 实际上:Fazel 给的 PG 样本复杂度是多项式的 \(O(\text{poly}/\varepsilon)\),而 PI(Hewer)只需 \(O(\log(1/\varepsilon))\) 次迭代。Model-free 的代价是样本效率低 \(10^2\)-\(10^4\) 倍。 - 正确思维:Fazel 的贡献是**理论保证**(证明不会卡在局部极小),不是**实用建议**。实用中,知道模型就用 PI/Riccati;不知道模型才用 PG,且要付出样本代价。

练习

  1. (手推) 给定标量 LQR:\(A=1.2\), \(B=1\), \(Q=1\), \(R=1\)。求 DARE 解 \(P^*\)、最优增益 \(K^*\)、最优值函数 \(V^*(x)\)。提示:DARE 化为 \(P = A^2P/(1+P) + Q\)
  2. (编程) 在题 1 基础上,用 Python 实现 Hewer 迭代,从 \(K_0=0.5\)(稳定化的)和 \(K_0=0\)(不稳定化的)分别出发,观察差异。绘制 \(J(K_n)\) 随迭代的收敛曲线。
  3. (理论) 证明:若 \(V(x)=x^\top P x + c\) 满足 LQR Bellman 方程,则 \(P\) 是 DARE 解且 \(c=\mathrm{tr}(P\Sigma_w)/(1-\gamma)\)

2. HJB = 连续时间 Bellman ⭐⭐

2.1 从离散 Bellman 到连续 HJB 的极限推导

动机:机器人工程师的直觉里,"Bellman" 是离散递推(每个控制周期做一次),"HJB" 是连续 PDE(偏微分方程)——但它们是**同一方程的两种时间尺度**。理解这个对应关系,就能在读 RL 论文时把 \(V(s)\) 和 OCS2 代码里的 valueFunction(x,t) 无缝翻译。

设定:连续时间受控 ODE \(\dot x = f(x,u)\),折扣率 \(\beta>0\),瞬时代价 \(\ell(x,u)\),最优值函数

\[ V^*(x) = \min_{u(\cdot)}\int_0^\infty e^{-\beta s}\ell(x(s),u(s))\,ds,\quad x(0)=x. \]

离散化步骤:取小步长 \(\Delta t\),令 \(\gamma = e^{-\beta\Delta t} = 1-\beta\Delta t + O(\Delta t^2)\),前向 Euler \(x_{t+\Delta t}\approx x + f(x,u)\Delta t\)。Bellman 方程:

\[ V^*(x) = \min_u\bigl\{\ell(x,u)\Delta t + (1-\beta\Delta t)V^*(x + f(x,u)\Delta t) + o(\Delta t)\bigr\}. \]

Taylor 展开:对 \(V^*\)\(x\) 处做一阶展开:\(V^*(x+f\Delta t)\approx V^*(x) + \nabla V^*(x)^\top f(x,u)\Delta t\)

代入化简: $$ V^(x) = \min_u\bigl{\ell\Delta t + (1-\beta\Delta t)[V^(x) + \nabla V^{\top} f\,\Delta t] + o(\Delta t)\bigr} $$ $$ = \min_u\bigl{V^(x) + [\ell + \nabla V^{\top}f - \beta V^]\Delta t + o(\Delta t)\bigr} $$

消去两边的 \(V^*(x)\),除以 \(\Delta t\),取 \(\Delta t\to 0\)

\[ \boxed{\;\beta V^*(x) = \min_u\bigl\{\ell(x,u) + \nabla V^*(x)^\top f(x,u)\bigr\}.\;} \]

这就是 Hamilton-Jacobi-Bellman (HJB) 方程

跨领域类比:离散 Bellman 之于 HJB,就像差分方程之于微分方程——前者是后者的数值离散化。MPC 用有限差分求解 Bellman(receding horizon),而 HJB 是精确的连续时间极限。DDP/iLQR 则是在轨迹上做 HJB 的二阶近似。

反事实推理:如果我们坚持用离散 Bellman 而不过渡到连续 HJB,会怎样?对于连续时间系统(如四足机器人的动力学 \(M\ddot{q} + h = \tau\)),离散化步长 \(\Delta t\) 的选择会引入数值误差。HJB 告诉我们"真正的最优性条件长什么样"——所有离散方法(MPC、DDP、RL 中的 TD 更新)都是对它的近似。理解了 HJB,就能回答"我的 MPC 步长是否够小"这个实际工程问题。

黏性解的必要性:HJB 的经典解(\(C^1\) 可微的解)通常不存在——特征线会相交,梯度会爆炸。Crandall-Lions (Trans. AMS 1983, 277(1):1) 提出 黏性解 (viscosity solutions) 概念:用 test function \(\phi\in C^1\),要求在 \(V-\phi\) 取局部极大时 \(\mathcal{H}(x,\nabla\phi)\leq 0\)(subsolution),局部极小时 \(\geq 0\)(supersolution)。在合适的 Hamiltonian 假设下,黏性解存在且**唯一**。

档位 3 只需记住:HJB 的正确解概念不是经典解而是黏性解;档位 4 需要读 Fleming-Soner Controlled Markov Processes and Viscosity Solutions

LQR 的特殊性:对于 LQR 这样的线性二次问题,HJB 有经典解(\(V^* = x^\top P x\)\(C^\infty\) 的)——这再次验证了 LQR 作为"万物可解析"的 sandbox 地位。但对非线性系统(如四足机器人的接触切换动力学),HJB 的解在接触切换点不可微——此时只能用黏性解或直接用数值方法(DDP/iLQR)。

2.2 Hamiltonian 与最优性条件 ⭐⭐

定义 Hamiltonian:\(\mathcal{H}(x,p,u) := \ell(x,u) + p^\top f(x,u)\),其中 \(p = \nabla V^*(x)\) 是**伴随变量/协态**(adjoint/costate)。

HJB 等价于 \(\beta V^* = \min_u \mathcal{H}(x,\nabla V^*,u)\)

控制理论名称 RL 名称 物理意义
\(V^*(x)\) Cost-to-go / 值函数 Value function \(x\) 出发的最小总代价
\(\nabla V^*(x)\) 协态 / adjoint \(\lambda\) Value gradient 状态微扰对代价的敏感度
\(\mathcal{H}\) Hamiltonian 无直接对应 瞬时代价 + 状态演化对值函数的贡献
\(\arg\min_u \mathcal{H}\) 最优控制律 Greedy policy 在当前值函数下的贪婪动作

与控制理论方向 HJB 章节的精确对应

回顾控制理论方向的 HJB 方程章节:HJB 方程的推导从变分法出发,通过 Bellman 最优性原理得到。在那里我们聚焦于"给定精确模型 \(f\) 如何求解 PDE";现在我们从 RL 角度切入,问的是"如果 \(f\) 未知,能否用采样逼近 HJB 的解"——答案就是 Actor-Critic 算法族。

2.3 PMP 与 HJB 的对偶 ⭐⭐⭐

Pontryagin 极大值原理(仅陈述,详见控制理论方向 Pontryagin 极大值原理章节):最优轨迹满足:

\[ \dot x = \partial_p \mathcal{H},\quad \dot p = -\partial_x \mathcal{H},\quad u^* = \arg\min_u \mathcal{H}(x,p,u). \]

PMP 是 HJB 的"强对偶"——HJB 在状态空间求解(全局,curse of dimensionality),PMP 沿特征线求解(只关心一条最优轨迹)。

方法 数学框架 复杂度 RL 对应
HJB 全局 PDE \(O(N^n)\)(网格) Value Iteration
PMP 两点边值问题 \(O(N \cdot n)\) Actor-Critic(沿轨迹更新)
DDP/iLQR PMP 的数值实现(二阶近似) \(O(N \cdot n^3)\) Model-based Actor-Critic

为什么机器人领域用 DDP 而不直接解 HJB? 因为 HJB 是 PDE——对 \(n=30\)(人形机器人 DoF)的系统,网格方法需要 \(O(M^{30})\) 个网格点,完全不可行。DDP 通过沿单条轨迹做 LQR 近似,绕过了维数灾难。但 DDP 只给出局部最优轨迹,而 HJB 给出全局最优策略——这就是 RL 的值函数逼近(神经网络拟合 \(V^*\))试图做的事。

2.4 连续时间 TD 学习(Doya 2000) ⭐⭐

连续时间 TD 误差(Doya 2000, Neural Computation 12(1):219):

\[ \delta(t) = r(t) - \beta V(x(t)) + \dot V(x(t)) = r(t) - \beta V(x) + \nabla V(x)^\top f(x,u). \]

目标是 \(\delta\equiv 0\)(即 \(V\) 精确满足 HJB)。

物理直觉\(\delta(t)\) 度量的是"当前估计 \(V\) 与 HJB 方程的不匹配程度"。如果 \(\delta > 0\),说明实际收到的奖励加上值函数的增长率超过了预期——\(V\) 被低估了,需要上调。如果 \(\delta < 0\),说明 \(V\) 被高估了。

LQR 的 CARE 作为 HJB 特例:对连续时间 LQR \(\dot x = Ax+Bu\)\(\ell = x^\top Q x + u^\top R u\)\(\beta=0\),HJB 退化为**连续代数 Riccati 方程 (CARE)**:

\[ A^\top P + P A - P B R^{-1} B^\top P + Q = 0,\qquad K^* = R^{-1}B^\top P. \]

推导:\(V^*=x^\top P x\) 代入 HJB;\(\min_u\) 闭式求出 \(u^*=-R^{-1}B^\top P x\);再把 \(u^*\) 代回消去。

⚠️ 常见陷阱

💡 概念误区:认为 HJB 和 Bellman 方程是两个不同的东西 - 新手想法:HJB 是控制理论的,Bellman 是 RL 的,它们解决不同问题。 - 实际上:HJB 是连续时间 Bellman 的极限形式。所有离散 RL 算法(Q-learning、SARSA、TD(λ))都可以理解为 HJB 的不同离散化方案。 - 为什么重要:理解这个统一,可以把 MPC 论文和 RL 论文里的公式直接互译。

⚠️ 编程陷阱:在 HJB 的数值解中使用经典解概念 - 错误做法:对 HJB PDE 使用标准有限差分法,期望得到光滑解。 - 现象:特征线相交时梯度爆炸、数值振荡。 - 根本原因:HJB 的经典解通常不存在——需要用**黏性解**(Crandall-Lions 1983)的弱解概念。 - 正确做法:使用黏性解框架(vanishing viscosity 差分格式),或者直接用 DDP/iLQR 这种沿轨迹的方法避开 PDE 求解。

练习

  1. (推导) 完整推导从离散 Bellman 到连续 HJB 的极限。明确写出哪些项是 \(O(\Delta t)\)、哪些是 \(o(\Delta t)\)
  2. (验证) 对连续 LQR 直接 ansatz \(V^*(x)=x^\top P x\),代入 HJB 验证得到 CARE。推导 \(u^*=-R^{-1}B^\top P x\)
  3. (思考) 为什么 Doya 的连续 TD 使用折扣率 \(\beta\)(物理单位 \(s^{-1}\))而非离散 \(\gamma\)(无量纲)?两者的换算关系是什么?这对超参数调优有什么实际影响?

3. Model-Based RL 与 MPC 的融合 ⭐⭐

3.1 从 Dyna 到 PILCO:MBRL 的核心三元组

动机:Model-based RL (MBRL) 的灵魂是三元组:学动力学模型 \(\hat f_\theta\) + 用模型规划/优化策略 + 用真实环境收集数据。它与 MPC 的分水岭是"谁出模型":MPC 用手写第一性原理模型,MBRL 用学到的模型。

跨领域类比:Model-free RL 类似于 PID 控制——都不需要系统模型,直接从误差信号学习输出。但 PID 是固定结构的线性反馈,RL 是通过神经网络学习的非线性映射。Model-based RL 类似于 MPC——都需要模型来预测未来,但 MPC 的模型是物理学家写的,MBRL 的模型是从数据学的。

Dyna 架构 (Sutton 1991):RL 史上第一个 MBRL 框架。核心循环: 1. 真实交互 → 拿到 \((s,a,r,s')\); 2. 用真实数据做一次 \(Q\)-update(model-free 部分); 3. 用真实数据更新模型 \(\hat f\); 4. 用 \(\hat f\) 生成 "想象数据" → 做 \(k\) 次 planning-based \(Q\)-update(model-based 部分)。

PILCO (Deisenroth-Rasmussen ICML 2011):用 Gaussian Process 学动力学 \(\hat f\)(带不确定性),然后**解析传播**分布(moment matching)做长 horizon rollout,再用 analytic policy gradient 更新策略。PILCO 极**样本高效**(mountain car 只要几十次试验),但 GP 在高维 scale 不了(\(O(N^3)\) 计算复杂度)。

方法 模型类型 不确定性估计 规划方式 样本效率 可扩展性
Dyna 表格/NN Model-free Q-update
PILCO GP 后验方差 解析 PG 极高 差(\(O(N^3)\)
PETS Ensemble NN Bootstrap + aleatoric CEM/MPPI
Dreamer RSSM Learned variance Actor-Critic in latent
TD-MPC2 Implicit latent N/A(decoder-free) MPPI + TD

3.2 PETS:概率集成与不确定性传播 ⭐⭐

PETS (Chua-Calandra-McAllister-Levine NeurIPS 2018):核心创新是用 Probabilistic Ensemble 神经网络学 \(\hat f\):每个 NN 输出 \(\mathcal{N}(\mu_\theta,\Sigma_\theta)\)(aleatoric uncertainty),\(B\) 个 NN 作 bootstrap ensemble 捕捉 epistemic uncertainty。

为什么需要不确定性? 因为模型在数据稀疏区域的预测不可靠。如果盲目信任模型做长程 rollout,策略会利用模型的错误(adversarial exploitation)——学到在真实环境中根本不存在的"作弊"动作序列。不确定性估计让规划器对不确定区域保持保守。

Trajectory Sampling:通过 particle rollout 传播不确定性——每步从 ensemble 中随机选一个网络预测下一状态,多条粒子轨迹的代价统计量作为 action sequence 的评分。Planning 用 CEM(Cross-Entropy Method)在 action sequence 空间搜索。

关键结果:在 MuJoCo 任务上只用 200k steps 就达到 SAC 1M steps 的性能——5 倍样本效率提升

3.3 Dreamer 系列:隐状态空间的世界模型 ⭐⭐

**Dreamer 三部曲**代表了 MBRL 的现代集大成:

DreamerV1 (ICLR 2020):在**隐状态空间**学 RSSM (Recurrent State-Space Model) 世界模型,用**latent imagination**(想象 rollout)+ actor-critic 训练策略。

DreamerV3 (Nature 2025):单一超参数跨 150+ 任务(continuous/discrete action、低维/高维、稠密/稀疏 reward),包括首次 from-scratch 挖到 Minecraft 钻石。

RSSM 的数学结构

\[ \text{Deterministic: } h_t = f_\phi(h_{t-1}, z_{t-1}, a_{t-1}) \quad\text{(GRU 递推)} $$ $$ \text{Stochastic prior: } z_t \sim q_\phi(z_t | h_t) \quad\text{(预测下一潜态)} $$ $$ \text{Posterior: } z_t \sim p_\phi(z_t | h_t, o_t) \quad\text{(观测修正)} $$ $$ \text{Reward: } r_t = R_\phi(h_t, z_t) \quad\text{(奖励预测头)} \]

跨领域类比:RSSM 之于 Dreamer,就像 Kalman 滤波之于 LQG 控制——两者都是"模型预测 + 观测修正"的递推结构。区别在于:Kalman 用线性高斯假设得到解析解,RSSM 用神经网络参数化得到通用表达能力。

DreamerV3 的关键工程创新(理解这些对复现和调参至关重要):

  1. Symlog 预测:对观测和奖励使用 \(\text{symlog}(x) = \text{sign}(x)\log(|x|+1)\) 变换后再预测。这压缩了大值的动态范围,使得不同量级的任务可以用同一组超参数。

  2. Two-hot 奖励编码:不直接预测奖励数值,而是把奖励离散化为 \(B=255\) 个 bin,预测 categorical 分布。这比回归更稳定(避免了 reward 的异常值影响梯度)。

  3. Percentile return normalization:用 running 5th/95th percentile 归一化 return,而非 mean/std。这对稀疏奖励任务(大部分时间 return=0)特别重要——mean/std 归一化会让稀疏奖励被压缩到几乎不可见。

  4. KL balancing:世界模型训练中,prior 和 posterior 的 KL 散度损失按 \(\alpha:(1-\alpha)\) 分配给两边(\(\alpha=0.8\)),避免 posterior 坍缩为 deterministic。

为什么 DreamerV3 能用一套超参跨 150+ 任务? 核心原因是 symlog + percentile normalization 消除了任务之间在量纲和数量级上的差异。传统 RL 中,不同任务的 reward scale 可能差 \(10^6\) 倍(如 Atari 得分 vs 连续控制的小数 reward),必须手动调学习率/reward scale。DreamerV3 的归一化技巧让这些差异自动被吸收。

3.4 TD-MPC2:Latent MPC + TD Learning ⭐⭐

TD-MPC2 (Hansen-Wang-Su ICLR 2024):在 latent space 里做 short-horizon sampling-based MPC + TD-learned 值函数作终端代价 + 并行 actor。

核心公式:

\[ \pi_{\mathrm{TD-MPC2}}(x_0) = \arg\min_{a_0,\dots,a_{H-1}} \sum_{t=0}^{H-1} R_\theta(z_t, a_t) + V_\theta(z_H) \]

其中 \(z_{t+1} = d_\theta(z_t, a_t)\) 是 latent dynamics,\(R_\theta\) 是 reward head,\(V_\theta\) 是 TD-learned terminal value。

关键工程选择: - Decoder-free:不做 pixel reconstruction,只保留 latent dynamics 和 reward head(与 Dreamer 不同) - SimNorm:对 latent state 做 simplex normalization 正则化 - Per-task embedding:多任务时用 task embedding 区分不同任务

TD-MPC2 的 pattern 总结:短视 MPC(5-6 步 MPPI)+ 学到的值函数(TD(λ) 更新)+ 并行 actor(用于 warm-start MPPI),在 104 个连续控制任务上用一套超参数达到 SOTA。

3.5 MBPO:Dyna 的现代化实现 ⭐⭐

MBPO (Janner-Fu-Zhang-Levine NeurIPS 2019) 给出了 MBRL 中"用模型生成数据到底能多少步"的**第一个严格理论分析**。

核心定理(Janner et al. 2019 Theorem 4.2):设 \(\epsilon_m\) 为模型误差,\(\epsilon_\pi\) 为策略偏移(分布偏移),则 \(k\) 步模型 rollout 的策略性能下界为:

\[ \eta[\pi] \geq \hat{\eta}[\pi] - C\left[k\epsilon_m + (k + \text{horizon})\epsilon_\pi\right] \]

工程含义: - \(k\) 越大(rollout 越长),模型误差影响越大(\(k\epsilon_m\) 项) - 但 \(k\) 越大,能用的"想象数据"越多,梯度估计方差越低 - 最优 \(k\) 取决于 \(\epsilon_m\) 的大小:模型精确时 \(k\) 可以大,模型粗糙时 \(k\) 应该小

MBPO 的做法:只做 1-5 步短 rollout(远短于 Dreamer 的 15 步),然后把想象数据混入真实数据一起做 SAC 更新。这种"短 rollout + model-free backbone"的范式今天仍是许多 MBRL 工作的基础。

反事实推理:如果我们有完美模型(\(\epsilon_m = 0\)),MBPO 退化为什么?答案:退化为纯 model-based planning(\(k \to \infty\) 都安全),等价于 MPC 做无限长 rollout。这再次验证了"MBRL = 不完美的 MPC"这个视角。

3.6 模型误差 compounding 的数学分析 ⭐⭐

核心定理:若 \(\|\hat f(x,u) - f(x,u)\| \leq \varepsilon\) 对所有 \((x,u)\) 成立,且真实动力学的 Lipschitz 常数为 \(L_f\),则 \(H\) 步预测误差累积为:

\[ \|x_H - \hat x_H\| \leq \varepsilon \cdot \frac{L_f^H - 1}{L_f - 1} \approx O(\varepsilon \cdot L_f^H) \]

这就是"越长 rollout 越不可信"的根本原因——误差以指数速度增长。

本质洞察:模型误差 compounding 是 MBRL 的**阿基里斯之踵**。所有 MBRL 方法都必须有一种机制抑制这个指数增长:PILCO 用 GP posterior 的宽度自动拒绝不可信 rollout;PETS 用 ensemble variance 做不确定性裁剪;Dreamer 用短 imagination horizon(15 步)+ learned terminal value;MBPO (Janner 2019) 只 rollout 1-5 步再截断。这也是 learning-augmented MPC 的核心动机——用物理模型做主要预测(误差小),只让学习模型修正残差。

⚠️ 常见陷阱

⚠️ 编程陷阱:MBRL 中直接 unroll 模型到 H=100 步 - 错误做法:把学到的模型当作真实模型,做超长 horizon 的轨迹优化。 - 现象:策略在训练中 reward 很高,但部署到真实环境后完全失效。 - 根本原因:模型误差以 \(L_f^H\) 指数累积,100 步后预测已完全偏离真实。 - 正确做法:短 rollout (H≤15) + 学到的 \(V_\theta\) 作 bootstrap(MBPO、TD-MPC 范式)。

🧠 思维陷阱:认为"world model 越像素级精确越好" - 新手想法:Dreamer 要做 pixel reconstruction,所以图像还原越清晰模型越好。 - 实际上:TD-MPC2 证明 decoder-free(不做图像重构)性能更好。原因:重构目标会让 latent space 编码大量对控制无关的视觉细节(如背景纹理)。 - 正确思维:世界模型的目标不是"重构观测",而是"预测与控制相关的信息"(reward + latent dynamics)。

练习

  1. (证明) 设真实 \(f(x,u)=x+u\),学到 \(\hat f(x,u)=x+u+\varepsilon\)。证明 \(H\) 步预测误差为 \(H\varepsilon\)。若 \(f(x,u) = 1.1x + u\)\(L_f = 1.1\)),误差如何累积?
  2. (编程)stable_baselines3 的 SAC 和 TD-MPC2 在 gymnasiumPendulum-v1 上对比样本效率曲线。
  3. (思考) 为什么 PETS 用 CEM 而不是梯度方法做规划?提示:考虑 ensemble 输出的不可微性和多模态性。

4. 足式机器人 RL 框架 ⭐⭐

4.1 端到端学习框架

动机:对于四足/人形机器人,传统方法需要:步态规划器 → 落脚点选择 → 轨迹生成 → 全身控制器 → 关节 PD。每一层都需要专家手工设计。端到端 RL 的承诺是:一个神经网络直接从传感器读数到关节力矩,自动学会所有中间层的功能。

标准 POMDP 形式化:四足机器人运动控制被形式化为部分可观测马尔可夫决策过程(POMDP),因为真实机器人缺乏完全状态信息——基座绝对位置通常不可观测(GPS 精度不够、室内无信号),足端接触力传感器噪声大且滞后。

观测空间设计(以 ANYmal/Unitree Go1 为例):

分量 维度 传感器来源 备注
基座姿态 (roll, pitch) 2 IMU 不含 yaw(磁力计不可靠)
基座角速度 3 IMU 陀螺仪
关节位置 12 编码器
关节速度 12 编码器微分 噪声大,需滤波
上一步动作 12 自身记忆 提供执行状态信息
速度命令 3 用户输入 (\(v_x^*, v_y^*, \omega_z^*\))
总计 ~44

动作空间:多数工作输出 12 维关节目标位置,经 PD 控制器转换为力矩:

\[ \tau = K_p(a_t - \theta) - K_d\dot\theta \]

其中 \(a_t\) 是策略网络输出(关节目标位置),\(\theta\) 是测量角度。

为什么用位置控制而非直接力矩控制? 位置控制自带"弹簧"特性(\(K_p\) 提供回复力),即使策略输出为零,机器人也不会直接瘫软倒地——这对训练初期的稳定性至关重要。直接力矩控制虽然更灵活,但训练初期容易产生大幅度关节运动导致硬件损坏。

反事实推理:如果不用历史观测只用单帧数据会怎样?单帧本体感知存在歧义——电机力矩大但无速度可能意味着被卡住、负载大、或地面摩擦大。历史序列提供了**隐式系统辨识**能力:通过观察"推了一下之后的响应"来推断环境参数。这就是为什么几乎所有足式 RL 工作都使用观测历史(通过 LSTM、TCN 或简单 stacking 实现)。

4.2 课程学习的数学基础 ⭐⭐

动机:直接在最难的地形上训练策略,会因为持续失败而无法获得有效梯度信号——类似于让一年级小学生直接做微积分题,只会得到零分。课程学习模仿学校教学:从简单到困难,逐步升级挑战。

形式化定义:设地形由参数 \(c_T\) 生成,策略在地形 \(c_T\) 上的"可通行性"为:

\[ \mathrm{Tr}(c_T, \pi) = \mathbb{E}_{\xi\sim\pi}\left[\frac{1}{T}\sum_{t=0}^T \mathbb{1}(v_{\mathrm{proj}}(s_t) > v_{\min})\right] \in [0,1] \]

其中 \(v_{\mathrm{proj}}\) 是基座速度在目标方向上的投影,\(v_{\min}\) 是最低通过阈值(通常 0.2 m/s)。

地形期望度(课程选择准则):

\[ \mathrm{Td}(c_T, \pi) := \Pr\bigl(\mathrm{Tr}(c_T,\pi) \in [0.5, 0.9]\bigr) \]

直觉:太简单的地形(\(\mathrm{Tr} > 0.9\))策略已经掌握,学不到新东西;太难的地形(\(\mathrm{Tr} < 0.5\))总是失败,梯度信号稀疏。中间难度的地形提供最高的学习效率。

跨领域类比:课程学习之于 RL,就像退火之于优化算法——两者都是从"容易探索"的区域开始,逐步收窄到"困难但有解"的区域。区别在于:退火是降低"温度"(探索随机性),课程是提高"难度"(环境复杂度)。

工程实现:ETH RSL 的实现(Lee et al. 2020 Science Robotics)使用粒子滤波在地形参数空间维持一条"刚好能学"的难度分布。地形类型包括:

  1. Hills:基于 Perlin 噪声的起伏地形,参数为 (roughness, frequency, amplitude)
  2. Steps:随机方块台阶,参数为 (step_width, step_height)
  3. Stairs:规则楼梯,参数为 (stair_width, stair_height)

奖励系数课程(另一种课程策略,来自 Hwangbo et al. 2019):

\[ k_{c,j+1} = (k_{c,j})^{k_d}, \quad k_d = 0.997, \quad k_{c,0} = 0.3 \]

训练初期 \(k_c\) 小,所有惩罚项(力矩、关节速度、打滑)乘以 \(k_c\) 后接近零——策略只需学会"动起来"。随着训练推进 \(k_c \to 1\),惩罚变重,策略被迫优化步态的平滑性和能效。

4.3 特权学习与教师-学生架构 ⭐⭐

动机:在仿真中,我们可以获取完美的地形高度图、精确的摩擦系数、无噪声的接触力——这些"特权信息"在真实世界中不可得。如何利用仿真的"全知"来训练一个只依赖本体感知的策略?

核心架构(Lee et al. 2020 / Kumar et al. 2021 RMA):

教师网络(仿真中训练): - 输入:本体感知 \(o_t\) + 特权信息 \(x_t\)(地形高度图、摩擦系数、接触力等) - 编码器:\(\bar{l}_t = \mu(x_t)\),将特权信息压缩为隐向量 - 策略:\(\bar{a}_t = \pi(o_t, \bar{l}_t)\)

学生网络(部署到真机): - 输入:本体感知历史 \(o_{t-N:t}\) - 编码器:\(l_t = \phi(o_{t-N:t})\)(TCN 或 LSTM),从历史推断环境状态 - 策略:\(a_t = \pi(o_t, l_t)\)(复用教师的策略解码器)

训练目标:学生模仿教师的**环境理解**(隐向量)和/或**动作输出**:

\[ \mathcal{L}_{\text{distill}} = \|l_t - \bar{l}_t\|^2 + \lambda\|a_t - \bar{a}_t\|^2 \]

跨领域类比:特权学习与 VAE 架构类似——教师网络的编码器获取完整信息并压缩为表征,学生网络的编码器从带噪声的输入中学会重构该表征。但不同于 VAE 的重构损失,这里用的是行为克隆损失(学生模仿教师的动作而非重构输入)。

本质洞察:特权学习的本质是将一个极其困难的 POMDP 分解为两个较简单的子问题:(1) 在完全可观测 MDP 中学习最优策略(教师);(2) 用监督学习解决感知受限问题(学生)。这比直接在 POMDP 中端到端训练**收敛性好得多**——因为 POMDP 的 value landscape 比 MDP 复杂得多(策略需要同时学"做什么"和"看什么")。

4.4 RMA:快速运动自适应 ⭐⭐

RMA (Kumar et al. RSS 2021) 的核心创新:学生网络**只模仿教师的环境理解,不克隆动作**,将"适应"变成一个独立模块。

与特权学习的关键区别

标准特权学习(Lee 2020) RMA(Kumar 2021)
学生学什么 动作 + 隐向量 仅隐向量
动作来源 学生自己的策略头 共享教师的策略网络
适应频率 与策略同频 低频(10 Hz)异步
训练数据 DAgger 式 on-policy On-policy (自身 \(\hat{z}_t\) 驱动)

自适应模块

\[ \hat{z}_t = \phi(x_{t-k:t-1}, a_{t-k:t-1}), \quad k=50 \text{ (对应 0.5s 历史)} \]

训练损失:\(\mathcal{L} = \|\hat{z}_t - z_t\|^2 = \|\hat{z}_t - \mu(e_t)\|^2\)

为什么不直接预测物理参数 \(e_t\) 而是预测编码 \(z_t\) 因为 \(z_t\) 只编码了"行为应该如何改变"的信息——它是一个低维的**控制相关表征**,比原始物理参数(17 维)更紧凑且更易学习。不同的物理参数组合可能导致相同的最优行为修正(例如"摩擦低"和"负载重"可能都需要"小步慢走"),\(z_t\) 自然地将这些等价类压缩在一起。

异步执行:适应模块 10 Hz 运行,策略 100 Hz 运行。这不损害性能,因为环境参数(摩擦、负载)的变化频率远低于步态控制的频率——人在行走时感知到"地面变滑了"只需要几百毫秒,但调整步态的肌肉反射是几十毫秒级别的。

4.5 奖励工程:从手工设计到结构化方法 ⭐⭐

标准奖励函数结构(以四足速度跟踪为例):

\[ r = \sum_i w_i \cdot r_i \]
奖励项 \(r_i\) 公式 目的 典型权重
速度跟踪 \(\exp(-\|v_{xy} - v_{xy}^*\|^2/\sigma^2)\) 跟踪命令速度 1.0
角速度跟踪 \(\exp(-\|\omega_z - \omega_z^*\|^2/\sigma^2)\) 跟踪转向命令 0.5
基座高度 \(-\|h - h^*\|^2\) 维持站立高度 0.5
关节力矩 \(-\|\tau\|^2\) 降低能耗 0.0001
动作变化率 \(-\|a_t - a_{t-1}\|^2\) 平滑动作 0.01
足端滑动 \(-\|\mathrm{diag}(g) \cdot v_f\|^2\) 抑制打滑 0.5
碰撞惩罚 \(-\mathbb{1}_{\text{body contact}}\) 避免躯干触地 1.0

反事实推理:如果不加能量惩罚项会怎样?RL 策略可能学会通过高频振动电机产生"非物理推力"——这在仿真中可以获得高分(仿真器在高频下的接触模型不精确),但在真实机器人上会导致电机过热和齿轮损坏。能量惩罚不仅是为了"省电",更是为了**排除利用仿真漏洞的策略**。

4.6 足式 RL 的历史演进与范式转变 ⭐⭐

从 MPC 到 RL 的范式转移时间线

年份 里程碑 方法 意义
2018 Tan et al. RSS 域随机化 + 执行器建模 首次零样本 Sim2Real 四足
2019 Hwangbo et al. Sci.Rob. 神经网络执行器 + TRPO 首次超越 MPC 基线(速度/能效)
2019 Kumar et al. RSS 真机 SAC + 自动温度 首次无仿真纯真机训练
2020 Lee et al. Sci.Rob. 特权学习 + 地形课程 首次复杂自然地形零样本泛化
2021 Kumar et al. RSS RMA 在线适应 首次无需重训的环境适应
2022 Rudin et al. Sci.Rob. Isaac Gym + 分钟级训练 大规模并行训练范式确立
2023 Kaufmann et al. Nature PPO + Residual RL 战胜人类冠军(无人机竞速)
2024-2025 多工作 人形全身 RL RL 从四足扩展到人形

三个关键范式转变

转变 1:从"模仿"到"涌现"。早期工作(Tan 2018)依赖开环参考轨迹来定义步态节奏——RL 只是微调。后来(RMA 2021、Rudin 2022)证明完全去掉参考轨迹,步态可以从奖励函数中**自动涌现**。代价是:涌现的步态可能不符合人类审美(抖动、怪异),需要更多奖励工程来约束。

转变 2:从"精确建模"到"大力出奇迹"。Hwangbo 2019 花大量精力建模执行器(数据驱动 actuator net)。到 Rudin 2022,发现足够大的域随机化 + 足够多的并行环境可以"淹没"模型误差——不需要精确执行器模型也能 Sim2Real。但这不意味着执行器建模无用——高动态任务(跑跳、parkour)仍然需要。

转变 3:从"四足特化"到"通用具身"。早期工作针对特定机器人(Minitaur、ANYmal)。TD-MPC2 (2024) 用一个 317M 参数模型跨 80 个任务(不同 embodiment),标志着"一个策略控制多种机器人"的可能性。

反事实推理:如果没有 GPU 并行仿真(Isaac Gym 2022),足式 RL 的发展会如何?答案:仍然可能,但慢得多。CPU 仿真下训练一个四足策略需要 10-24 小时(Hwangbo 2019 用了数小时到一天)。GPU 并行把这压缩到分钟级别——这使得研究者可以在一天内尝试 50+ 种奖励函数/随机化配置,而非等一周才能跑完一组实验。算力降低了试错成本,而足式 RL 的进步很大程度上是试错驱动的(因为理论指导有限)。

4.7 模仿学习与 RL 的融合 ⭐⭐⭐

GAIL (Generative Adversarial Imitation Learning) 在足式领域的应用:

传统奖励函数难以描述"什么是好的动作"——人工设计的奖励项(速度跟踪、能量惩罚等)只是必要条件,不是充分条件。自然界中的动物步态必然是"好的",所以可以从动作捕捉数据中学习奖励信号。

GAIL 的架构: - 生成器(策略网络):产生机器人的动作序列 - 判别器:区分动作来源是数据库(真实动物数据)还是策略生成 - 奖励\(r_{\text{GAIL}} = -\log(1 - D(s, a))\),鼓励策略输出"看起来像真实动物的"动作

与纯 RL 的对比

维度 纯 RL(手工奖励) GAIL 混合方法
步态自然度 中(依赖奖励设计) 高(从数据学)
任务适应性 高(奖励可调) 低(受限于数据)
训练稳定性 中(GAN 训练不稳定) 中-高
工程量 高(调奖励) 中(收集数据)

实践建议:当任务是"让四足以自然步态行走"时,GAIL 风格的方法优于纯手工奖励。但当任务是"在极端地形上存活"时,手工奖励更好(因为动捕数据不覆盖极端情况)。最佳实践是混合:GAIL 提供步态先验,手工奖励提供任务目标。

⚠️ 常见陷阱

💡 概念误区:认为"端到端 = 不需要任何先验" - 新手想法:端到端 RL 应该从零学习所有运动技能,不需要人工设计。 - 实际上:成功的端到端方法几乎都包含大量先验:动作空间选择(位置 vs 力矩)、PD 增益设定、观测空间设计(哪些传感器、是否包含历史)、奖励函数(通常 10+ 个精心设计的项)。 - 正确理解:"端到端"指的是信息流是端到端的(传感器到电机),但**设计**不是端到端的——人类工程师的知识通过观测/动作空间设计和奖励函数注入系统。

⚠️ 编程陷阱:奖励缩放失衡导致 reward 不涨 - 现象:训练 1M 步后 reward 曲线平坦,策略学会"站着不动"。 - 根本原因:惩罚项(力矩、关节速度、碰撞)的总权重大于正向奖励(速度跟踪),策略发现"不动"是最安全的选择。 - 正确做法:(1) 打印各奖励分项的平均值,检查正负比例;(2) 使用奖励系数课程,初期放松惩罚;(3) 确保正向奖励在初期可达。

练习

  1. (设计) 为一个人形机器人站立任务设计奖励函数。要求:(a) 至少 6 个奖励项;(b) 每项说明目的和预期数量级;(c) 分析如果去掉某一项会出现什么退化行为。
  2. (理论) 证明:对于特权学习架构,如果教师的编码器 \(\mu\) 是满射的(surjective),则学生编码器 \(\phi\) 的最优解使得 \(l_t = \bar{l}_t\) 几乎处处成立。讨论这个条件何时不满足。
  3. (跨章综合) 结合 6.2 的策略梯度定理和本节的 RMA 架构,分析:自适应模块 \(\phi\) 的梯度是否通过策略 \(\pi\) 反向传播?如果是,可能出现什么梯度冲突?如果不是(RMA 的实际做法),损失了什么优化信号?

5. Sim2Real 理论基础 ⭐⭐

5.1 域随机化的分布鲁棒优化视角

动机:域随机化(Domain Randomization, DR)是 Sim2Real 最成功的方法之一——RSS 2018 的工作 (Tan et al.) 确立了"DR + 精确执行器模型 = 成功的 Sim2Real"这一黄金公式。但 DR 背后的数学原理是什么?

本质洞察:域随机化**不是**让仿真更接近真实,而是让策略对参数变化更加鲁棒。真实世界只是随机化覆盖的分布中的一个点。

数学形式化:设仿真环境参数为 \(\xi \in \Xi\)(包含质量、摩擦、延迟等),真实环境参数为 \(\xi^*\)(未知但固定)。域随机化的训练目标是:

\[ \max_\pi \mathbb{E}_{\xi \sim p(\xi)} \left[ J(\pi, \xi) \right] \]

其中 \(p(\xi)\) 是人工设定的随机化分布。如果 \(p(\xi)\) 的支撑集 \(\mathrm{supp}(p)\) 包含 \(\xi^*\),则最优策略 \(\pi^*\)\(\xi^*\) 上也有性能保证。

分布鲁棒优化(DRO)视角:更严格地,DR 可以理解为一种 DRO:

\[ \max_\pi \min_{q \in \mathcal{Q}} \mathbb{E}_{\xi \sim q(\xi)} [J(\pi, \xi)] \]

其中 \(\mathcal{Q}\) 是所有以 \(p\) 为中心、某半径 \(\epsilon\) 内的分布集合(例如 Wasserstein ball)。这保证了即使真实分布 \(q^*\) 与训练分布 \(p\) 有偏差,策略仍然有性能下界。

双重解读: - 角度 1(集合覆盖):若策略能应对多样化的训练环境,则真实世界有望是其中之一 - 角度 2(分布包含):仿真与真实是两个高维分布,随机化扩大仿真分布使其包含真实分布

与鲁棒控制的数学联系

域随机化的训练目标 \(\max_\pi \mathbb{E}_\xi[J(\pi,\xi)]\) 可以与 \(H_\infty\) 鲁棒控制做精确对比:

域随机化 \(H_\infty\) 鲁棒控制 差异
不确定性建模 \(\xi \sim p(\xi)\)(概率分布) \(\|\xi\| \leq \epsilon\)(集合) 概率 vs 最坏情况
优化目标 \(\max_\pi \mathbb{E}[J]\) \(\max_\pi \min_\xi J\) 期望 vs minimax
保守程度 中等(平均意义最优) 高(最坏情况最优)
计算方法 采样 + SGD Riccati / LMI
适用维度 高维(随机化参数可很多) 低维(LMI 规模限制)

关键区别\(H_\infty\) 优化最坏情况,域随机化优化期望。这意味着:(1) DR 策略在典型情况下表现更好(因为不过分悲观);(2) 但在极端情况下可能崩溃(因为没有最坏情况保证)。实际工程中两者的折中可以通过 CVaR (Conditional Value at Risk) 实现:

\[ \max_\pi \text{CVaR}_\alpha\left[J(\pi,\xi)\right] = \max_\pi \mathbb{E}\left[J(\pi,\xi) | J(\pi,\xi) \leq \text{VaR}_\alpha\right] \]

这优化了"最差 \(\alpha\)% 情况下的平均性能"——比 \(H_\infty\) 温和(不只看最极端的一个点),比 DR 保守(不只看平均)。

随机化参数的系统分类

类别 参数 典型范围 物理来源
质量 机器人总质量 / link 质量 / 负载 ±15-20% 制造公差、磨损
摩擦 地面摩擦 / 关节摩擦 / 滚动阻力 0.3-1.2 / ±30% 材质、湿度
刚度与阻尼 关节刚度 / 阻尼 / 地面刚度 ±20-40% 材料特性
传感器噪声 IMU / 编码器 / 速度估计 高斯+偏置 器件精度
执行器 电机强度 / PD 增益 / 延迟 ±10-30% / 5-40ms 老化、温度
几何 足端半径 / 质心偏移 ±5-10% 加工精度

5.2 执行器建模与延迟注入 ⭐⭐

为什么执行器建模是 Sim2Real 的关键? 传统物理引擎(如 Bullet 默认设置)假设电机是理想力矩源——能瞬间响应指令且输出无限大的力。但真实电机受限于电感、电阻、反电动势(Back-EMF)以及电池电压波动,其输出特性是高度非线性的。

直流电机方程(Tan et al. RSS 2018 使用的模型):

\[ \tau = K_t I, \quad I = \frac{V_{\text{pwm}} - V_{\text{emf}}}{R}, \quad V_{\text{emf}} = K_e \dot{q} \]

关键物理效应:随着奔跑速度 \(\dot{q}\) 增加,反电动势 \(V_{\text{emf}}\) 增大,有效电压差 \((V_{\text{pwm}} - V_{\text{emf}})\) 减小,电流 \(I\) 下降,力矩 \(\tau\) 下降。如果仿真中忽略这一项,策略会以为高速下仍有足够力矩——在真机上会因力矩不足而摔倒。

神经网络执行器模型(Hwangbo et al. 2019 Science Robotics):对于复杂执行器(如 ANYmal 的串联弹性执行器 SEA),解析建模几乎不可行。解决方案是用神经网络学习 "动作到力矩"映射:

  • 输入:位置误差历史 \((q_{\text{cmd}} - q_{\text{actual}})_{t-2:t}\) + 速度历史 \(\dot{q}_{t-2:t}\)
  • 输出:关节力矩 \(\tau\)
  • 训练数据:在真实执行器上执行正弦波轨迹,记录 (指令, 实际位置, 力矩)

延迟建模:维护观测历史 \(\{(t_i, O_i)\}\),当控制器在时刻 \(n\Delta t\) 请求观测时,线性插值得到延迟后的观测:

\[ O_{\text{delayed}} = O_i + \frac{n\Delta t - t_{\text{latency}} - t_i}{t_{i+1} - t_i}(O_{i+1} - O_i) \]

5.3 Sim2Real Gap 的系统性分类 ⭐⭐

按四个维度穷举(满足 Rule 4.5.F 的穷举式分类要求):

维度 1:动力学问题 - 质量分布误差(制造公差 → 惯性张量偏差) - 关节摩擦模型(线性 vs 非线性/粘滞/Coulomb) - 地面接触模型(刚性 vs 柔性/Hertz 接触) - 连杆柔性(仿真中通常假设刚性连杆) - 空气动力学(高速运动时不可忽略)

维度 2:感知问题 - IMU 偏置、温漂、积分误差 - 编码器量化误差和速度估计噪声 - 视觉传感器的光照敏感性和延迟 - 力传感器的滞后和温度依赖

维度 3:执行问题 - 电机响应延迟(从指令到力矩输出) - 通信延迟(控制器到驱动器) - 力矩饱和与速度限制 - 齿轮间隙(backlash)和弹性

维度 4:环境问题 - 地形不规则性(仿真地形 vs 真实地形的统计差异) - 可变形地面(沙/泥/雪的力学特性) - 外部扰动(风、碰撞、负载变化) - 温度效应(电池电压随温度变化)

⚠️ 常见陷阱

🧠 思维陷阱:认为"域随机化范围越大越好" - 新手想法:随机化范围越大,覆盖的真实参数越多,策略越鲁棒。 - 实际上:过大的随机化范围会导致"保守策略"——策略为了在所有极端情况下都安全,牺牲了在标称条件下的最优性能。极端例子:如果把摩擦系数随机化到 0.01-10.0,策略会学会"几乎不移动"因为这是唯一在所有摩擦下都安全的策略。 - 正确做法:随机化范围应该基于物理合理性设定(例如摩擦系数 0.3-1.2 覆盖了从湿滑地面到粗糙地面的实际范围),而非任意放大。

💡 概念误区:认为"Sim2Real 只是参数调对就行" - 新手想法:只要仿真器的物理参数标定准确,策略就能直接迁移。 - 实际上:即使所有可测量参数都完美标定,仍然存在**结构性差异**——仿真器的接触求解器、积分方法、时间步离散化本身就引入了与真实物理不同的行为。域随机化的价值不是"覆盖参数误差",而是让策略学会**对模型结构性偏差鲁棒**。 - 延伸:这就是为什么"system ID + exact simulation"路线永远无法完美——总有无法建模的残差。

练习

  1. (分析) 考虑一个简单的弹簧-质量系统 \(m\ddot{x} + c\dot{x} + kx = u\)。如果仿真中 \(m=1, c=0.1, k=1\) 但真实 \(m=1.2, c=0.15, k=0.9\),分析 PD 控制器 \(u = K_p(x^* - x) - K_d\dot{x}\) 在两种参数下的闭环极点差异。这解释了什么层面的 Sim2Real gap?
  2. (设计) 为一个四足机器人设计域随机化方案。列出至少 10 个随机化参数,为每个参数给出物理合理的范围和分布类型(均匀/高斯/对数正态),并解释选择原因。
  3. (思考) 域随机化和鲁棒控制(\(H_\infty\) 控制)在数学上有什么联系和区别?提示:两者都在"最坏情况"下优化,但对"最坏情况"的定义不同。

6. Residual RL 与安全约束 ⭐⭐⭐

6.1 基于 MPC 的残差策略

动机:纯 RL 需要从零学习所有动力学知识——这在样本效率和安全性上都不理想。如果已有一个"不完美但基本能工作"的控制器(PD、MPC),能否让 RL 只学"修正项"?

核心思想(Johannink et al. ICRA 2019 / Silver-Bagnell-Kolter 2018):

\[ \pi(x) = \pi_{\text{base}}(x) + \Delta\pi_\theta(x) \]

其中 \(\pi_{\text{base}}\) 是手写/经典控制器(PD、MPC、阻抗控制),\(\Delta\pi_\theta\) 用 RL 学习。

为什么 residual 比从零学更好?

  1. 样本效率\(\Delta\pi_\theta\) 只需学习小的修正量(\(\|\Delta\pi\| \ll \|\pi_{\text{base}}\|\)),搜索空间小得多。
  2. 安全性:即使 \(\Delta\pi_\theta\) 还没学好(训练初期输出接近零),\(\pi_{\text{base}}\) 仍能提供基本功能——失败不会是灾难性的。
  3. 可解释性:可以分析 \(\Delta\pi_\theta\) 在哪些状态下偏离基线最大,理解 RL 学到了什么。

数学分析:设 \(\pi^*\) 是真正的最优策略,\(\pi_{\text{base}}\) 是基线。定义残差 \(\delta^* = \pi^* - \pi_{\text{base}}\)。如果 \(\pi_{\text{base}}\) 已经是一个好的近似(\(\|\delta^*\|\) 小),那么学习 \(\delta^*\) 比学习 \(\pi^*\) 需要更少的函数逼近容量和更少的样本。

反事实推理:如果基线控制器在工作点外完全错误会怎样?Residual RL 会退化为普通 RL(\(\Delta\pi\) 需要学会补偿整个 \(\pi_{\text{base}}\) 的错误),甚至可能更差(因为 \(\pi_{\text{base}}\) 的错误输出干扰了探索)。所以 Residual RL 需要**训练时 curriculum**:先在基线能工作的区域探索,再逐步扩展到基线失效的区域。

6.2 CBF 与学习的融合 ⭐⭐⭐

Control Barrier Function (CBF) 提供了一种在 RL 探索过程中保证安全的形式化工具(详见控制理论方向 CLF/CBF 章节)。

回顾控制理论方向 CLF/CBF 章节:CBF \(h(x) \geq 0\) 定义了安全集合 \(\mathcal{C} = \{x : h(x) \geq 0\}\)。前向不变性条件要求 \(\dot{h} + \alpha(h) \geq 0\),这等价于对控制输入的线性约束。

CBF-QP 与 RL 的融合

\[ u = \arg\min_u \|u - \pi_\theta(x)\|^2 \quad \text{s.t.} \quad L_f h(x) + L_g h(x) u + \alpha(h(x)) \geq 0 \]

直觉:RL 策略 \(\pi_\theta\) 提供"想要的动作",CBF-QP 做最小修正使其满足安全约束。这就像一个"安全滤波器"——让 RL 自由探索,但在即将违反约束时强制修正。

6.3 Residual RL 的工程应用

典型应用案例

任务 基线控制器 残差 RL 学什么 效果
机械臂装配 阻抗控制 适应孔位偏差 训练时间缩短 10×
四足崎岖地形 MPC + WBC 适应未建模的地形特征 通过率提升 40%
灵巧手操作 位置控制 力-位混合调节 成功率从 60% 到 95%
无人机竞速 PID 极限机动补偿 超越人类世界冠军

Swift 无人机竞速(Kaufmann et al. Nature 2023) 是 RL + Residual 的标志性案例:UZH + Intel Labs 用 PPO + sim-to-real 残差校正,让自主 FPV 无人机以 100+ km/h 战胜了人类世界冠军。

⚠️ 常见陷阱

⚠️ 编程陷阱:Residual RL 基线失效时仍然叠加 - 现象:在某些极端状态下,\(\pi_{\text{base}}\) 输出完全错误的方向,叠加 \(\Delta\pi\) 后总控制量更差。 - 正确做法:添加 clip 或 gate 机制,当检测到基线异常时自动降低其权重。或使用乘法 residual:\(\pi(x) = \pi_{\text{base}}(x) \cdot (1 + \Delta\pi_\theta(x))\)

6.4 Residual RL 的收敛性分析 ⭐⭐⭐

定理(Residual RL 的样本复杂度优势):设 \(\pi^*\) 为真正最优策略,\(\pi_{\text{base}}\) 为基线控制器,\(\Delta^* = \pi^* - \pi_{\text{base}}\) 为最优残差。若 \(\|\Delta^*\|_\infty \leq \epsilon_{\text{res}}\),则用函数类 \(\mathcal{F}_{\epsilon_{\text{res}}} = \{\Delta : \|\Delta\|_\infty \leq \epsilon_{\text{res}}\}\) 逼近 \(\Delta^*\) 所需的覆盖数为:

\[ \log \mathcal{N}(\mathcal{F}_{\epsilon_{\text{res}}}, \delta) \leq d \cdot \log\left(\frac{\epsilon_{\text{res}}}{\delta}\right) \]

相比于直接用 \(\mathcal{F}_{\|\pi^*\|_\infty}\) 逼近 \(\pi^*\),覆盖数缩减了 \((\epsilon_{\text{res}} / \|\pi^*\|_\infty)^d\) 倍。

工程含义:如果基线控制器覆盖了 80% 的最优行为(\(\epsilon_{\text{res}} = 0.2\|\pi^*\|_\infty\)),则 Residual RL 需要的样本数可以减少 \(5^d\) 倍(\(d\) 为策略参数维度)。这解释了为什么 Johannink et al. 的实验中训练时间从 40 小时降到 3 小时。

与结构化动作空间的结合:在四足机器人中,一种常见的 Residual RL 变体是**参考轨迹 + 残差**:

\[ a_t = \bar{a}(t, \phi_{\text{gait}}) + \pi_\theta(o_t) \]

其中 \(\bar{a}(t, \phi_{\text{gait}})\) 是由步态相位 \(\phi_{\text{gait}}\) 参数化的周期性参考轨迹(如正弦波足端轨迹),\(\pi_\theta\) 学习自适应修正。这种设计来自 Tan et al. RSS 2018:即使 \(\pi_\theta = 0\),参考轨迹也能让机器人保持基本的步态节奏。

跨领域类比:Residual RL 之于控制,就像迁移学习之于深度学习——两者都利用了"先验知识"来缩小搜索空间。区别在于:迁移学习的先验来自预训练模型的参数,Residual RL 的先验来自手写控制器的输出。

6.5 MPC 与 RL 的混合架构实践 ⭐⭐

Grandia et al. 2023 CoRL 在 ANYmal 上展示了 RL 与 MPC 的协同:

  • RL 负责:步态调度(何时抬脚、何时落脚)、地形适应
  • MPC 负责:给定步态序列后的轨迹优化和约束满足

这种分工的理由:步态选择是离散/组合优化问题,MPC 不擅长(需要枚举或 mixed-integer programming);而给定步态后的连续轨迹优化是 MPC 的强项(有约束、有模型、可实时求解)。

Alvarez-Padilla et al. 2024 (CMU):用 MPPI + MuJoCo dynamics 做 legged 的 real-time whole-body MPC,只用一个 CPU 核即可工作——证明了 sampling-based MPC 在实体腿足上的可行性,为 TD-MPC 系列方法提供了"真实 MPC 侧"的对照组。

⚠️ 常见陷阱

⚠️ 编程陷阱:Residual RL 基线失效时仍然叠加 - 现象:在某些极端状态下,\(\pi_{\text{base}}\) 输出完全错误的方向,叠加 \(\Delta\pi\) 后总控制量更差。 - 正确做法:添加 clip 或 gate 机制,当检测到基线异常时自动降低其权重。或使用乘法 residual:\(\pi(x) = \pi_{\text{base}}(x) \cdot (1 + \Delta\pi_\theta(x))\)

🧠 思维陷阱:认为"Residual RL 可以完全替代基线控制器" - 新手想法:训练足够久后,\(\Delta\pi\) 会学会完全替代 \(\pi_{\text{base}}\)。 - 实际上:如果 \(\pi_{\text{base}}\) 在某些状态下是最优的,\(\Delta\pi\) 应该为零;如果到处替代,就回到了普通 RL 的搜索空间——丧失了 Residual 的优势。 - 正确做法:在奖励中加入 \(-\lambda\|\Delta\pi\|^2\) 正则项,鼓励小残差。只在基线确实不够好的地方才输出非零修正。

练习

  1. (设计) 为一个 PD 控制的四足机器人设计 Residual RL 方案。定义:(a) 基线控制器的具体形式;(b) 残差网络的输入输出;(c) 奖励函数中如何鼓励小残差。
  2. (理论) 证明:如果 \(\pi_{\text{base}}\) 使系统在 \(\xi = \xi_0\) 时最优,则在 \(\xi = \xi_0 + \delta\xi\)(小扰动)时最优残差 \(\Delta\pi^*\) 满足 \(\|\Delta\pi^*\| = O(\|\delta\xi\|)\)
  3. (跨章综合) 结合控制理论方向的 CBF 理论和本节的 Residual RL,设计一个"安全 Residual RL"框架:基线是 MPC,残差用 RL 学,但在 CBF-QP 约束下保证安全。画出完整的系统框图并分析闭环稳定性。

7. GPU 并行仿真与大规模训练 ⭐⭐

7.1 Isaac Gym/Lab 的数学模型

动机:传统 CPU 仿真(如 MuJoCo CPU 版)一次只能跑一个环境,PPO 训练四足机器人需要 10+ 小时。GPU 并行仿真允许同时运行 4096+ 个环境,将训练时间压缩到**几分钟**。

Rudin-Hoeller-Reist-Hutter 2022 "Learning to Walk in Minutes" 用 Isaac Gym + PPO 训练 ANYmal 几分钟学会行走——这是 massively parallel RL + sim-to-real 范式的里程碑。

并行化的数学:设 \(N\) 为并行环境数,每个环境每步贡献一个 transition \((s,a,r,s')\)。PPO 的 mini-batch 大小为 \(B = N \cdot T\)\(T\) 为 rollout 长度),梯度方差缩减因子为 \(1/B\)

\[ \mathrm{Var}[\hat{g}] = \frac{\mathrm{Var}[g]}{B} = \frac{\mathrm{Var}[g]}{N \cdot T} \]

结论:增加 \(N\)(并行环境数)等价于增加 batch size,直接降低梯度估计方差,允许使用更大学习率而不牺牲稳定性。这就是为什么 Isaac Gym 的 \(N=4096\) 能把训练加速 100× 以上。

GPU 并行的关键约束: - 所有环境必须**同步步进**(step 同时执行) - 环境之间**不能通信**(embarrassingly parallel) - 物理仿真必须在 **GPU 内存**中完成(PhysX GPU pipeline) - 策略推理 + 梯度计算也在 GPU 上(避免 CPU-GPU 数据传输)

7.2 大规模 PPO 的工程栈 ⭐⭐

典型训练栈(以 Isaac Lab 为例):

┌──────────────────────────────────────────┐
│  Policy Network (MLP/RNN, PyTorch)       │
├──────────────────────────────────────────┤
│  PPO Algorithm (rsl_rl / rl_games)       │
├──────────────────────────────────────────┤
│  Vectorized Environment Wrapper          │
├──────────────────────────────────────────┤
│  Isaac Lab / Sim (PhysX GPU Pipeline)    │
├──────────────────────────────────────────┤
│  GPU Hardware (RTX 4090 / A100)          │
└──────────────────────────────────────────┘

关键超参数(从 Rudin et al. 2022 "Learning to Walk in Minutes" 出发):

参数 典型值 说明
并行环境数 \(N\) 4096 越多越好(受 GPU 内存限制)
Rollout 长度 \(T\) 24 步 短(每步 0.02s,共 0.48s)
Mini-batch 大小 \(N \times T / 4 = 24576\) 大 batch 稳定训练
PPO epochs 5 每次 rollout 重复训练 5 次
学习率 \(10^{-3}\)\(10^{-5}\) 余弦退火
Entropy coefficient 0.01 鼓励探索
Discount \(\gamma\) 0.99
GAE \(\lambda\) 0.95

跨领域类比:GPU 并行 RL 之于传统 RL,就像 GPU 训练 ResNet 之于 CPU 训练——核心算法不变(PPO 就是 PPO),但硬件并行化使得"大数据量"变得可行,从而突破了"样本量"瓶颈。对于 RL,这意味着可以在训练中使用更多的随机化、更大的环境多样性、更短的 episode——所有这些都有助于泛化。

7.3 从 CPU 到 GPU:训练范式的质变 ⭐⭐

CPU 时代的训练流程(Hwangbo et al. 2019):

CPU 仿真 (MuJoCo/Bullet)
    ↓  数据收集 (1 env × 50M steps ≈ 10 hours)
CPU 训练 (PPO/TRPO)
    ↓  策略更新
重复 1000+ 轮

GPU 时代的训练流程(Rudin et al. 2022):

GPU 仿真 (Isaac Gym/PhysX)
    ↓  数据收集 (4096 envs × 24 steps = 98304 transitions/iteration)
GPU 训练 (PPO, same GPU)
    ↓  策略更新 (no CPU-GPU transfer!)
重复 ~2000 轮 (≈ 5 minutes total)

质变不仅是"更快"

  1. 研究方法论改变:从"精心设计一次实验,等 12 小时看结果"到"30 分钟内跑完 50 组消融实验"。这使得奖励函数设计、域随机化范围选择等原本靠"经验"的超参数调优变成了可系统搜索的过程。

  2. 算法设计偏好改变:GPU 并行让 on-policy 方法(PPO)反超 off-policy 方法(SAC)成为足式 RL 标配。原因:PPO 的数据不能重用,所以它极度依赖"快速采样"——GPU 并行正好满足这个需求。而 SAC 的 replay buffer 需要 CPU 内存管理,在 GPU pipeline 中反而是瓶颈。

  3. Sim2Real 策略改变:训练快了意味着可以做更大范围的域随机化(即使很多随机化配置导致训练失败,总时间还是可接受的),也意味着可以做更多的 curriculum 阶段(因为每个阶段的训练成本低了)。

7.4 训练效率的统计分析 ⭐⭐⭐

定理(并行环境的样本复杂度):对 PPO 在 LQR 类问题上的样本复杂度,Dean et al. 2020 的框架给出:要达到 \(\varepsilon\) 次优性需要 \(\tilde{O}((n+m)/\varepsilon^2)\) 个样本。用 \(N\) 个并行环境,wall-clock time 缩短 \(N\) 倍,但**总样本数不变**。

这意味着什么? GPU 并行不改变"算法需要多少数据才能学好",只改变"获取这些数据需要多长时间"。所以它不是"更聪明的算法",而是"更快的数据采集机器"。对于 on-policy 算法(PPO)这特别关键——因为数据不能重用,采集速度直接决定训练速度。

但大 batch 有时还能提升最终性能——为什么?

有两个机制:

机制 1(梯度方差缩减):大 batch 允许使用更大学习率而不震荡。对 PPO 来说,更大的 effective step size 意味着策略更新更"大胆"——能更快逃离次优 basin。

机制 2(域随机化的统计覆盖):4096 个并行环境中,域随机化参数被密集采样。这意味着策略**在每次更新中就看到了参数空间的广泛覆盖**,而非串行训练中需要很多 episode 才能累积到相同覆盖。等价地:大 \(N\) 使得 \(\mathbb{E}_\xi[J(\pi,\xi)]\) 的估计更精确,策略优化更"知道在向哪个方向走"。

线性 scaling rule(来自深度学习的经验):当 batch size 增大 \(k\) 倍时,学习率也应增大 \(k\) 倍(在一定范围内)。对足式 RL 中 PPO 的实践:从 \(N=256\)\(N=4096\)(16 倍),学习率通常从 \(10^{-4}\) 提升到 \(10^{-3}\)(10 倍)——没有精确的 16 倍是因为 PPO 的 clip 机制提供了额外的稳定性保证。

GPU 内存是真正的瓶颈:每个环境需要存储:(1) 物理状态(100-500 float);(2) 渲染数据(如果有视觉);(3) PhysX 内部数据结构。在 RTX 4090 (24GB) 上,纯本体感知的四足大约支持 8192 个环境;加上视觉观测则降到 512-1024 个。A100 (80GB) 可以支持 32768+ 纯本体感知环境。

⚠️ 常见陷阱

⚠️ 编程陷阱:在 Isaac Gym 中使用 CPU 操作打断 GPU pipeline - 现象:每步都把 tensor 从 GPU 搬到 CPU 做 numpy 操作,然后搬回 GPU。 - 后果:训练速度从"几分钟"退化到"几小时"——GPU pipeline 被 CPU 同步打断。 - 正确做法:所有操作保持在 GPU 上(PyTorch tensor 操作),只在日志记录时偶尔搬到 CPU。

7.5 Isaac Lab 的生态与实践 ⭐⭐

Isaac Lab(原 Isaac Gym 的继任者) 是 2024+ 足式/人形 RL 研究的事实标准平台。与 Isaac Gym 的区别:

Isaac Gym (legacy) Isaac Lab (current)
API 风格 低层级、手写 tensor 高层级、配置文件驱动
环境定义 Python class 继承 YAML + dataclass
物理引擎 PhysX 5.1 直接调用 Isaac Sim + PhysX 5.3
可视化 有限(headless 为主) Isaac Sim 完整渲染
多体仿真 基础(无柔性体) 支持柔性体、流体
社区支持 维护模式 活跃开发

典型的 Isaac Lab 四足训练 pipeline

  1. 环境配置:定义机器人 URDF/USD、地形生成参数、域随机化范围、奖励函数
  2. 策略网络:通常是 2-3 层 MLP(256 或 512 hidden),有时加 LSTM/GRU
  3. 训练:PPO + GAE,4096 并行环境,24 步 rollout,5-10 分钟收敛
  4. 部署:导出 ONNX/TorchScript,在机载计算机(Jetson/NUC)上 100-500 Hz 推理

从研究到部署的 gap:训练好的策略在仿真中表现完美,但部署到真机仍需要: - 观测对齐:确保真机传感器的预处理与仿真一致 - 动作对齐:确保 PD 增益 / 力矩限制与训练一致 - 延迟补偿:真机通信延迟需要在仿真中提前 model - 安全机制:加入硬件保护(力矩限制、关节限位、跌倒检测)

⚠️ 常见陷阱

⚠️ 编程陷阱:在 Isaac Gym/Lab 中使用 CPU 操作打断 GPU pipeline - 现象:每步都把 tensor 从 GPU 搬到 CPU 做 numpy 操作,然后搬回 GPU。 - 后果:训练速度从"几分钟"退化到"几小时"——GPU pipeline 被 CPU 同步打断。 - 正确做法:所有操作保持在 GPU 上(PyTorch tensor 操作),只在日志记录时偶尔搬到 CPU。

🧠 思维陷阱:认为"GPU 并行可以无限 scale" - 新手想法:并行度越高越好,4096 不够就上 16384。 - 实际上:(1) GPU 内存有限制;(2) 当 batch size 过大时,PPO 的 clip 机制会过度约束更新幅度,导致训练变慢;(3) 太多环境意味着每个环境只跑很短的 episode,长期依赖关系学不好。 - 经验法则:\(N=2048-8192\) 是当前最佳范围。超过 8192 通常 diminishing returns。

练习

  1. (计算) 如果单个 GPU 能并行 4096 个环境,每个环境步进时间 0.5ms,PPO 需要 \(10^7\) 个样本才能收敛,计算 wall-clock 训练时间(不考虑梯度计算开销)。
  2. (设计) 比较在 \(N=256\)\(N=4096\) 并行度下,相同 wall-clock time 内 PPO 的学习曲线差异。解释为什么大 \(N\) 不仅更快,通常还能达到更好的最终性能。
  3. (工程) 列出将 Isaac Lab 训练的四足策略部署到 Unitree Go2 真机时需要解决的 5 个工程问题,并为每个问题给出解决方案。

8. RL + 控制的统一决策框架 ⭐⭐

8.1 Bertsekas 的 Rollout 统一视角

核心公式(Bertsekas 2019 RL & Optimal Control):

\[ \pi_{\mathrm{MPC}}(x) = \arg\min_u \bigl\{\ell(x,u) + \text{rollout to horizon } N + V_\theta(x_N)\bigr\} \]

这一行统一了一切: - \(N=1,\;V_\theta = V^*\)Bellman 最优策略 - \(N=1,\;V_\theta\) 学到的 ⇒ Q-learning 贪婪策略 - \(N\to\infty,\;V_\theta=0\)标准无限 horizon OCP(纯 MPC) - \(N\) 中等,\(V_\theta\) 学到的 ⇒ TD-MPC / POLO / MPQ(λ) - \(N=0,\;V_\theta\) 学到的 ⇒ 纯 model-free RL(greedy w.r.t. learned V)

本质洞察:"RL = rollout + approximation"——这是 Bertsekas 的核心口号。所有 RL 算法和所有 MPC 算法都是这个框架的不同实例化。区别仅在于:(1) rollout 用的模型是物理模型还是学到的模型;(2) 终端值函数是解析的还是学到的;(3) rollout 长度是长还是短。

8.2 何时用纯 MPC、何时用纯 RL、何时混合 ⭐⭐

决策树(2026 年工程共识):

                    你有精确的物理模型吗?
                    /                    \
                  是                      否
                 /                          \
         约束是否关键?                   状态维度高吗?
         /           \                   /           \
        是            否               是             否
       /               \              /               \
  纯 MPC            MPC+学V        纯 RL          MBRL
  (ACADOS/OCS2)    (TD-MPC)      (PPO/SAC)      (Dreamer)

  适用:                            适用:
  - 约束满足性有保证               - 高维观测(视觉)
  - 可用 QP/NLP 实时求解           - 模型太复杂无法写
  - 如:四足 WBC、协作机械臂       - 如:灵巧手操作

                    模型大致能用?
                    /            \
                  是              否
                 /                  \
        Residual RL              End-to-end RL
        (MPC + NN 残差)          (PPO from scratch)

  适用:                          适用:
  - 模型覆盖 80% 动力学          - 无先验模型
  - 需要适应未建模部分            - 允许大规模仿真训练
  - 如:Swift 无人机              - 如:新型机器人原型

量化准则

条件 推荐方案 原因
约束硬性(安全关键) MPC + CBF RL 不保证约束满足
实时性 < 1ms NN 策略(RL 训练的或 MPC-Net 蒸馏的) MPC 求解太慢
模型误差 > 30% 纯 RL 或 Residual RL MPC 在大模型误差下不可靠
状态维度 > 100 RL(可能加 world model) MPC 的 curse of dimensionality
可用仿真时间充足 先 RL 训练再部署 样本效率不是瓶颈
可用仿真时间不足 Model-based(PETS/PILCO) 样本效率优先

8.3 Learning-Augmented MPC 的四种 Pattern ⭐⭐

Pattern A:MPC 作为值函数近似器 - MPC 的 \(N\)-step 求解等价于 "短 rollout + 终端代价" - 学习越准的 \(V_\theta\) 允许越短的 MPC horizon - 代表:Bhardwaj-Choudhury-Boots 2021 MPQ(λ)

Pattern B:短视 MPC + 学到的 terminal value - Latent space 中做 5-6 步 MPPI + TD-learned \(V\) 作终端 - 代表:TD-MPC2 (Hansen et al. 2024)

Pattern C:MPC teacher → NN student 蒸馏 - MPC 当 expert,NN 做 imitation - 损失函数:最小化 control Hamiltonian \(\mathcal{H}(x,\lambda,\pi_\theta(x))\) - 代表:MPC-Net (Carius et al. 2020) - 部署速度:NN 推理 1000× 快于 MPC 求解

Pattern D:Residual RL(学 MPC 的残差) - \(\pi(x) = \pi_{\text{MPC}}(x) + \Delta\pi_\theta(x)\) - 代表:Swift 无人机 (Kaufmann 2023)、ANYmal RL+MPC

2026 年最优实践:Pattern B + Pattern D 的组合——短视 MPC(sampling-based 或 gradient-based)+ 学到的终端 value function + residual RL 修正手写控制器的"已知未知"。

8.4 算法对偶映射表(工程师速查)

时间尺度对偶

\[ \underbrace{V^*(x) = \min_u\{\ell(x,u)\Delta t + (1-\beta\Delta t)V^*(x')\}}_{\text{Bellman (离散)}} \;\xrightarrow{\Delta t\to 0}\; \underbrace{\beta V^* = \min_u\{\ell + \nabla V^{*\top}f\}}_{\text{HJB (连续)}} \]

完整对偶表

离散 RL 连续控制 共同数学结构
策略迭代 (PI) Kleinman/Hewer 迭代 Newton on ARE
值迭代 (VI) Riccati 差分方程扫 Banach 不动点
Q-learning ADHDP / ADP LSTD on \(H_K\)
Actor-Critic Continuous-time PI (Doya 2000) 两时间尺度随机逼近
DDPG / TD3 Deterministic PG + \(u^*=-R^{-1}g^\top\nabla V\) Silver 2014 DPG
SAC (max-ent) Entropy-regularized HJB → LMDP Boltzmann 最优策略
PPO trust region SQP with KL trust region 二阶近似 + linesearch
Dyna / world model Learning-based MPC Model + planner 组合
MBPO short rollout Receding horizon MPC 有限 horizon + bootstrap
Residual RL Disturbance feedforward Base controller + 修正项
Offline RL Batch system ID 固定数据集推断最优

⚠️ 常见陷阱

🧠 思维陷阱:把 Swift = "RL 战胜 MPC" 过度推广 - 新手想法:既然 RL 在无人机竞速中超越了人类和 MPC,那么 RL 在所有任务上都优于 MPC。 - 实际上:Swift 的成功依赖于三个条件同时满足:(1) 低维状态(6 DoF);(2) 高频控制(500 Hz);(3) 少约束(只有赛道边界)。在高 DoF、强约束场景(人形全身控制、协作操作),MPC 骨架 + RL 补丁仍是主流。 - 正确思维:RL vs MPC 不是"谁更好"的问题,而是"这个任务的特征更适合谁"的问题。

💡 概念误区:认为 "MPC-Net 蒸馏 = 完美复制 MPC" - 新手想法:NN 模仿 MPC 的输出,所以性能等价于 MPC。 - 实际上:MPC-Net 使用 Hamiltonian 损失(不是行为克隆),所以它不是在学"MPC 的具体数值输出",而是学"满足 HJB 一阶条件的策略"。在训练数据覆盖不到的状态区域,MPC-Net 可能泛化更好(因为 Hamiltonian 损失编码了最优性条件)也可能更差(因为 NN 的外推能力有限)。 - 延伸:这就是为什么 MPC-Net 需要 online 更新或 Residual 修正。

练习

  1. (综合设计) 为一个 12-DoF 四足机器人在非结构化地形上的运动控制,设计完整的"MPC + RL"混合方案。说明:(a) MPC 负责什么(约束、接触序列);(b) RL 负责什么(地形适应、未建模动力学);(c) 两者如何交互(频率、接口)。
  2. (跨章综合题) 结合控制理论方向的 DDP/iLQR 理论和本章的 MBRL,分析:为什么 TD-MPC2 选择 MPPI(零阶方法)而非 DDP(二阶方法)做规划?提示:考虑 latent dynamics 的可微性、多模态代价景观、和 GPU 并行性。
  3. (思考) 如果 Bertsekas 的 "RL = rollout + approximation" 是对的,为什么学术界还把 RL 和 OC(最优控制)当成两个社区?他们真正的分歧在哪里?

深入专题:从理论到工程的桥接

A. LQR 上的 Natural Policy Gradient 详解 ⭐⭐

动机:Vanilla PG 在 LQR 上的收敛虽然有全局保证,但收敛常数依赖于系统维度和条件数。Natural PG 通过 Fisher 信息矩阵预条件化梯度,消除了参数空间的几何扭曲,在 LQR 上获得维度无关的收敛率。

Fisher 信息矩阵在 LQR 中的形式:对策略 \(\pi_K(x) = -Kx + \epsilon\)\(\epsilon \sim \mathcal{N}(0, \sigma^2 I)\)),Fisher 矩阵为:

\[ F_K = \mathbb{E}_{x\sim d_K}\left[\nabla_K \log\pi_K(a|x) \cdot \nabla_K \log\pi_K(a|x)^\top\right] = \sigma^{-2} \Sigma_K \otimes I_m \]

Natural Gradient 更新

\[ K_{n+1} = K_n - \eta F_K^{-1} \nabla_K J(K) = K_n - \eta \cdot 2[(R+B^\top P_K B)K - B^\top P_K A] \]

注意:右乘 \(\Sigma_K^{-1}\) 的效果正是消除了 vanilla PG 中对 \(\Sigma_K\) 的依赖。这就是为什么 Natural PG 的收敛率不依赖初始状态分布——它自适应地调整了步长。

与 Gauss-Newton 的关系:如果把 \(\eta\) 设为精确的 Newton 步长 \(\eta = (R+B^\top P_K B)^{-1}\),Natural PG 退化为 Hewer 迭代(策略迭代)。所以 Gauss-Newton > Natural PG > Vanilla PG 的收敛速度层级,对应的是"利用了多少曲率信息"。

工程含义:在非线性 RL 中,TRPO 和 PPO 都是 Natural PG 的近似实现——TRPO 用 CG 解 \(F^{-1}g\),PPO 用 clip 近似 KL trust region。理解 LQR 上的 Natural PG 有助于理解为什么 TRPO/PPO 比 vanilla PG 稳定得多。

B. 连续时间 Actor-Critic 的严格化 ⭐⭐⭐

Doya 2000 的 value-gradient policy:若 \(f(x,u) = a(x) + g(x)u\)(控制仿射系统)且控制代价 \(\frac{1}{2}u^\top R u\),则 HJB 的 \(\min_u\) 闭式给出:

\[ u^*(x) = -R^{-1}g(x)^\top \nabla V(x) \]

这是**学到的 \(V\) 直接给出解析策略**的典型例子。与 DDPG 的关系:DDPG 的 critic 就是这里的 \(V\),actor 就是 \(u^*(x)\) 的函数逼近版。区别在于:Doya 的公式利用了控制仿射结构得到解析策略,DDPG 没有这个假设所以需要另外训练一个 actor 网络。

连续时间 eligibility trace:Doya 定义了指数衰减的 eligibility trace:

\[ e(t) = \int_0^t e^{-(t-s)/\kappa} \nabla_\theta V_\theta(x(s)) ds \]

对应离散时间 TD(\(\lambda\)) 中 \(\lambda = 1 - \Delta t / \kappa\)。参数更新为 \(\dot\theta \propto \delta(t) \cdot e(t)\)

为什么连续时间版本有时更稳定? 因为它避免了"\(\Delta t\) 选择"对超参数的影响——在连续公式中,所有量都有物理单位(\(\beta\) 单位 \(s^{-1}\)\(\kappa\) 单位 \(s\)),超参数的物理意义明确。而离散版本中 \(\gamma\)\(\lambda\) 的最优值随 \(\Delta t\) 变化,跨系统不可比。

C. MPC-Net 的 Hamiltonian 损失详解 ⭐⭐⭐

传统行为克隆**的损失是 \(\mathcal{L}_{\text{BC}} = \|\pi_\theta(x) - u^*_{\text{MPC}}(x)\|^2\)。MPC-Net 的创新在于使用 **control Hamiltonian 作为损失:

\[ \mathcal{L}_{\text{Ham}} = \mathcal{H}(x, \lambda, \pi_\theta(x)) = \ell(x, \pi_\theta(x)) + \lambda^\top f(x, \pi_\theta(x)) \]

其中 \(\lambda = \nabla V^*(x)\) 是 MPC 返回的协态(value gradient)。

为什么 Hamiltonian 损失优于行为克隆?

  1. 编码了最优性条件:最优策略满足 \(\pi^* = \arg\min_u \mathcal{H}(x, \lambda, u)\)。最小化 \(\mathcal{H}\) 直接逼近这个条件,而不是逼近 \(u^*\) 的数值。
  2. 对 MPC 数值误差鲁棒:MPC 求解器可能只给出近似最优的 \(u^*\),但 \(\lambda\) 通常更精确(因为它是 QP 的对偶变量)。
  3. 隐式编码约束:当 \(u\) 在约束边界时,\(\nabla_u \mathcal{H} \neq 0\)(KKT 条件给出互补松弛),Hamiltonian 损失自然地将约束信息传递给 NN。

在 OCS2 框架中的实现:ETH 的 OCS2 框架内置了 MPC-Net 模块——MPC 在每步求解时输出 \((x^*, u^*, \lambda^*)\),NN 策略用 Hamiltonian 损失在线更新。部署时 NN 以 1000 Hz 运行,MPC 以 30 Hz 运行作为 backup 和 training signal。

D. 足式 RL 的观测设计哲学 ⭐⭐

为什么要剔除某些传感器信息?

Tan et al. RSS 2018 做了一个关键设计决策:从观测空间中**剔除了 Yaw 角、电机速度和足端接触信息**。这看似反直觉——更多信息不是更好吗?

答案:在 Sim2Real 中,不可靠的信息比没有信息更差。

  • Yaw 角:磁力计在室内极不稳定(铁磁干扰),IMU 积分产生漂移。在仿真中 yaw 是精确的,策略会学会依赖它;部署到真机后 yaw 不准确,策略崩溃。
  • 电机速度:真实中通过位置微分得到,噪声极大。仿真中是精确的,策略会对高频速度信号过拟合。
  • 足端接触:仿真器给出完美的二值接触状态;真实力传感器有噪声、滞后、阈值不确定性。

观测设计原则:只保留在仿真和真实中**统计特性相近**的传感器。如果一个传感器在仿真中精确但真实中噪声大,那么要么加入足够的传感器噪声模拟,要么直接去掉。

与 RMA 的结合:RMA 的自适应模块 \(\phi\) 从状态-动作历史中推断环境参数——这实际上是在**重建被剔除的信息**。例如,从"推力大但无位移"的历史中推断出"摩擦系数高"或"被卡住了"。所以观测设计和自适应架构是互补的:前者定义了"直接告诉策略什么",后者定义了"让策略自己推断什么"。

E. 域随机化的理论极限 ⭐⭐⭐

域随机化的失败模式:并非所有 Sim2Real gap 都能被域随机化覆盖。存在三类根本限制:

  1. 结构性差异:仿真器的接触求解算法与真实物理有本质不同(如 PhysX 的 PGS/Newton 求解器 vs 真实接触的连续力学)。无论怎么随机化参数,都无法覆盖这类差异。

  2. 分布外事件:如果真实环境中出现了随机化范围外的参数(如意外踩入冰面,摩擦系数 < 0.1),策略可能完全失效。

  3. 过保守问题:随机化范围越大,策略越保守。在极端情况下,策略会退化为"最安全但最慢"的行为。

数学刻画:设 \(\Xi_{\text{train}} = \{\xi : p(\xi) > 0\}\) 为训练分布的支撑集,\(\xi^*\) 为真实参数。

  • 如果 \(\xi^* \in \Xi_{\text{train}}\):DR 有性能保证(但可能保守)
  • 如果 \(\xi^* \notin \Xi_{\text{train}}\):无保证,需要在线适应(RMA/系统辨识)

这就是 RMA 对 DR 的补充:DR 处理"训练分布内的变化"(鲁棒性),RMA 处理"训练分布外的变化"(适应性)。两者组合——DR 提供基础鲁棒性,RMA 提供超出预期的适应能力——是当前最强的 Sim2Real 方案。

F. 大规模 RL 训练的统计现象 ⭐⭐

现象 1:大 batch 的隐式正则化

\(N=4096\) 并行环境下,PPO 的 effective batch size 约 \(10^5\)。这不仅降低了梯度方差,还产生了**隐式正则化效果**:策略倾向于学习"在所有并行环境中都好的"行为——这等价于一种 population-level 的鲁棒优化。

数学直觉\(N\) 个环境的平均 reward 是 \(\bar{J} = \frac{1}{N}\sum_{i=1}^N J(\pi, \xi_i)\)。如果 \(\xi_i\) 被随机化,则优化 \(\bar{J}\) 等价于优化 \(\mathbb{E}_\xi[J(\pi,\xi)]\)——这正是域随机化的目标。所以大规模并行 + 域随机化 = 自动获得鲁棒策略。

现象 2:PPO 的 sample reuse 与 staleness

PPO 允许对同一 batch 数据做多次梯度更新(PPO epochs = 5)。在大 batch 下这很关键:每次采样成本高(需要做物理仿真),但每个样本只用一次太浪费。PPO 的 clip 机制确保重复使用不会导致策略偏离太远(信赖域约束)。

现象 3:训练曲线的"阶梯形"

在足式 RL 训练中,reward 曲线常呈现阶梯形——平台期后突然跳升。这对应于策略的**相变**:例如从"站着不动"突然跳到"能走路",从"平地小跑"突然跳到"能跨越障碍"。每次相变本质上是策略找到了一个新的 attractor basin。

G. 从 Bellman 到工程:完整的翻译表 ⭐⭐

写给每天用 OCS2/Crocoddyl 的机器人工程师

当你读到一篇 RL 论文里的术语时,可以这样翻译:

RL 论文中的说法 你的 C++ 代码中的对应 数学等价关系
"V(s) is the value function" ocs2::ScalarFunctionQuadraticApproximation valueFunction $V(x) = $ cost-to-go
"Q(s,a) is the action-value" DDP backward pass 中的 \(Q_{xx}, Q_{xu}, Q_{uu}\) \(Q(x,u) = \ell(x,u) + V(x')\)
"advantage A(s,a)" iLQR 中的 \(\delta Q = Q(x,u) - V(x)\) 衡量动作好于平均多少
"TD error \(\delta\)" MPC tracking error + terminal value mismatch \(r + \gamma V(s') - V(s)\)
"actor update" OCS2 中的 policy improvement step 沿 \(-\nabla_u \mathcal{H}\) 方向更新
"critic update" OCS2 中的 value function approximation Riccati backward sweep
"replay buffer" 无直接对应(on-policy MPC 不需要) 历史 trajectory 数据库
"episode" 一次 rollout/simulation 从初始状态到终止的完整轨迹
"reward shaping" cost function tuning 修改 \(\ell(x,u)\) 的各项权重
"curriculum learning" 逐步增加 MPC 场景难度 从简单到复杂的训练调度

H. PPO 在足式 RL 中的实践细节 ⭐⭐

为什么 PPO 而非 SAC 成为足式 RL 的标准选择?

特性 PPO SAC 足式 RL 中的影响
On/Off-policy On-policy Off-policy PPO 与 GPU 并行天然匹配(data fresh)
样本效率 GPU 并行弥补了 PPO 的样本效率劣势
训练稳定性 高(clip 机制) 中(双 Q 防过估计) 足式训练需要稳定性优先
超参数敏感性 中(温度 \(\alpha\) PPO 一套超参数跨任务可用
GPU 利用率 高(大 batch 自然并行) 低(replay buffer 在 CPU) Isaac Gym 场景下 PPO 效率更高
确定性策略 clip 后近似确定 需要显式去 exploration 部署时需要确定性输出

PPO 的关键实现细节(来自 Rudin et al. 2022 rsl_rl):

  1. Observation normalization:用 running mean/std 归一化所有输入,防止不同传感器量纲差异导致梯度失衡
  2. Value function clipping:与策略 clip 类似,防止 value estimate 跳变
  3. Learning rate schedule:从 \(3\times10^{-4}\) 线性衰减到 \(10^{-5}\)
  4. Entropy bonus decay:初期 0.01 促进探索,后期降到 0.001 促进收敛
  5. Symmetric augmentation:对称步态的左右镜像数据增强

I. Isaac Lab 框架的数学模型 ⭐⭐

PhysX GPU 物理引擎的核心假设

  1. 刚体假设:所有 link 为刚体(无柔性变形)
  2. 接触模型:基于 penalty 方法的软接触(允许微小穿透换取计算稳定性)
  3. 积分方法:隐式 Euler(稳定但引入数值阻尼)
  4. 约束求解:TGS (Truncated Gauss-Seidel) 迭代

GPU 并行的数学结构

所有 \(N\) 个环境的状态组成一个大 tensor:\(\mathbf{X} \in \mathbb{R}^{N \times n_s}\)。PhysX GPU pipeline 在一次 kernel launch 中同时步进所有环境:

\[ \mathbf{X}_{t+1} = \text{PhysX\_Step}(\mathbf{X}_t, \mathbf{U}_t, \boldsymbol{\xi}) \]

其中 \(\boldsymbol{\xi} \in \mathbb{R}^{N \times n_\xi}\) 是每个环境的随机化参数。

Actuator Net 在 Isaac Lab 中的实现

Isaac Lab 提供了 ActuatorNetMLPActuatorNetLSTM 两种预置执行器模型。配置方式:

# Isaac Lab 环境配置(示意)
actuator_cfg = ActuatorNetMLPCfg(
    joint_names=[".*_hip_joint", ".*_thigh_joint", ".*_calf_joint"],
    network_file="path/to/actuator_net.pt",  # 预训练的 TorchScript 模型
    pos_scale=1.0,
    vel_scale=0.1,
    torque_limit=33.5,  # Nm
)

这使得 Hwangbo et al. 2019 的执行器建模方法**从算法创新下沉为基础设施**——研究者无需从零实现,只需在配置文件中指定网络路径。


9. 进阶主题(档位 4 选学)

9.0 Adaptive Dynamic Programming (ADP) 在 LQR 上的实现 ⭐⭐⭐

历史脉络:Werbos 1990s 提出的 ADHDP (Action-Dependent Heuristic DP) 就是"学 \(H_K\) 的线性回归 + 贪婪 min"。在 LQR 上具体实现:

步骤 1:采样 \(\{(x_t, u_t, r_t, x_{t+1})\}\)(在策略 \(\pi_K\) 下 rollout)

步骤 2:构造特征 \(\phi(x,u) = \mathrm{vech}\bigl((x;u)(x;u)^\top\bigr)\)——即 \((x,u)\) 的外积的向量化(只取上三角,因为 \(H_K\) 对称)

步骤 3:用最小二乘拟合 \(Q^{\pi_K}(x,u) \approx \phi(x,u)^\top h\),解出 \(h\) 即得 \(H_K\) 的各块

步骤 4:贪婪动作 \(u^* = -H_{uu}^{-1} H_{ux} x\),得到新的 \(K\)

这就是 LSPI-on-LQR(Lagoudakis-Parr 2003),等价于 Hewer 迭代的 model-free 近似版。

样本复杂度(Krauth-Tu-Recht 2019, Tu-Recht 2019):\(H\)\(O((n+m)^2)\) 个参数,所以需要 \(O((n+m)^2 / \epsilon^2)\) 个样本才能把 \(\hat{H}\) 估计到 \(\epsilon\) 精度。这是**多项式的**——比通用 RL 的指数复杂度好得多,但比有模型的 Riccati 求解(\(O(n^3)\) flops,零样本)差很多。

致命三元组在 LQR 上的体现(回顾 6.3):

致命三元组 = off-policy + 函数逼近 + bootstrapping 导致发散。在 LQR 上可以显式构造反例:

  • 如果用**错误的特征基**(如只用 \(x^2\) 不用 \(xu\)\(u^2\)),LSTD 的投影误差非零,Q-learning 迭代可能不收敛。
  • 如果用 off-policy 数据(行为策略 \(\pi_b \neq \pi_K\)),重要性采样比 \(\rho = \pi_K/\pi_b\) 的方差在高维时爆炸。

这些在 LQR 上可以**精确计算**何时发散、发散速度多快——这就是 LQR 作为"RL 显微镜"的价值:其他系统上只能观察到"训练不稳定",LQR 上能精确诊断原因。

对偶原理(LQR-Kalman 滤波对偶)

经典结论:LQR 最优控制 \(\leftrightarrow\) Kalman 滤波。矩阵对应:

LQR Kalman 对应关系
\(A\) \(A^\top\) 状态转移
\(B\) \(C^\top\) 控制/观测映射
\(Q\) \(W\)(过程噪声) 状态代价/不确定性
\(R\) \(V\)(量测噪声) 控制代价/观测不确定性
DARE 解 \(P\) 预测协方差 \(\Sigma\) 代价/不确定性
最优增益 \(K\) Kalman 增益 \(K_f\) 反馈/修正

RL 视角下的对偶意义:Kalman 滤波是"最优状态估计",LQR 是"最优控制"。在 partially observable 系统(POMDP)中,两者必须同时工作——Kalman 滤波估计状态,LQR 根据估计状态做控制。这就是 LQG(Linear Quadratic Gaussian)的本质:分离原理保证两者可以独立设计然后组合。

在 RL 语境中,RMA 的自适应模块 \(\phi\) 就是"Kalman 滤波的非线性推广"(从历史推断隐状态),策略网络 \(\pi\) 就是"LQR 的非线性推广"(根据隐状态做控制)。分离原理在非线性情况下不精确成立,但实践中分阶段训练(先训教师,再训自适应模块)仍然有效——这是"近似分离原理"的工程体现。

9.1 Koopman 算子与数据驱动线性化 ⭐⭐⭐⭐

Koopman 算子 \(\mathcal{K}\) 定义为作用在观测函数上的算子:\((\mathcal{K}g)(x) := g(f(x))\)。即使 \(f\) 非线性,\(\mathcal{K}\) 在函数空间里**是线性的**——代价是空间无穷维。

DMD / EDMD 选字典函数 \(\{\psi_i(x)\}\) 做有限维近似。Koopman MPC 把非线性 MPC 化为 lifted 空间的线性 MPC。与 RL 的关系:若字典包含 value function 候选基,则 Koopman 估计与 LSTD(6.3)同构。

9.2 SAC 的软 HJB 视角与 Path Integral Control ⭐⭐⭐⭐

最大熵 RL 在连续时间极限下是**熵正则化 HJB**:

\[ \beta V(x) = \min_{\rho(\cdot|x)}\mathbb{E}_{u\sim\rho}\bigl[\ell(x,u) + \tau\log\rho(u|x) + \nabla V^\top f(x,u)\bigr], \]

闭式最优分布 \(\rho^*(u|x)\propto \exp(-Q(x,u)/\tau)\)——这就是 SAC 的 Boltzmann policy。

Path Integral Control (Kappen 2005, Theodorou-Buchli-Schaal 2010):在 "\(\lambda GR^{-1}G^\top = BB^\top\)" 兼容性假设下,熵正则 HJB 线性化为特征值问题,由 Feynman-Kac 给出路径积分解,导出 PI² 算法和 MPPI (Williams-Theodorou 2016/2017)。

9.3 LQR 样本复杂度框架 ⭐⭐⭐⭐

Dean-Mania-Matni-Recht-Tu (FoCM 2020) 的 Coarse-ID Control: 1. 随机输入激励 → 最小二乘估计 \((\hat A,\hat B)\),非渐进误差界 \(\max\{\|\hat A-A\|,\|\hat B-B\|\}\lesssim \sigma_w\sqrt{(n+m)/N}\) 2. 用 System Level Synthesis (SLS) 在模型 uncertainty ball 内做鲁棒综合 3. 端到端 suboptimality \(O(\varepsilon)\),Fano-type 下界 \(\Omega(n+m)\) 样本

9.4 MPPI 与 Path Integral Control 的工程实现 ⭐⭐⭐

MPPI (Model Predictive Path Integral, Williams-Theodorou 2016/2017) 是 path integral control 的现代 MPC 实现,今天在 autonomous racing、legged locomotion 被广泛使用。

核心算法

  1. 对当前轨迹 \(\mathbf{u} = (u_0, \dots, u_{H-1})\) 添加 \(N\) 组高斯扰动:\(\mathbf{u}^{(i)} = \mathbf{u} + \epsilon^{(i)}\)\(\epsilon^{(i)} \sim \mathcal{N}(0, \Sigma)\)
  2. 对每组扰动做 rollout,计算代价 \(S^{(i)} = \sum_{t=0}^{H-1} \ell(x_t^{(i)}, u_t^{(i)})\)
  3. 计算指数加权:\(w^{(i)} = \frac{\exp(-S^{(i)}/\lambda)}{\sum_j \exp(-S^{(j)}/\lambda)}\)
  4. 更新:\(\mathbf{u} \leftarrow \sum_i w^{(i)} \mathbf{u}^{(i)}\)

与 CEM 的比较

MPPI CEM
权重分配 指数 softmax(所有样本) 精英选择(只用 top-\(k\)
理论基础 Path integral / 信息论 交叉熵最小化
平滑性 好(连续权重) 差(离散选择)
温度参数 \(\lambda\)(控制探索/利用) 无(只有精英比例)
GPU 友好度 高(所有样本并行) 中(需要 sort/top-k)

为什么 TD-MPC2 选择 MPPI? 因为:(1) MPPI 的所有计算都是并行的(\(N\) 条 rollout 可 GPU batch);(2) MPPI 不需要模型可微(只需要 forward pass);(3) MPPI 的 soft 权重比 CEM 的 hard selection 对多模态代价景观更鲁棒。

MuJoCo MPC (MJPC, Howell et al. 2022) 的 Predictive Sampling 是 MPPI 的简化版——去掉了指数加权,直接选最好的轨迹。虽然简单,但在人形/四足动作合成上出乎意料地有竞争力。这证明了 sampling-based MPC 的实用价值——不需要复杂的梯度计算,纯"投骰子选最好的"就能做 real-time control。

9.5 Stochastic HJB 与 Diffusion Policies 预告 ⭐⭐⭐⭐

对 Ito SDE \(dx = f dt + \sigma dW\),HJB 多一个 Ito 二阶项:

\[ \beta V = \min_u\bigl\{\ell + \nabla V^\top f + \tfrac12 \mathrm{tr}(\sigma\sigma^\top \nabla^2 V)\bigr\}. \]

Diffusion policies(Chi et al. RSS 2023)把 action sequence 当作 score-based distribution 的样本——与 stochastic HJB 天然同构。详细展开留给深度学习与具身智能方向。

SAC → LMDP → Path Integral → MPPI → Diffusion 的统一线索

这五个看似不同的方法实际上是同一数学结构的不同离散化和近似:

  1. SAC:离散时间 + 参数化策略 + 熵正则化 Bellman
  2. LMDP (Todorov 2007):离散时间 + KL 正则化 → Bellman 方程线性化
  3. Path Integral:连续时间 + 特殊结构假设 → Feynman-Kac 解
  4. MPPI:Path Integral 的采样近似 + MPC receding horizon
  5. Diffusion Policies:学习 Boltzmann 分布的 score function → SDE 采样

共同的数学根源:entropy-regularized optimal control 的不同表现形式。温度 \(\tau \to 0\) 时所有方法都退化为 deterministic optimal control;\(\tau > 0\) 时策略变为 stochastic,程度由 \(\tau\) 控制。

这个统一视角是深度学习方向中 Diffusion 与 Generative Policies 的入口点。本专题提供了从 HJB 到 entropy-regularized HJB 的桥梁。


本章常见误解汇总

误解 正确理解
"LQR 太简单了,和深度 RL 没什么关系" LQR 是 RL 的 sandbox:策略梯度、Q-function、advantage、自然梯度在 LQR 上都有闭式解。Fazel 2018 在 LQR 上证明了 PG 的全局收敛(PL 条件),这为理解非线性问题提供了理论锚点。用 LQR 验证你的 RL 代码是否正确实现了数学公式,比直接在复杂环境上调参高效得多
"HJB 方程是 Bellman 方程的连续时间版本,两者等价" 数学上 HJB 是 Bellman 方程在 \(\Delta t \to 0\) 极限下的结果,但两者的求解难度天壤之别。Bellman 方程是代数方程(查表或线性系统),HJB 是偏微分方程(维数灾难更严重)。MPC 通过有限时域截断绕过了 HJB 的全局求解,而 RL 通过参数化逼近绕过了 Bellman 的查表。两条路殊途同归
"Model-based RL 比 model-free 严格更好,因为利用了模型信息" Model-based RL 的优势是数据效率(PILCO 可以在几十次交互后学会),但代价是模型误差会通过 simulation lemma 以 \((1-\gamma)^{-2}\) 倍放大到值函数误差。当模型不准时,model-based 可能比 model-free 更差。MBPO/Dreamer 通过短 rollout + 真实数据混合来控制模型误差的积累
"Domain Randomization 是让仿真更逼真" DR 的目标不是逼真,而是鲁棒。通过在训练时随机化物理参数(摩擦、质量、延迟),策略被迫学会应对参数变化。真实世界只是随机化覆盖的参数分布中的一个点。从分布鲁棒优化(DRO)视角看,DR 等价于优化 \(\min_\theta \max_{P \in \mathcal{P}} \mathbb{E}_P[-J(\theta)]\)
"Sim2Real gap 主要来自视觉差异" 对于足式/操作机器人,动力学 gap(接触模型、电机响应、柔性关节)远比视觉 gap 更致命。接触力的不连续性在仿真中被软化处理,但真实碰撞是刚性的。这就是为什么 Isaac Lab 的 sim2real 策略侧重动力学随机化而非视觉域适应

本章小结

知识点 核心结论 数学工具 工程应用
LQR 作为 RL sandbox 所有 RL 对象闭式可写 Riccati/Lyapunov 方程 算法验证基准
PL 条件 LQR 非凸但无局部极小 Fazel 2018 PL 不等式 PG 全局收敛保证
HJB = 连续 Bellman MPC 和 RL 的数学统一 PDE + 黏性解 算法设计指导
MBRL 演进 模型误差 compounding 是核心挑战 \(O(\varepsilon L_f^H)\) 选择 rollout 长度
特权学习 POMDP 分解为 MDP + 感知 Teacher-Student 蒸馏 足式 Sim2Real
RMA 在线快速适应(10 Hz) 隐式系统辨识 未知地形适应
域随机化 分布鲁棒优化 DRO / Wasserstein ball Sim2Real 鲁棒性
Residual RL 只学修正项 \(\pi = \pi_{\text{base}} + \Delta\pi\) 安全探索 + 加速
GPU 并行 \(N\) 环境降方差 \(1/N\) 大 batch PPO 分钟级训练
统一决策框架 RL = rollout + approximation Bertsekas 口号 方案选型

累积项目:本章新增模块

项目:手写 "LQR-RL 验证工具箱"

本章新增: 1. LQR-PG 验证器:用 NumPy 实现 Hewer 迭代 + vanilla PG + natural PG on 标量 LQR,绘制 Fazel 预测的收敛曲线 2. HJB 离散化验证:在连续 LQR 上对比 CARE 解析解和不同 \(\Delta t\) 下的离散 DARE 解,验证 \(\Delta t \to 0\) 的极限 3. MBRL compounding bias 可视化:构造一个 2D 非线性系统,训练 ensemble NN 模型,可视化不同 horizon 下预测误差的增长

前序模块(前置章节已完成): - 6.1:Bellman 算子可视化工具 - 6.2:策略梯度 variance reduction 对比 - 6.3:TD/LSTD 投影 Bellman 可视化

后续模块(预告): - 6.5:随机逼近 ODE 方法可视化 - 6.6:Offline RL conservative estimation


延伸阅读

必读(档位 3)

资源 类型 内容 难度
Recht 2019 "A Tour of RL from Continuous Control" 综述论文 LQR sandbox 视角全景 ⭐⭐
Bertsekas 2019 RL & Optimal Control Ch.1, 5, 6 教材 "RL = rollout + approximation" ⭐⭐
Tedrake Underactuated Robotics Ch.7, 9, 10, 21 在线讲义 HJB、LQR、iLQR、RL 工程视角 ⭐⭐
Rudin et al. 2022 "Learning to Walk in Minutes" 论文 Isaac Gym + PPO 范式 ⭐⭐
Kumar et al. 2021 "RMA: Rapid Motor Adaptation" 论文 在线适应架构 ⭐⭐
Hansen et al. 2024 TD-MPC2 论文 Latent MPC + TD SOTA ⭐⭐

推荐(档位 3-4)

资源 类型 内容 难度
Fazel et al. 2018 ICML 论文 LQR PG 全局收敛证明 ⭐⭐⭐
Hafner et al. 2025 DreamerV3 Nature 论文 World model 工程蓝图 ⭐⭐⭐
Hewing-Kabzan-Zeilinger 2020 ARC 综述 Learning-based MPC 分类 ⭐⭐⭐
Tan et al. RSS 2018 "Sim-to-Real" 论文 域随机化黄金范式 ⭐⭐⭐
Carius et al. 2020 MPC-Net 论文 Hamiltonian 蒸馏 ⭐⭐⭐

进阶(档位 4)

资源 类型 内容 难度
Dean et al. 2020 FoCM 论文 LQR 样本复杂度 ⭐⭐⭐⭐
Meyn 2022 Control Systems and RL 教材 从 Markov chain 到 actor-critic ⭐⭐⭐⭐
Theodorou et al. 2010 JMLR "PI²" 论文 Path integral control ⭐⭐⭐⭐
Brunton-Kutz 2022 Data-Driven Science 教材 Koopman + DMD ⭐⭐⭐⭐

🔧 故障排查手册

症状 可能原因 排查步骤 相关章节
PG 在 LQR 上不收敛 初始 \(K_0\) 不稳定化 1. 检查 \(A-BK_0\) 特征值是否在单位圆内 2. 用 scipy.linalg.solve_discrete_are 验证 §1
HJB 数值解振荡 用了经典解方法 1. 检查 CFL 条件 2. 改用 ENO/WENO 格式 3. 加 vanishing viscosity §2
MBRL 训练中 reward 先升后降 模型过拟合导致策略 exploit 1. 检查 ensemble disagreement 2. 缩短 rollout horizon 3. 加 model regularization §3
四足 RL 策略学会"站着不动" 惩罚项权重过大 1. 打印各奖励分项 2. 降低惩罚系数或用 reward 课程 3. 检查速度奖励是否初期可达 §4
Sim2Real 部署后摔倒 执行器延迟未建模 1. 测量真实延迟 2. 在仿真中注入匹配延迟 3. 增大延迟随机化范围 §5
Residual RL 训练不稳定 基线在某些状态输出极端值 1. 可视化 \(\pi_{\text{base}}(x)\) 分布 2. 加 clip 机制 3. 使用乘法 residual §6
Isaac Gym 训练比预期慢 CPU-GPU 数据传输瓶颈 1. 检查是否有 .numpy() 调用 2. 确保 reward 计算在 GPU 上 3. 用 torch.profiler 定位 §7

与后续专题的桥梁

向内衔接(本专题依赖): - 6.1 Bellman 算子 \(T^\pi, T^*\) 的压缩性 → §1.2 LQR 二次型不变性的证明 - 6.2 策略梯度定理 → §1.2 LQR PG 的闭式推导 - 6.3 投影 Bellman 方程 / LSTD → §1.3 LQR 上的 Q-learning

向外衔接: - 随机逼近与 ODE 方法:Fazel 2018 PL 条件的完整证明;连续时间 stochastic approximation - 样本复杂度与前沿理论:CBF 与 learning-based MPC 融合;conservative value estimation - 控制理论方向(最优控制/MPC):Riccati/SLQ/DDP 完整推导;MPC 稳定性 - 深度学习方向(Diffusion 与 Generative Policies):stochastic HJB 到 diffusion policies

并行建议:本专题 §2(HJB)可与控制理论方向的 HJB 方程与黏性解章节同步学习——两者一个从 RL 角度切入、一个从控制角度切入,对照读效果最好。本专题 §3-§4 可与接触力学方向联动,把 Dreamer / TD-MPC2 在 Isaac Lab 上跑一遍。


经典论文清单

基础时代 (1970s-2000s) - Hewer 1971 IEEE TAC 16(4):382 — 离散 ARE 的 Newton 迭代 - Crandall-Lions 1983 Trans. AMS 277(1):1 — HJ 方程的黏性解 - Sutton 1991 — Dyna 架构 - Bradtke-Ydstie-Barto 1994 — Q-learning for LQR - Doya 2000 Neural Computation 12(1):219 — 连续时间 RL

现代 MBRL (2007-2018) - Todorov 2007 NIPS — Linearly-solvable MDP - Theodorou-Buchli-Schaal 2010 JMLR 11:3137 — Path integral PI² - Deisenroth-Rasmussen 2011 ICML — PILCO - Williams-Theodorou 2016/2017 — MPPI - Chua-Calandra-McAllister-Levine 2018 NeurIPS — PETS - Fazel-Ge-Kakade-Mesbahi 2018 ICML — LQR PG 全局收敛 - Tan et al. 2018 RSS — Sim2Real 域随机化黄金范式

足式 RL 范式 (2019-2022) - Hwangbo et al. 2019 Science Robotics — 神经网络执行器建模 - Kumar et al. 2019 RSS — 真机在线 SAC 训练四足 - Lee et al. 2020 Science Robotics — 特权学习 + 课程 - Kumar et al. 2021 RSS — RMA 快速运动自适应 - Rudin et al. 2022 Science Robotics — Learning to Walk in Minutes

Learning-augmented MPC (2019-2024) - Johannink et al. 2019 ICRA — Residual RL - Carius-Farshidian-Hutter 2020 RA-L — MPC-Net - Dean-Mania-Matni-Recht-Tu 2020 FoCM — LQR 样本复杂度 - Bhardwaj-Choudhury-Boots 2021 ICLR — Blending MPC & VF - Hansen-Wang-Su 2022 ICML — TD-MPC - Kaufmann et al. 2023 Nature 620:982 — Swift 无人机竞速 - Hansen-Su-Wang 2024 ICLR — TD-MPC2 - Hafner et al. 2025 Nature 640:647 — DreamerV3


C++/Python 库对照

以下为 2026 年 5 月状态:

语言 本专题用途 活跃度
Crocoddyl C++/Python DDP/iLQR;LQR sanity check 活跃(INRIA)
OCS2 C++/Python Legged MPC;内置 MPC-Net 活跃(ETH)
MuJoCo MPC (MJPC) C++ 交互式 sampling-based MPC 活跃(DeepMind)
TD-MPC2 PyTorch Latent world model + MPC + TD 活跃
DreamerV3 JAX World model 工程基座 活跃
Isaac Lab Python/PyTorch GPU-parallel 足式 RL 非常活跃(NVIDIA)
stable-baselines3 PyTorch DDPG/TD3/SAC 参考实现 非常活跃
ACADOS C/Python NLP MPC 实时求解器 非常活跃
CasADi C++/Python 符号 autodiff + NLP 非常活跃

10. 自测题目

做完前 5 题基本达到档位 3;全部做完并能证明 7-8 题即可进入档位 4。

题 1(LQR 手推) 给定 \(A=1.2\), \(B=1\), \(Q=1\), \(R=1\)(标量 LQR),手算 DARE 的解 \(P^*\)、最优增益 \(K^*\)、最优值函数 \(V^*(x)\)。提示:DARE 化为 \(P = A^2 P/(1+P) + Q\) 的一元方程。

题 2(Hewer 迭代) 在题 1 的系统上,从 \(K_0 = 0\)(注意不是稳定化的!)出发跑 Hewer 迭代。观察会发生什么。然后从 \(K_0 = 1\) 出发再跑。说明为什么 Fazel 定理要求"稳定化初始增益"。

题 3(二次型不变性) 证明:若 \(V(x) = x^\top P x + c\) 满足 Bellman 方程 \(V(x) = \min_u\{x^\top Qx + u^\top Ru + \mathbb{E}_w V(Ax+Bu+w)\}\)\(w\sim\mathcal{N}(0,\Sigma_w)\),则 \(P\) 是 DARE 解且 \(c = \mathrm{tr}(P\Sigma_w)/(1-\gamma)\)

题 4(HJB 推导) 完整推导 §2 从离散 Bellman 到连续 HJB 的极限。明确写出哪些项是 \(O(\Delta t)\)、哪些是 \(o(\Delta t)\)

题 5(LQR 的 HJB 验证) 对连续 LQR 直接 ansatz \(V^*(x)=x^\top P x\),代入 HJB 验证得到 CARE。并推导 \(u^*=-R^{-1}B^\top P x\)

题 6(Fazel PL 证明骨架) 基于 §1.4 的三步骨架,手写 LQR 上 PL 不等式的完整论证。关键是写出 cost difference lemma \(J(K)-J(K^*) \leq \tfrac{\|\Sigma_{K^*}\|}{\sigma_{\min}(R)}\mathrm{tr}(E_K^\top(R+B^\top P_K B)E_K)\) 并用之。

题 7(MPC 作为值函数近似) 考虑 1D 系统 \(x_{t+1} = x_t + u_t\)\(\ell=x^2+u^2\)。证明:\(N\)-horizon MPC + 终端代价 \(V_\theta(x)=\alpha x^2\) 的闭环控制律可解析求出。取 \(N=1, 5, 20\),画出随 \(\alpha\) 变化的性能曲线,验证"\(\alpha\to P^*\)\(N\)-dependence 消失"。

题 8(model-based compounding bias) 设真实 \(f(x,u)=x+u\),学到 \(\hat f(x,u)=x+u+\varepsilon\)。证明 \(H\) 步预测误差线性累积为 \(H\varepsilon\)。若动力学 Lipschitz 常数 \(L>1\),误差如何累积?这为什么催生了 learning-augmented MPC?

题 9(Sim2Real 分析) 域随机化训练的策略性能可以写为 \(J^{\text{DR}}(\pi) = \mathbb{E}_{\xi\sim p}[J(\pi,\xi)]\)。证明:对任意 \(\xi^* \in \mathrm{supp}(p)\),有 \(J(\pi^{\text{DR}}, \xi^*) \geq J^{\text{DR}}(\pi^{\text{DR}}) - \max_\xi |J(\pi^{\text{DR}},\xi) - J^{\text{DR}}(\pi^{\text{DR}})|\)。讨论这个 bound 何时紧。

题 10(跨章综合) 结合控制理论方向的 DDP/iLQR 理论和本章的 TD-MPC2 架构,分析以下问题:如果在 TD-MPC2 的 latent space 中用 DDP(而非 MPPI)做规划,需要 latent dynamics \(d_\theta(z,a)\) 满足什么条件?这些条件在实践中是否满足?为什么 TD-MPC2 作者选择了 MPPI?


11. 常见陷阱速查表

陷阱 典型错误 正确做法
对非稳定 \(K_0\) 跑策略梯度 \(J(K_0)=\infty\),梯度不存在 必须从 stabilizing 集合初始化
LQR 的 PG 写错梯度公式 漏了 \(\Sigma_K\) 右乘 \(\nabla_K J = 2[(R+B^\top P_K B)K - B^\top P_K A]\Sigma_K\)
在 HJB 上用经典解做数值 遇到激波不收敛 用黏性解 framework
MBRL 长 rollout 误差爆炸 直接 unroll \(\hat f\) 到 H=100 short rollout (H≤15) + 学到的 \(V_\theta\)
把 MPC horizon 当 hyperparam 随意选 horizon 过短/过长 用 Bhardwaj 2021 的 \(\lambda\)-blend 原理
信任 certainty-equivalent 估计 忽视 dual effect,欠探索 加 exploration (Thompson sampling)
把 SAC 当"标准 RL" 忽视它是软 HJB 的 Boltzmann 策略 温度 \(\tau\) 是关键,零温退化为确定性
用连续时间 TD 不处理 \(\Delta t\) 依赖 不同 \(\Delta t\) 下超参不可比 \(\beta=1/\tau\) 而非 \(\gamma\)
Residual RL 基线失效 基线在工作点外完全错 训练时 curriculum:先基线能工作的区域
忽视 DDP/iLQR 的 box 约束 用 clamping,二阶收敛消失 Tassa 2014 box-DDP
过度信任 world model 的 pixel reconstruction Dreamer 在 state-based 任务未必更好 decoder-free (TD-MPC2) 常常更稳
把 Swift = "RL 战胜 MPC" 过度推广 忽视 Swift 仍用 residual 校正 Swift = RL + sim + 真实数据校正
四足 RL 学会"高频振动前进" 仿真器接触模型漏洞 加动作变化率惩罚 + 关节加速度惩罚
奖励缩放失衡 策略学会"站着不动" 打印各分项、用奖励系数课程
域随机化范围过大 策略过保守 基于物理合理性设定范围
忽视执行器延迟 Sim2Real 后机器人摔倒 测量真实延迟并在仿真中注入

12. 时间预算与节奏建议

以每周 10-15 小时有效学习时间估计:

  • 档位 3 核心(§1-§8):约 5-6 周
  • 第 1 周:§1 LQR 设定 + 二次型不变性 + Fazel 定理陈述(手算题 1-3)
  • 第 2 周:§2 HJB 推导 + Doya 2000 + CARE 验证(做题 4-5)
  • 第 3 周:§3 MBRL 演进(精读 PETS + Dreamer + TD-MPC2 论文)
  • 第 4 周:§4-5 足式 RL + Sim2Real(读 RMA + Lee 2020 论文)
  • 第 5 周:§6-7 Residual RL + GPU 并行(跑 Isaac Lab demo)
  • 第 6 周:§8 统一决策框架 + 综合题

  • 档位 4 进阶(§9 + 深入专题):额外 3-4 周

  • Koopman 方向:深入专题 + §9.1
  • Path integral 方向:§9.2 + MPPI 实现
  • 样本复杂度方向:§9.3 + Dean et al. 原文
  • Safe learning 方向:§6.2 CBF + Hewing 综述

工程实操时间预算(与理论并行):约 30-40 小时 - 手撸 LQR + Hewer 迭代(Python NumPy):4 小时 - 跑 stable-baselines3 TD3 on LQR + 对照 Fazel 预测:6 小时 - 跑 Crocoddyl iLQR on 2-link arm:4 小时 - 搭 MuJoCo MPC 交互 demo:3 小时 - 跑 TD-MPC2 on DMControl cartpole-swingup:6 小时 - 跑 Isaac Lab 四足训练 demo:8 小时 - 实现一个 residual RL demo:8 小时


13. 与控制理论方向的精确交叉引用

本专题与控制理论方向的最优控制/MPC 章节有约 30% 交集。以下给出精确映射,避免重复学习:

本专题内容 控制理论方向对应章节 本专题聚焦 控制方向聚焦
§1 LQR 的 RL 视角 LQR/Riccati 方程 PG/VI/Q-learning 在 LQR 上 DARE/CARE 推导与稳定性
§2 HJB 推导 HJB 与黏性解 从离散 Bellman 到连续极限 PDE 理论与数值方法
§2.3 PMP Pontryagin 极大值原理 与 HJB 的对偶关系 完整证明与边界条件
§3 MBRL DDP/iLQR Learning-based model + MPC 二阶轨迹优化算法
§6.2 CBF CLF/CBF 与 RL 探索的融合 形式化安全证明
§8 统一框架 动态规划与 Bellman 方程 Bertsekas rollout 视角 Bellman 算子理论

阅读建议:如果你同时学两个方向,建议按以下顺序交叉: 1. 先读本专题 §1-§2(获得 RL 视角) 2. 再读控制理论方向的 HJB 与 LQR 章节(获得控制视角) 3. 两边对照读(此时映射表中的等号会变得显而易见) 4. 再读本专题 §3-§8(纯 RL 内容,控制方向无直接对应)


附录 A:免费资源

  • Recht 2019 A Tour of RL:https://arxiv.org/abs/1806.09460
  • Tedrake Underactuated Robotics:https://underactuated.csail.mit.edu/
  • TD-MPC2 项目主页:https://www.tdmpc2.com/
  • DreamerV3 项目主页:https://danijar.com/project/dreamerv3/
  • MuJoCo MPC:https://github.com/google-deepmind/mujoco_mpc
  • Recht blog argmin.net:https://www.argmin.net/(LQR 系列 11 篇)
  • Bertsekas RLOC 样章:http://web.mit.edu/dimitrib/www/home.html

附录 A2:关键定理清单

定理 陈述要点 来源 档位
Bellman 方程二次型不变性(LQR) \(V^{\pi_K}\)\(Q^{\pi_K}\) 在 LQR 下恒为二次型 经典,Anderson-Moore 1990 3
Hewer 1971 DARE 迭代全局收敛 稳定化 \(K_0\) → 单调收敛 + 局部二次收敛 Hewer IEEE TAC 1971 3
Fazel 2018 全局收敛 (PL 条件) LQR 的 \(J(K)\) 非凸但 PL,三算法线性收敛 ICML 2018 3
HJB 方程黏性解唯一性 适当 Hamiltonian 条件下黏性解唯一 Crandall-Lions 1983 3 陈述
Pontryagin 极大值原理 \(\dot x=\partial_p\mathcal{H}\), \(\dot p=-\partial_x\mathcal{H}\), \(u^*=\arg\min\mathcal{H}\) Pontryagin 1956 3 陈述
连续时间 TD 收敛(Doya) 在 Lipschitz \(f\)\(\delta\to 0\) Neural Comp. 2000 3 陈述
MBPO 性能下界(Janner 2019) Model rollout 长度与误差的 trade-off NeurIPS 2019 3
Dean-Mania-Matni-Recht-Tu LQR 样本复杂度 Coarse-ID + SLS → end-to-end \(O(\varepsilon)\) FoCM 2020 4
Certainty Equivalence (Mania-Tu-Recht) 素朴 CE 控制器达 \(O(\varepsilon^2)\) NeurIPS 2019 4
Linearly-solvable MDP (Todorov) KL-reg 的 Bellman 在 \(z=\exp(-V)\) 下线性化 NIPS 2006 4
Path integral control (Theodorou) HJB 化为线性 PDE → Feynman-Kac 解 JMLR 2010 4
MPQ(λ) 误差分界 (Bhardwaj) MPC Q 误差 ≤ 模型偏差 + 值函数偏差 ICLR 2021 3-4
MPC-Net 最优性引理 最小 Hamiltonian gap 上界策略距最优的距离 RA-L 2020 4

附录 B:视频资源

  • Tedrake MIT 6.832:YouTube "underactuated robotics tedrake",HJB/LQR 在 Lec 7-9
  • Levine CS285:YouTube "RAIL Berkeley",MBRL 在 Lec 11-14
  • Manchester CMU 16-745:YouTube "zachary manchester optimal control",DDP/iLQR 专讲
  • Bertsekas ASU 讲座:YouTube "Dimitri Bertsekas","Rollout and Policy Iteration" 推荐

附录 C:中文资源

  • 周博磊《强化学习纲要》:B 站 / GitHub,model-based RL 章节有中文解读
  • 张志华 MBRL 课件:北大/上交公开讲义,model-based 章节质量很高
  • 知乎专栏"RL + Control 融合":多位 ETH/MIT 博士作者,对 MPC-Net/TD-MPC 有深入解读
  • B 站 Tedrake 翻译:关键词"欠驱动机器人 Tedrake",前 10 章已翻译
  • "RLChina" / "深度强化学习实验室":微信公众号,跟踪前沿论文
  • 清华交叉信息研究院 RL 讲义:连续控制/MBRL 章节有高质量中文材料
  • NVIDIA Isaac Lab 中文社区:GPU-parallel RL 入门教程
  • Lilian Weng 博客中文翻译:model-based RL + world model 系列是 MBRL 入门首选
  • Ben Recht argmin.net 中文翻译:"An Outsider's Tour of RL" 系列有社区翻译版
  • 机器之心:对 Dreamer、TD-MPC2 等重要论文有高质量中文解析文章
  • "足式机器人学习控制" 知乎专栏:覆盖 Isaac Lab 实践和 Sim2Real 经验分享

附录 D:Python 代码示例(LQR Sandbox 验证)

以下代码用于验证 §1 的核心理论结论。这是累积项目"LQR-RL 验证工具箱"的第一模块。

import numpy as np
from scipy.linalg import solve_discrete_are

# === 标量 LQR:验证 Hewer 迭代 === 
# 系统参数
A, B, Q, R = 1.2, 1.0, 1.0, 1.0

# 解析求解 DARE(标量情况化为一元二次方程)
# P = A^2*P/(1+P) + Q  →  P(1+P) = A^2*P + Q(1+P)  →  P^2 + P - 1.44P - Q - QP = 0
# P^2 + P(1 - 1.44 - 1) - 1 = 0  →  P^2 - 1.44P - 1 = 0
# 用求根公式
discriminant = 1.44**2 + 4
P_star = (1.44 + np.sqrt(discriminant)) / 2  # 取正根
K_star = A * P_star / (R + P_star)  # 最优增益

print(f"DARE 解: P* = {P_star:.4f}")
print(f"最优增益: K* = {K_star:.4f}")
print(f"闭环极点: A - B*K* = {A - B*K_star:.4f} (应在单位圆内)")
print(f"验证 DARE: 左边 = {P_star:.4f}, 右边 = {A**2*P_star/(R+P_star) + Q:.4f}")

# === Hewer 迭代(策略迭代)===
def hewer_iteration(A, B, Q, R, K0, n_iter=20):
    """Hewer 迭代 = LQR 上的策略迭代"""
    K = K0
    P_history = []
    for i in range(n_iter):
        # Policy Evaluation: 解 Lyapunov 方程 P = Q + K^2*R + (A-BK)^2 * P
        # 对标量系统: P = (Q + K^2*R) / (1 - (A-BK)^2)
        cl_pole = A - B*K  # 闭环极点
        if abs(cl_pole) >= 1:
            print(f"  迭代 {i}: K={K:.4f}, 闭环不稳定! |A-BK| = {abs(cl_pole):.4f}")
            return None, P_history
        P = (Q + K**2 * R) / (1 - cl_pole**2)
        P_history.append(P)
        # Policy Improvement
        K_new = A * P / (R + P)  # K = (R + B^T P B)^{-1} B^T P A
        print(f"  迭代 {i}: K={K:.4f}, P={P:.4f}, |K-K*|={abs(K-K_star):.6f}")
        K = K_new
    return K, P_history

print("\n--- Hewer 从 K0=1.0(稳定化的)出发 ---")
K_final, P_hist = hewer_iteration(A, B, Q, R, K0=1.0, n_iter=8)

print("\n--- Hewer 从 K0=0.0(不稳定化的!)出发 ---")
# A - B*K0 = 1.2 > 1, 闭环不稳定
K_final2, P_hist2 = hewer_iteration(A, B, Q, R, K0=0.0, n_iter=3)

# === 策略梯度验证 ===
def policy_gradient_lqr(A, B, Q, R, K, sigma_w=0.1):
    """计算 LQR 上的解析策略梯度"""
    cl_pole = A - B*K
    if abs(cl_pole) >= 1:
        return None, None
    P_K = (Q + K**2 * R) / (1 - cl_pole**2)
    # 状态协方差: Sigma_K = sigma_w^2 / (1 - cl_pole^2) (标量)
    Sigma_K = sigma_w**2 / (1 - cl_pole**2)
    # 梯度: nabla_K J = 2 * [(R + B^T P_K B)*K - B^T P_K A] * Sigma_K
    grad = 2 * ((R + P_K) * K - P_K * A) * Sigma_K
    J_K = P_K * sigma_w**2 + P_K * Sigma_K  # tr(P_K * Sigma_0)
    return grad, J_K

print("\n--- 策略梯度验证 ---")
for K_test in [0.5, 0.8, K_star, 1.5]:
    grad, J = policy_gradient_lqr(A, B, Q, R, K_test)
    if grad is not None:
        print(f"  K={K_test:.4f}: grad={grad:.6f}, J={J:.4f}")
print(f"  在 K* 处梯度应为零: grad(K*)={policy_gradient_lqr(A, B, Q, R, K_star)[0]:.2e}")

运行结果解读: 1. Hewer 从稳定化初始点出发,约 5-6 次迭代即收敛到 \(K^*\)(超线性收敛) 2. Hewer 从非稳定化初始点出发,第一步就失败(Lyapunov 方程无有限解) 3. 策略梯度在 \(K^*\) 处为零,验证了 PL 条件的"梯度为零 = 全局最优"

这个简单的标量例子包含了 Fazel 2018 全部核心思想的缩影。建议读者在此基础上扩展到 2D 和 3D 系统,观察非凸性如何随维度增长而变得更明显。

附录 E:机器人应用映射

E.1 Legged Robots(四足/人形)

经典 MPC 路线:LQR/iLQR 作为 whole-body 控制的小范围稳定器,配合 WBC 和 MPC。OCS2 在 ANYmal 上的 SLQ-MPC 是业界标杆,循环频率 100-400 Hz、horizon 1-2 s;Crocoddyl 在 Talos 人形上完成动态行走。

学习增强路线:Rudin et al. 2022 "Learning to Walk in Minutes" 用 Isaac Gym + PPO。Carius et al. MPC-Net 走"MPC expert 蒸馏到 NN"路线。两条路线在 ETH 内部并行发展。

当前最佳实践: - 平坦/结构化地形:MPC(OCS2/Crocoddyl)足够,无需 RL - 崎岖未知地形:RL 策略(特权学习 + 域随机化) - 高动态任务(跑跳/parkour):RL + 参考动作 - 安全关键场景:MPC 主导 + RL 残差辅助

E.2 Manipulation(机械臂/灵巧手)

Residual RL 的主战场:Johannink et al. 2019 在 Sawyer 机械臂 block insertion 任务上用阻抗控制作 base、RL 学 residual,训练时间缩短一个数量级。NVIDIA Dexterous Hand (Handa et al. 2023) 用 PPO 训练 shadow hand 做 cube rotation。

TD-MPC2 在 manipulation:在 Meta-World MT-50 上以一个 ~50M 参数模型达到 SOTA;在 real-world xArm 上也有部署报告。

E.3 Drone / Autonomous Flight

Kaufmann et al. 2023 Nature "Swift":RL 在高速连续控制上战胜 MPC 的标志性案例。UZH + Intel Labs 用 PPO + sim-to-real 残差校正,让自主无人机以 100+ km/h 战胜人类世界冠军。核心:(1) PPO in randomized sim;(2) 真实数据学 sim-to-real residual;(3) 感知模块压缩到低维 state。

结论:纯 model-free RL 在低维 state、高频控制、少约束下已完全可行。但混合方案(MPC for guarantees、RL for performance)仍是主流工业方向。

E.4 连续控制 Benchmark

Benchmark 类型 主要用户 特点
MuJoCo Gym 标准 RL 几乎所有 RL 论文 HalfCheetah/Humanoid/Ant
DMControl Suite MBRL TD-MPC2/Dreamer Tassa et al. 2018
Isaac Lab 足式 GPU-parallel RL NVIDIA 2024+
Meta-World Manipulation Multi-task RL 50 个机械臂任务
Humanoid-Bench 人形 新一代 31 个人形任务
Robosuite Manipulation Multi-task Zhu et al. 2020
NVIDIA Orbit 通用 Isaac Lab 继承 2024+

E.5 2026 年前沿方向速览

方向 代表工作 核心思想 成熟度
人形全身 RL Radosavovic et al. 2024 PPO + 大规模并行训练人形 研究中
基础模型 + RL RT-2, Octo 预训练视觉-语言模型做策略 早期
World model scaling Genie, SORA for robotics 大规模世界模型预训练 概念验证
Safe RL 落地 CBF + RL in industry 形式化安全保证的工业部署 逐步成熟
Multi-agent RL for robotics 多足协作/多臂协调 分布式策略 + 通信 研究中
RL + 力控 接触丰富操作 力感知 + 自适应阻抗 逐步成熟

本专题的核心洞察可浓缩为三句话

第一,LQR 是 RL 的显微镜。 它是唯一一个所有 RL 概念都能解析验证的非平凡特例。读者若对 RL 的任何新算法心存疑虑,第一件事是问:这玩意在 LQR 上做什么?能退化到 Hewer 迭代吗?

第二,HJB 是连续时间 Bellman,MPC 是有限 horizon 的近似 Bellman 求解器,MBRL 是 learning-based MPC。 这不是类比而是数学等号。一旦接受这个等号,控制人读 Dreamer 不再有代沟——world model 就是学到的模型,latent imagination 就是 rollout。

第三,2026 年 RL-控制融合的工程最优解是"短视 MPC + 学到的 terminal value + residual RL"。TD-MPC2 提供 Pattern B 的当代最强实现,Swift 和 ANYmal 提供 Pattern D 的工业案例。纯 model-free RL 在低维+高频+少约束场景可击败 MPC,但在高 DoF 强约束下仍是"MPC 骨架 + RL 补丁"占优。

给博士前准备的建议

这些洞察意味着**强化学习数学不是独立学习的——它必须与最优控制/MPC 方向、接触力学方向交织学习**。本专题提供的 20+ 个精确映射就是交织的桥梁。读完后你应能在任何 RL 论文读到"V(s)"时立刻翻译为"值函数/cost-to-go",读到"policy gradient"时立刻想到"Hewer 迭代或其近似",读到"world model"时立刻想到"system identification + 传播不确定性"。

这种翻译能力,就是 Bertsekas/Meyn/Recht 三人毕生倡导的**控制人视角**的全部价值。掌握了它,你在读 RL 论文时不再是"学一个新领域",而是"用已有框架理解新变体"——认知成本降低一个数量级。

展望

本章为后续主题奠定了关键基础: - **随机逼近与 ODE 方法**将给 Fazel 的 PL 条件提供完整证明工具(Borkar 两时间尺度理论) - **样本复杂度与前沿理论**将把 CBF 与 conservative estimation 融合为 Offline RL / Safe RL 框架 - **接触力学方向**将把 RL 与混合系统 MPC 的数学基础打通 - **深度学习与具身智能方向**将把 §9.5 的 stochastic HJB 完整展开为一套可实现的生成式控制框架

本章是这一切的**连接器**——它把"控制"和"学习"两个社区的语言统一在 Bellman/HJB 框架下,使得后续任何方向的深入都有了共同的数学锚点。

最后一个实践建议:如果对 RL 或控制的任何新算法心存疑虑,请遵循"三问检验法": 1. 这个算法在 LQR 上退化为什么?(能退化到 Hewer 迭代吗?) 2. 它的样本复杂度与 Fazel 2018 一致吗?(比 certainty-equivalent 好吗?) 3. 它在连续时间极限下对应 HJB 的哪个近似?(是用了什么额外结构?)

不能回答这三个问题的 RL 论文,多半经不起推敲。能回答这三个问题的控制论文,多半能找到对应的 RL 变体。这种双向翻译能力,就是本章要传递的核心技能。

受篇幅限制,distributional MBRL、world-model scaling laws、sim-to-real 鲁棒性的信息论下界、legged humanoid 的 RL-MPC 融合前沿等方向只能点到即止。读者掌握本章后,建议先进入下一章"随机逼近与 ODE 方法",为前四章的收敛性论断补上严格证明工具,再进入接触力学方向把 RL 与接触 MPC 的交叉落地,最后进入深度学习与具身智能数学方向把 §9.5 的伏笔完整展开。