如果试错很贵,能不能先学一个环境模型,在模型里试动作?可以。但如果模型把某条危险路线误判成捷径,规划器(planner)反而可能更愿意选它。预测误差一旦影响选择,平均预测得准就不够了。
先分清 3 个对象
动力学模型(dynamics model)预测执行动作后会发生什么;规划器搜索一串动作。
策略(policy)则直接根据状态选择动作。可以只用模型和规划器,不必另训策略。用已知物理方程规划,也不等于从交互中学会了一个模型或策略。
一个简单模型拟合状态变化,而不是整个下一状态:
$$ \hat s_{t+1}=s_t+f_\psi(s_t,a_t),\qquad L_{\rm model}=\mathbb E_{\mathcal D}\|f_\psi(s,a)-(s'-s)\|^2. $$
这是方便的建模选择,不是定理。随机环境要考虑预测分布;像素观测(observation)还可能需要 latent state,而不是对所有像素均等做 MSE。预测下一帧和预测潜在状态各丢掉什么,见学什么样的模型;完全在潜在状态里想象和学习的做法,见 Dreamer。
MPC:规划一串,只执行第一步
模型预测控制(MPC)每次从当前真实状态出发,搜索长度 $H$ 的动作序列:
$$ a_{t:t+H-1}^*= \arg\max_{a_{t:t+H-1}} \sum_{k=0}^{H-1}\gamma^k\hat r(\hat s_{t+k},a_{t+k}) +\gamma^H\hat V(\hat s_{t+H}). $$
这里先按确定性模型写:$\hat s_t=s_t$,后续状态由模型和候选(candidate)动作序列推出;随机模型还需要对预测回报(return)取期望或采用明确的风险准则。没有可靠的末端价值估计时,可以省略尾项,但也就忽略了规划范围之外的回报。找到序列后只执行第一个动作,收到新观测再规划,而不是把最初的计划一口气走完。
真实状态 → 采样多条动作序列 → 模型滚动预测 → 给序列评分
→ 留下好序列并更新采样分布 → 执行第一个动作
→ 观察真实下一状态 → 重新规划
CEM(cross-entropy method)是常用的一种搜索方式:反复采样、挑 elite、拟合新的动作分布。它是优化器,不是保证全局最优的魔法。
先亲眼看一次:模型说到了,实际上还没到
把小车放在 $x=3$,目标是 0。真实环境为 $x_{t+1}=x_t+a_t$,模型却以为 $\hat x_{t+1}=\hat x_t+\hat b a_t$,动作只能是 -1、0、1。规划时最小化:
$$ \sum_{k=0}^{H-1}\left(\hat x_{t+k+1}^{\,2}+0.1a_{t+k}^2\right). $$
调模型增益,看预测偏差会怎样影响行动;调规划长度,看多往后想几步要花多少计算。这个小实验枚举全部 $3^H$ 条动作序列,不是 CEM 或神经网络,这样可以单独看模型误差和反馈的作用。
静态例子:H=5、模型增益=1.5。原计划以为两步就到,真实位置却停在 1;每步观察并重新规划能在这个例子里到达 0。真实累计 cost 分别为 8.2 和 5.3。
| 先试什么 | 应该观察什么 | 不能据此推出什么 |
|---|---|---|
| 把模型增益设成 1 | 在这个例子里,预测与执行重合 | 真实 world model 不需要校准(calibration) |
| 改成 1.5 | 原计划过早停下,反馈触发继续前进 | MPC 能修正所有类型的模型错误 |
| 改成 0.5 | 原计划走过头,重规划及时停下 | 所有控制问题都能安全回头 |
| 增大 H | 枚举序列数按 $3^H$ 增加 | 更长 horizon 必然有更好的真实效果 |
两种方法都实际走 $H$ 步,但 MPC 每步又向前看 $H$ 步、重新搜索。它花了更多计算,不能把这张图当同计算预算 benchmark。这里也没有障碍、观测噪声或不可逆动作。
世界本来随机,还是模型还不懂?
| 不确定性 | 意思 | 一个直观例子 | 可以做什么 |
|---|---|---|---|
| 偶然不确定性(aleatoric uncertainty) | 给定当前信息,结果仍有随机性 | 同样的动作受到随机阵风影响 | 预测分布,按风险而不只按均值规划 |
| 认知不确定性(epistemic uncertainty) | 数据不足或模型知识不够 | 没见过这种路面,不知道刹车效果 | 补数据、比较多个模型、限制外推 |
“不可约”总是相对当前信息而言;加上风速传感器后,原来的一部分随机性可能变得可预测。Ensemble 的分歧只是模型不确定性的近似,不能当作可靠性的保证。
固定同一个状态和动作,只看下一状态的一个分量 $X'$。用全方差(variance)公式,就能把成员内部和成员之间的差异分开。令 $M$ 是 ensemble 成员索引:
$$ \operatorname{Var}(X')= \mathbb E_M[\operatorname{Var}(X'\mid M)] +\operatorname{Var}_M(\mathbb E[X'\mid M]). $$
两个等权模型的预测均值为 0、2,各自方差为 1,那么混合分布总方差为 $1+1=2$。第一项来自成员内部,第二项来自成员之间。这是混合分布的精确分解;把第二项解释成真实 epistemic uncertainty,还需要模型和校准假设。
误差为什么会越滚越大
先固定同一个初始状态和同一串动作,比较确定性真实系统 $f$ 与模型 $\hat f$。假设在轨迹(trajectory)经过的区域内,两者的一步误差一致不超过 $\epsilon$,且真实动力学 $f$ 对状态是 $L$-Lipschitz。记 $e_k=\|s_k-\hat s_k\|$,则:
$$ e_0=0,\qquad e_{k+1}\le Le_k+\epsilon,\qquad e_H\le\epsilon\sum_{j=0}^{H-1}L^j. $$
$L=1$ 时最多按 $H\epsilon$ 累积;$L>1$ 时可能放大得更快。若初始状态已有误差,右侧还要加 $L^H e_0$。这个界比较的是同一串动作下的状态误差,不是两个反馈策略的回报差;训练集上的平均 MSE 也不等于这里要求的一致误差上界。规划器还可能把模型带到训练中少见的区域,让这些前提不再成立。
例如模型低估了接近障碍物的碰撞风险,最优模型路线可能恰好贴着障碍走;平均一步 MSE 不一定暴露这类决策相关错误。
一步均方误差小,可能把两条路平均成墙
假设同一个输入下,下一位置等概率为 −1 和 +1。平方误差最优的点预测是均值 0,但真实系统一次也不会到 0。若 0 恰好代表不可通过的位置,用这个平均状态规划就会出问题。
可以预测分布,而不只是一个均值。例如高斯模型的负对数似然包含:
$$ \tfrac12\left[(s'-\mu)^2/\sigma^2+\log\sigma^2\right]+\text{constant}. $$
方差可以解释随机性,但 $\log\sigma^2$ 项会惩罚无限放大方差。单高斯仍可能表达不好两个分离的模式,需要根据任务考虑混合分布、潜在变量或其他模型。把网络换成 ensemble 也不自动解决每个成员都使用错误分布族的问题。
规划越努力,为什么可能越会钻模型漏洞?
设两条路线的预测收益为 3 和 10,真实收益却是 3 和 −5。规划器选第二条,并不是搜索不够认真;恰恰是把错误预测优化得很好。继续增加搜索预算,可能只是更稳定地找到同一个漏洞。
可做一个区分实验:固定模型,只增加搜索预算,同时比较模型预测收益与真实收益。若前者越来越高、后者下降,优先检查模型被利用的区域,而不是继续优化搜索器。再固定 planner,补这些区域的真实数据,看落差是否缩小。
短 rollout、模型分歧惩罚和约束可以降低部分风险,但各有代价:短视会漏掉远期收益,保守惩罚可能错过真实好路线,错误的约束模型也不能提供安全保证。它们应与无模型基线(baseline)、已知模型的 oracle 对照,而不是只比较模型自己的分数。
规划预算怎么取舍
| 选择 | 好处 | 风险 |
|---|---|---|
| 更长 horizon | 能看到更晚的收益 | 误差累积、搜索变难 |
| 更多候选序列 | 搜索更充分 | 每次决策更慢 |
| Ensemble / uncertainty penalty | 能提示部分不可靠区域 | 模型可能一起犯错,非安全保证 |
| 短模型 rollout + 真数据 | 减少长期模型漂移 | 仍需控制合成数据占比和偏差 |
PETS 用概率模型与 ensemble 表达不确定性,并结合采样规划。MCTS 则在离散动作树中分配搜索预算;二者都需要一个可用于预测的模型,但搜索结构不同。这里不展开完整树搜索实现;规划和学习怎样互相喂手算了一棵两动作的小树。
复现时别只报 model loss
| 检查层次 | 固定什么 | 看什么 |
|---|---|---|
| 单步预测 | 留出的真实 transition | 均值误差、概率校准,而不只总体 MSE |
| 多步预测 | 初始状态和动作序列 | 误差怎样随 horizon 增长 |
| 决策相关误差 | Planner 真正选出的动作 | 有没有专门利用模型不准的地方 |
| 闭环控制 | 真实环境与预算 | Return、安全失败、延迟和交互次数 |
尽量按轨迹或时间段拆训练/测试,而不只是把相邻 transition 随机打散。否则测试集可能仍紧挨着训练轨迹,看不出真正的外推问题。
同时看真实环境回报、规划耗时、不同规划长度下的误差,以及训练数据未覆盖区域的失败率。和 model-free 方法比较时,交互预算与计算预算都要说明;“少采了数据”不等于“更快更便宜”。
参考:PETS。继续拆开看学什么样的模型和规划与 LQR,然后读实验与排错,或转到固定数据下的 RL。
本页术语 13
- 规划器 planner
- 利用模型比较未来动作序列,再选择当前要执行的动作
- 动力学模型 dynamics model
- 预测给定状态和动作后,下一状态或其分布会怎样变化
- 策略 policy
- 给定状态,规定怎样选动作;可以输出一个动作,也可以输出动作的概率分布
- 观测 observation
- 智能体实际收到的信息,可能只是环境完整状态的一部分
- 模型预测控制 model predictive control, MPC
- 反复规划一段未来,只执行第一步,再根据真实反馈重新规划
- 候选 candidate
- 召回阶段捞出来、等待精排挑选的内容
- 回报 return
- 从某一步开始,把后续奖励按约定累加;有折扣时还要乘上相应的折扣权重
- 校准 calibration
- 模型给出的置信度是否等于真实正确率
- 偶然不确定性 aleatoric uncertainty
- 在当前信息条件下,结果本身仍有的随机性;增加观测有时能减少它
- 认知不确定性 epistemic uncertainty
- 数据或模型知识不足造成的不确定性,可通过新证据减少,但估计并不自动可靠
- 方差 variance
- 估计量的波动幅度;重要性加权最容易在这里爆炸
- 轨迹 trajectory
- 与环境交互得到的一串状态、动作和奖励;采样时也可能只保存其中一段
- 基线 baseline
- 用来比较新方法的参考方法或配置