连续控制与 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 题 → 先回前置章节复习)
- 写出 Bellman 最优方程的算子形式 \(T^* V = V^*\),并说明 \(T^*\) 为何是压缩映射。(回顾 6.1)
- 策略梯度定理 \(\nabla_\theta J(\theta) = \mathbb{E}[\nabla_\theta \log\pi_\theta(a|s) \cdot Q^{\pi}(s,a)]\) 中,\(Q^{\pi}\) 的含义是什么?为什么需要 baseline 减方差?(回顾 6.2)
- 离散代数 Riccati 方程(DARE)的解 \(P^*\) 代表什么物理量?它与 LQR 最优代价的关系是什么?(回顾控制理论方向 LQR/Riccati 章节)
- HJB 方程 \(\beta V^*(x) = \min_u\{\ell(x,u) + \nabla V^{*\top} f(x,u)\}\) 中各项的物理意义是什么?(回顾控制理论方向 HJB 方程章节)
- 什么是 Polyak-Lojasiewicz (PL) 条件?它为何能保证非凸优化的全局收敛?
本章目标¶
学完本章后,你将能够:
- **在 LQR 上闭式写出**策略梯度、Q-function、PL 条件,并用 NumPy 手算验证;
- 从离散 Bellman 推导到连续 HJB,理解 MPC 和 RL 的数学统一性;
- 对比 PILCO/PETS/Dreamer/TD-MPC2 的数学结构与工程取舍;
- **理解足式机器人 RL 框架**中的端到端/课程/特权学习/RMA 的数学基础;
- 掌握 Sim2Real 的鲁棒性理论(域随机化的分布鲁棒优化视角);
- 建立"何时用 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\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 能做什么"。
折扣因子的位置:\(\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)\) 均为状态/动作的**二次型**:
其中 \(P_K\) 是离散 Lyapunov 方程的解:
且 Q-function 矩阵块为
证明思路: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\)。梯度可写为:
其中 \(\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\),有
这是 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,且要付出样本代价。
练习¶
- (手推) 给定标量 LQR:\(A=1.2\), \(B=1\), \(Q=1\), \(R=1\)。求 DARE 解 \(P^*\)、最优增益 \(K^*\)、最优值函数 \(V^*(x)\)。提示:DARE 化为 \(P = A^2P/(1+P) + Q\)。
- (编程) 在题 1 基础上,用 Python 实现 Hewer 迭代,从 \(K_0=0.5\)(稳定化的)和 \(K_0=0\)(不稳定化的)分别出发,观察差异。绘制 \(J(K_n)\) 随迭代的收敛曲线。
- (理论) 证明:若 \(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)\),最优值函数
离散化步骤:取小步长 \(\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 方程:
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\):
这就是 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 极大值原理章节):最优轨迹满足:
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\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)**:
推导:\(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 求解。
练习¶
- (推导) 完整推导从离散 Bellman 到连续 HJB 的极限。明确写出哪些项是 \(O(\Delta t)\)、哪些是 \(o(\Delta t)\)。
- (验证) 对连续 LQR 直接 ansatz \(V^*(x)=x^\top P x\),代入 HJB 验证得到 CARE。推导 \(u^*=-R^{-1}B^\top P x\)。
- (思考) 为什么 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 的数学结构:
跨领域类比:RSSM 之于 Dreamer,就像 Kalman 滤波之于 LQG 控制——两者都是"模型预测 + 观测修正"的递推结构。区别在于:Kalman 用线性高斯假设得到解析解,RSSM 用神经网络参数化得到通用表达能力。
DreamerV3 的关键工程创新(理解这些对复现和调参至关重要):
-
Symlog 预测:对观测和奖励使用 \(\text{symlog}(x) = \text{sign}(x)\log(|x|+1)\) 变换后再预测。这压缩了大值的动态范围,使得不同量级的任务可以用同一组超参数。
-
Two-hot 奖励编码:不直接预测奖励数值,而是把奖励离散化为 \(B=255\) 个 bin,预测 categorical 分布。这比回归更稳定(避免了 reward 的异常值影响梯度)。
-
Percentile return normalization:用 running 5th/95th percentile 归一化 return,而非 mean/std。这对稀疏奖励任务(大部分时间 return=0)特别重要——mean/std 归一化会让稀疏奖励被压缩到几乎不可见。
-
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。
核心公式:
其中 \(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 的策略性能下界为:
工程含义: - \(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\) 步预测误差累积为:
这就是"越长 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)。
练习¶
- (证明) 设真实 \(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\)),误差如何累积?
- (编程) 用
stable_baselines3的 SAC 和 TD-MPC2 在gymnasium的Pendulum-v1上对比样本效率曲线。 - (思考) 为什么 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 控制器转换为力矩:
其中 \(a_t\) 是策略网络输出(关节目标位置),\(\theta\) 是测量角度。
为什么用位置控制而非直接力矩控制? 位置控制自带"弹簧"特性(\(K_p\) 提供回复力),即使策略输出为零,机器人也不会直接瘫软倒地——这对训练初期的稳定性至关重要。直接力矩控制虽然更灵活,但训练初期容易产生大幅度关节运动导致硬件损坏。
反事实推理:如果不用历史观测只用单帧数据会怎样?单帧本体感知存在歧义——电机力矩大但无速度可能意味着被卡住、负载大、或地面摩擦大。历史序列提供了**隐式系统辨识**能力:通过观察"推了一下之后的响应"来推断环境参数。这就是为什么几乎所有足式 RL 工作都使用观测历史(通过 LSTM、TCN 或简单 stacking 实现)。
4.2 课程学习的数学基础 ⭐⭐¶
动机:直接在最难的地形上训练策略,会因为持续失败而无法获得有效梯度信号——类似于让一年级小学生直接做微积分题,只会得到零分。课程学习模仿学校教学:从简单到困难,逐步升级挑战。
形式化定义:设地形由参数 \(c_T\) 生成,策略在地形 \(c_T\) 上的"可通行性"为:
其中 \(v_{\mathrm{proj}}\) 是基座速度在目标方向上的投影,\(v_{\min}\) 是最低通过阈值(通常 0.2 m/s)。
地形期望度(课程选择准则):
直觉:太简单的地形(\(\mathrm{Tr} > 0.9\))策略已经掌握,学不到新东西;太难的地形(\(\mathrm{Tr} < 0.5\))总是失败,梯度信号稀疏。中间难度的地形提供最高的学习效率。
跨领域类比:课程学习之于 RL,就像退火之于优化算法——两者都是从"容易探索"的区域开始,逐步收窄到"困难但有解"的区域。区别在于:退火是降低"温度"(探索随机性),课程是提高"难度"(环境复杂度)。
工程实现:ETH RSL 的实现(Lee et al. 2020 Science Robotics)使用粒子滤波在地形参数空间维持一条"刚好能学"的难度分布。地形类型包括:
- Hills:基于 Perlin 噪声的起伏地形,参数为 (roughness, frequency, amplitude)
- Steps:随机方块台阶,参数为 (step_width, step_height)
- Stairs:规则楼梯,参数为 (stair_width, stair_height)
奖励系数课程(另一种课程策略,来自 Hwangbo et al. 2019):
训练初期 \(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)\)(复用教师的策略解码器)
训练目标:学生模仿教师的**环境理解**(隐向量)和/或**动作输出**:
跨领域类比:特权学习与 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\) 驱动) |
自适应模块:
训练损失:\(\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_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) 确保正向奖励在初期可达。
练习¶
- (设计) 为一个人形机器人站立任务设计奖励函数。要求:(a) 至少 6 个奖励项;(b) 每项说明目的和预期数量级;(c) 分析如果去掉某一项会出现什么退化行为。
- (理论) 证明:对于特权学习架构,如果教师的编码器 \(\mu\) 是满射的(surjective),则学生编码器 \(\phi\) 的最优解使得 \(l_t = \bar{l}_t\) 几乎处处成立。讨论这个条件何时不满足。
- (跨章综合) 结合 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^*\)(未知但固定)。域随机化的训练目标是:
其中 \(p(\xi)\) 是人工设定的随机化分布。如果 \(p(\xi)\) 的支撑集 \(\mathrm{supp}(p)\) 包含 \(\xi^*\),则最优策略 \(\pi^*\) 在 \(\xi^*\) 上也有性能保证。
分布鲁棒优化(DRO)视角:更严格地,DR 可以理解为一种 DRO:
其中 \(\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) 实现:
这优化了"最差 \(\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 使用的模型):
关键物理效应:随着奔跑速度 \(\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\) 请求观测时,线性插值得到延迟后的观测:
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"路线永远无法完美——总有无法建模的残差。
练习¶
- (分析) 考虑一个简单的弹簧-质量系统 \(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?
- (设计) 为一个四足机器人设计域随机化方案。列出至少 10 个随机化参数,为每个参数给出物理合理的范围和分布类型(均匀/高斯/对数正态),并解释选择原因。
- (思考) 域随机化和鲁棒控制(\(H_\infty\) 控制)在数学上有什么联系和区别?提示:两者都在"最坏情况"下优化,但对"最坏情况"的定义不同。
6. Residual RL 与安全约束 ⭐⭐⭐¶
6.1 基于 MPC 的残差策略¶
动机:纯 RL 需要从零学习所有动力学知识——这在样本效率和安全性上都不理想。如果已有一个"不完美但基本能工作"的控制器(PD、MPC),能否让 RL 只学"修正项"?
核心思想(Johannink et al. ICRA 2019 / Silver-Bagnell-Kolter 2018):
其中 \(\pi_{\text{base}}\) 是手写/经典控制器(PD、MPC、阻抗控制),\(\Delta\pi_\theta\) 用 RL 学习。
为什么 residual 比从零学更好?
- 样本效率:\(\Delta\pi_\theta\) 只需学习小的修正量(\(\|\Delta\pi\| \ll \|\pi_{\text{base}}\|\)),搜索空间小得多。
- 安全性:即使 \(\Delta\pi_\theta\) 还没学好(训练初期输出接近零),\(\pi_{\text{base}}\) 仍能提供基本功能——失败不会是灾难性的。
- 可解释性:可以分析 \(\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 的融合:
直觉: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^*\) 所需的覆盖数为:
相比于直接用 \(\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 变体是**参考轨迹 + 残差**:
其中 \(\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\) 正则项,鼓励小残差。只在基线确实不够好的地方才输出非零修正。
练习¶
- (设计) 为一个 PD 控制的四足机器人设计 Residual RL 方案。定义:(a) 基线控制器的具体形式;(b) 残差网络的输入输出;(c) 奖励函数中如何鼓励小残差。
- (理论) 证明:如果 \(\pi_{\text{base}}\) 使系统在 \(\xi = \xi_0\) 时最优,则在 \(\xi = \xi_0 + \delta\xi\)(小扰动)时最优残差 \(\Delta\pi^*\) 满足 \(\|\Delta\pi^*\| = O(\|\delta\xi\|)\)。
- (跨章综合) 结合控制理论方向的 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\):
结论:增加 \(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):
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)
质变不仅是"更快":
-
研究方法论改变:从"精心设计一次实验,等 12 小时看结果"到"30 分钟内跑完 50 组消融实验"。这使得奖励函数设计、域随机化范围选择等原本靠"经验"的超参数调优变成了可系统搜索的过程。
-
算法设计偏好改变:GPU 并行让 on-policy 方法(PPO)反超 off-policy 方法(SAC)成为足式 RL 标配。原因:PPO 的数据不能重用,所以它极度依赖"快速采样"——GPU 并行正好满足这个需求。而 SAC 的 replay buffer 需要 CPU 内存管理,在 GPU pipeline 中反而是瓶颈。
-
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:
- 环境配置:定义机器人 URDF/USD、地形生成参数、域随机化范围、奖励函数
- 策略网络:通常是 2-3 层 MLP(256 或 512 hidden),有时加 LSTM/GRU
- 训练:PPO + GAE,4096 并行环境,24 步 rollout,5-10 分钟收敛
- 部署:导出 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。
练习¶
- (计算) 如果单个 GPU 能并行 4096 个环境,每个环境步进时间 0.5ms,PPO 需要 \(10^7\) 个样本才能收敛,计算 wall-clock 训练时间(不考虑梯度计算开销)。
- (设计) 比较在 \(N=256\) 和 \(N=4096\) 并行度下,相同 wall-clock time 内 PPO 的学习曲线差异。解释为什么大 \(N\) 不仅更快,通常还能达到更好的最终性能。
- (工程) 列出将 Isaac Lab 训练的四足策略部署到 Unitree Go2 真机时需要解决的 5 个工程问题,并为每个问题给出解决方案。
8. RL + 控制的统一决策框架 ⭐⭐¶
8.1 Bertsekas 的 Rollout 统一视角¶
核心公式(Bertsekas 2019 RL & Optimal Control):
这一行统一了一切: - \(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 算法对偶映射表(工程师速查)¶
时间尺度对偶:
完整对偶表:
| 离散 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 修正。
练习¶
- (综合设计) 为一个 12-DoF 四足机器人在非结构化地形上的运动控制,设计完整的"MPC + RL"混合方案。说明:(a) MPC 负责什么(约束、接触序列);(b) RL 负责什么(地形适应、未建模动力学);(c) 两者如何交互(频率、接口)。
- (跨章综合题) 结合控制理论方向的 DDP/iLQR 理论和本章的 MBRL,分析:为什么 TD-MPC2 选择 MPPI(零阶方法)而非 DDP(二阶方法)做规划?提示:考虑 latent dynamics 的可微性、多模态代价景观、和 GPU 并行性。
- (思考) 如果 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 矩阵为:
Natural Gradient 更新:
注意:右乘 \(\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\) 闭式给出:
这是**学到的 \(V\) 直接给出解析策略**的典型例子。与 DDPG 的关系:DDPG 的 critic 就是这里的 \(V\),actor 就是 \(u^*(x)\) 的函数逼近版。区别在于:Doya 的公式利用了控制仿射结构得到解析策略,DDPG 没有这个假设所以需要另外训练一个 actor 网络。
连续时间 eligibility trace:Doya 定义了指数衰减的 eligibility trace:
对应离散时间 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 作为损失:
其中 \(\lambda = \nabla V^*(x)\) 是 MPC 返回的协态(value gradient)。
为什么 Hamiltonian 损失优于行为克隆?
- 编码了最优性条件:最优策略满足 \(\pi^* = \arg\min_u \mathcal{H}(x, \lambda, u)\)。最小化 \(\mathcal{H}\) 直接逼近这个条件,而不是逼近 \(u^*\) 的数值。
- 对 MPC 数值误差鲁棒:MPC 求解器可能只给出近似最优的 \(u^*\),但 \(\lambda\) 通常更精确(因为它是 QP 的对偶变量)。
- 隐式编码约束:当 \(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 都能被域随机化覆盖。存在三类根本限制:
-
结构性差异:仿真器的接触求解算法与真实物理有本质不同(如 PhysX 的 PGS/Newton 求解器 vs 真实接触的连续力学)。无论怎么随机化参数,都无法覆盖这类差异。
-
分布外事件:如果真实环境中出现了随机化范围外的参数(如意外踩入冰面,摩擦系数 < 0.1),策略可能完全失效。
-
过保守问题:随机化范围越大,策略越保守。在极端情况下,策略会退化为"最安全但最慢"的行为。
数学刻画:设 \(\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):
- Observation normalization:用 running mean/std 归一化所有输入,防止不同传感器量纲差异导致梯度失衡
- Value function clipping:与策略 clip 类似,防止 value estimate 跳变
- Learning rate schedule:从 \(3\times10^{-4}\) 线性衰减到 \(10^{-5}\)
- Entropy bonus decay:初期 0.01 促进探索,后期降到 0.001 促进收敛
- Symmetric augmentation:对称步态的左右镜像数据增强
I. Isaac Lab 框架的数学模型 ⭐⭐¶
PhysX GPU 物理引擎的核心假设:
- 刚体假设:所有 link 为刚体(无柔性变形)
- 接触模型:基于 penalty 方法的软接触(允许微小穿透换取计算稳定性)
- 积分方法:隐式 Euler(稳定但引入数值阻尼)
- 约束求解:TGS (Truncated Gauss-Seidel) 迭代
GPU 并行的数学结构:
所有 \(N\) 个环境的状态组成一个大 tensor:\(\mathbf{X} \in \mathbb{R}^{N \times n_s}\)。PhysX GPU pipeline 在一次 kernel launch 中同时步进所有环境:
其中 \(\boldsymbol{\xi} \in \mathbb{R}^{N \times n_\xi}\) 是每个环境的随机化参数。
Actuator Net 在 Isaac Lab 中的实现:
Isaac Lab 提供了 ActuatorNetMLP 和 ActuatorNetLSTM 两种预置执行器模型。配置方式:
# 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**:
闭式最优分布 \(\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 被广泛使用。
核心算法:
- 对当前轨迹 \(\mathbf{u} = (u_0, \dots, u_{H-1})\) 添加 \(N\) 组高斯扰动:\(\mathbf{u}^{(i)} = \mathbf{u} + \epsilon^{(i)}\),\(\epsilon^{(i)} \sim \mathcal{N}(0, \Sigma)\)
- 对每组扰动做 rollout,计算代价 \(S^{(i)} = \sum_{t=0}^{H-1} \ell(x_t^{(i)}, u_t^{(i)})\)
- 计算指数加权:\(w^{(i)} = \frac{\exp(-S^{(i)}/\lambda)}{\sum_j \exp(-S^{(j)}/\lambda)}\)
- 更新:\(\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 二阶项:
Diffusion policies(Chi et al. RSS 2023)把 action sequence 当作 score-based distribution 的样本——与 stochastic HJB 天然同构。详细展开留给深度学习与具身智能方向。
SAC → LMDP → Path Integral → MPPI → Diffusion 的统一线索:
这五个看似不同的方法实际上是同一数学结构的不同离散化和近似:
- SAC:离散时间 + 参数化策略 + 熵正则化 Bellman
- LMDP (Todorov 2007):离散时间 + KL 正则化 → Bellman 方程线性化
- Path Integral:连续时间 + 特殊结构假设 → Feynman-Kac 解
- MPPI:Path Integral 的采样近似 + MPC receding horizon
- 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 的伏笔完整展开。