跳转至

专题 4:交互意图预测(Interaction & Intention Prediction)——方向级综述

本章定位:这是"经典规控范式横切专题层"中交互意图预测方向的方向级综述章。它不是某个具体算法的教学章(那些将来会落在 04_移动机器人规控/40_交互意图预测/ 的正文里),而是站在整个方向的高度,回答四个问题:这个方向解决什么根本问题、它是怎么一步步发展到今天的、有哪些技术流派、它和你已掌握的传统规控与博弈规划是什么关系

与兄弟综述章的分工:同目录下 30_博弈规划.md 讲"把他人建成会响应你的决策者、用数值求解博弈均衡"这条显式建模主线;本章讲的是另一条互补主线——从数据中学习他人的未来轨迹分布。两者在终点会师:博弈规划的"预测即均衡"与本章的"联合预测-规划(joint prediction-planning)"指向同一个工程目标——让预测和规划不再解耦。读本章时,请把 30_博弈规划.md §3.4 / §3.6 关于"预测-规划解耦的病(frozen robot problem)"那几段放在手边,本章会反复回到这个病灶,但给出的是"学习派"的药方。

为什么单独写一章方向级综述:交互意图预测是过去十年自动驾驶与移动机器人领域论文产出最密集、范式更迭最快的方向,没有之一。从 2016 年 Social LSTM 第一次把"社交"塞进神经网络,到 2020 年 VectorNet 用向量化地图取代栅格、到 2022 年 MTR 拿下 Waymo 冠军、到 2023 年 UniAD 把感知-预测-规划焊成一个端到端 Transformer 拿了 CVPR Best Paper、再到 2024–2026 年扩散模型与 VLA(视觉-语言-动作)基础模型涌入——这是一条节点密、转折锐、流派可辨的演化河流。把这条史脉讲清楚,比孤立地讲任何一个网络结构都更能帮你建立"方向感"。这正是方向级综述的价值。

本章是综述/导览性质:与博弈综述一样,本章重在"横向打通"与"演化梳理",不含可运行代码与逐行论文精读。本章的笔法接近学术综述(survey),但保留教学文档的认知工具(多视角、对比、本质洞察、陷阱)和循序渐进的展开方式。文中涉及的厂商披露信息(如 Tesla FSD)一律标注"未经同行评审"。


前置自测

本章是方向级综述,前置门槛低于专门的预测算法正文。但若以下 5 题答不出 ≥ 3 题,建议先读完同目录 30_博弈规划.md 的前置自测与 §3.5(它讲清了"预测-规划解耦"这个本章反复用到的病灶),再回来——综述里会大量复用这些概念。

  1. (预测-规划解耦的病) 传统自动驾驶管线是"先预测他车轨迹,再把预测当约束规划 ego"。在"密集车流强行汇入"场景里,这个解耦会产生什么著名的失败模式?为什么"把所有可能的他车轨迹都当成障碍"会让机器人不敢动?(→ 30_博弈规划.md §3.4
  2. (多模态的本质) 一辆车开到路口,它既可能左转也可能直行。如果你的预测模型对每辆车只输出一条轨迹,并且用均方误差(MSE)去训练它,输出会塌缩成什么?(提示:两条岔路的"平均"是哪里?)这个现象叫什么?
  3. (序列建模工具) 你已学过的 RNN/LSTM 是怎么处理变长时间序列的?它的隐状态 \(h_t\) 在直觉上"记住了什么"?相比之下,Transformer 的自注意力(self-attention)放弃了循环、改用什么机制让任意两个时刻"直接对话"?(→ 深度学习基础 / 序列建模章)
  4. (图与关系) 一个路口有 8 辆车、3 个行人、若干条车道。如果要让模型"知道谁和谁有交互、谁该让谁",为什么把这个场景建成一张(节点=智能体/车道,边=空间关系)比把它塞进一个固定大小的向量更自然?图神经网络(GNN)靠什么操作在节点间传递信息?(→ 深度学习基础 / GNN 章)
  5. (评估指标) 预测模型输出 6 条候选轨迹,真值只有 1 条。如果用"6 条里最接近真值的那条的误差"来打分,这个指标奖励了什么、又纵容了什么?(提示:模型可以靠"广撒网"刷分)这正是 minADE/minFDE 这类 "min-over-K" 指标的争议所在。

本章目标

读完本章,你应当能够:

  1. 复述交互意图预测的发展脉络:从 2016 年 Social LSTM 用 social pooling 把"社交"引入神经网络,到 Social GAN(2018)的多模态生成、MultiPath(2019)的 anchor 范式、VectorNet(2020)的向量化地图革命、Scene Transformer / MTR(2022)的 Transformer 统一、UniAD(2023)的端到端融合、再到 2024–2026 的扩散模型与 VLA 浪潮——能说清每个阶段"解决了上一阶段的什么遗留问题"。
  2. 辨识"意图—轨迹—交互"三个建模层次:能区分物理感知(physics-based,纯运动学外推)、机动/意图感知(maneuver/intention-aware,先分类离散意图再回归轨迹)、交互感知(interaction-aware,建模智能体间的相互影响)三类方法的边界、各自的输入输出与适用场景。
  3. 梳理深度预测模型的四条技术脉络:循环网络(LSTM 系)、图神经网络(GNN 系)、Transformer(注意力系)、生成模型(GAN/CVAE/扩散系)——给定一篇论文或一个开源项目,能判断它的骨干属于哪一脉、该脉的核心思想与典型代表。
  4. 理解预测与规划耦合的三种范式及其张力:解耦(pipeline)、条件预测(conditional / planning-informed)、联合一体化(joint / game-theoretic / end-to-end)——能说清每种范式如何回应"frozen robot"与"自我实现预言(self-fulfilling prophecy)"两大病灶,以及它们与博弈规划的会师点。
  5. 掌握主流数据集与评估指标体系:能说清 nuScenes / Argoverse(2) / Waymo Open Motion / nuPlan 的定位差异,理解 minADE / minFDE / Miss Rate / brier-minFDE / mAP 这套 "min-over-K" 指标的含义、各 leaderboard 的排序口径差异,以及它们共同的根本缺陷——开环(open-loop)指标与闭环(closed-loop)部署的错配
  6. 说清这个方向尚未解决的开放问题:多模态评估的失真、开环-闭环鸿沟、长尾分布与分布漂移、不确定性的严格量化、交互预测的因果性、以及一个贯穿全章的工程现实——"这是 C++ 代码最少的方向,研究前沿与工业生产之间隔着一条'Python→C++ 部署'的鸿沟"

知识导航

本章按"史—景—器—耦—测—问"六段式展开,比博弈综述多了"景"(全景分类)与"测"(数据集指标)两段,因为预测方向的方法谱系评估体系都远比博弈复杂,值得单列:先看它从哪来(发展脉络),再俯瞰意图/轨迹/交互三层全景(分类地图),然后纵向梳理深度模型四脉(建模工具),接着讲预测如何与规划耦合(这是本方向的"灵魂问题"),再横向对比数据集与指标(怎么评、怎么刷榜、榜单为何会骗人),最后直面未解之惑(开放问题)。

标题 回答的问题 难度
§4.1 发展脉络:六个时代 这个方向是怎么一步步演化到今天的? ⭐⭐
§4.2 三层全景:物理 / 机动意图 / 交互感知 预测方法一共有哪几大类?如何划界? ⭐⭐⭐
§4.3 深度预测模型四脉:LSTM / GNN / Transformer / 扩散 主流网络骨干有哪些路线?各自核心思想? ⭐⭐⭐
§4.4 预测与规划的耦合:解耦 / 条件 / 联合 预测和规划该怎么"接线"?三种范式的张力? ⭐⭐⭐⭐
§4.5 数据集与评估指标 拿什么数据、用什么指标?榜单为何会骗人? ⭐⭐⭐
§4.6 开放问题与未来方向 这个方向还有哪些悬而未决的硬骨头? ⭐⭐⭐⭐
§4.7 本章小结与速查 一张表记住整个方向

前置知识桥接

本章站在深度学习预测与博弈规划的交叉点上,复用了多块前置。这里用统一格式各激活一次核心要点。

回顾 30_博弈规划.md §3.4(frozen robot 的病灶):传统自动驾驶的"先预测他车轨迹 → 再把预测当障碍约束 → 规划 ego 轨迹"两段式管线,在强交互场景下产生 frozen robot problem——预测器不知道 ego 的规划意图,输出"他车在所有可能方向上散开"的悲观预测,规划器面对这些全方向的"障碍"只能不动。复用方式:本章 §4.4 把这个病灶从"博弈视角的诊断"翻译成"预测视角的药方"——解耦→条件→联合三种耦合范式,正是三种"注射"程度递增的"反 frozen"疗法。读 §4.4 时,脑中保持 30_博弈规划.md 的诊断作为对照锚点。

回顾 20_不确定性规划.md §1(五桶类型学):不确定性有五种类型——集合/概率/多模态/认知/尾部,每种需要不同的数学工具。复用方式:本章的"多模态预测"处理的正是桶③(多模态型)——未来是几种离散可能之一。但本章的工具不是分支规划(那是经典方法),而是用深度学习网络直接输出多模态分布(CVAE 的 latent、GAN 的噪声、扩散的多次采样)。理解这一点,你就看到了"同一种不确定性(桶③),经典方法用分支树处理、学习方法用生成模型处理"的对偶关系——这与 S5(RL 贯穿)§2 的对偶主题直接呼应。

回顾深度学习基础(序列建模、GNN、Transformer):本章 §4.3 四脉的全部骨干(LSTM/GNN/Transformer/扩散)都建立在深度学习基础知识上。复用方式:本章不重新推导这些工具的数学(那在深度学习基础章),而是聚焦"它们在轨迹预测任务中怎么特化、各自的先验假设如何匹配交互预测的需求"。读到 §4.3 时,如果某个网络结构的细节模糊了,回深度学习基础章补——本章只管"为什么选它、它在预测里扮演什么角色"。

本质洞察(本章是三个前置的"交汇点"):博弈规划给了"为什么预测-规划不能解耦"的诊断(问题定义),不确定性规划给了"多模态意图属于桶③"的分类框架(问题归类),深度学习基础给了"LSTM/GNN/Transformer/扩散"的工具箱(问题求解)。本章做的是把这三股前置汇流成一个完整的方向——用深度学习工具(第三股)解决多模态意图预测问题(第二股),并把预测与规划耦合起来治 frozen robot 病(第一股)。理解了这个三股汇流,你就理解了本章在整个知识体系中的枢纽地位。

如果跳过本章会怎样

不读本章综述,你仍可以直接进入 40_交互意图预测/ 正文逐个精读算法——但会遇到两类具体困境:

  1. 不知道"为什么要学这个算法":每篇论文都会告诉你"我们的方法比之前的好",但不会告诉你"之前的在什么历史脉络上、它解决了什么前驱的什么问题"。没有本章 §4.1 的六时代脉络,你只会觉得"又出了一个新 Transformer 预测器",却看不到它在演化链上的位置。
  2. 不知道"开环高分 ≠ 闭环安全":如果你直接上手训模型、刷 minADE 榜单,可能花三个月把排名从第 5 提到第 2——然后接入规划器发现 frozen robot 完全不改善。没有本章 §4.5.4 的"开环-闭环鸿沟"认知,你会困惑"为什么我的预测这么准车还不敢动"。

如果跳过前置知识会怎样

每个前置知识的缺失都会导致特定的理解困难,而不是"读不懂全篇":

缺失的前置 具体表现 最小补救方案
博弈综述(frozen robot 病灶) §4.4 读不懂"为什么解耦会 frozen" 30_博弈规划.md §3.4 读 frozen robot 那一段(约 15 分钟)
不确定性类型学(五桶) §4.6.4 不理解"偶然 vs 认知不确定性"的区分 20_不确定性规划.md §1 读五桶分类(约 10 分钟)
LSTM 基础 §4.3.1 不理解"隐状态记住了什么" 回深度学习基础的 RNN/LSTM 章(约 30 分钟)
GNN 基础 §4.3.2 不理解"消息传递怎么让节点交换信息" 回深度学习基础的 GNN 章(约 30 分钟)
Transformer 基础 §4.3.3 不理解"自注意力怎么让任意时刻直接对话" 回深度学习基础的 Transformer 章(约 45 分钟)

对比性思维(前置知识的"最小补救"策略):不同于线性教程(必须按顺序读完所有前置),综述支持"缺什么补什么"的按需回溯——读到某一节卡住时,查上表找到缺失的前置,去补那一小块(而非回去重读整章),然后回到综述继续。这种"按需回溯"的阅读方式是综述和教程最大的使用差异——教程要线性啃,综述要网状取用。附录 B 的三条阅读路径就是这种网状取用的具体实例。

预计阅读时间

阅读方式 时间 适合谁
精读全篇 4–5 小时 准备系统进入交互预测方向的读者
速读(§4.1 脉络 + §4.4 耦合 + §4.5 评估 + §4.6 开放问题) 2 小时 已有预测经验、想补全局观的读者
速查(§4.7 小结速查 + 常见误解表 + 故障排查手册) 30 分钟 做选型/诊断时回来查的读者

前置知识桥接

本章是综述,但要把"预测"讲透,有四块前置概念需要在脑中预热——前两块来自规控,后两块来自深度学习:

  • 回顾"预测-规划解耦"的工程现状(来自 30_博弈规划.md §3.4:传统自动驾驶/移动机器人是两段式管线——感知预测模块吐出他车未来轨迹,规划模块把这些轨迹当成动态障碍约束、求 ego 的最优轨迹。这个解耦在弱交互场景(高速跟车)工作良好,但在强交互场景(汇入、抢行、谈判式让行)会产生 frozen robot problem(机器人因为把所有可能轨迹都当障碍而不敢动)。本章 §4.4 的全部张力都围绕"如何修补这个解耦"展开,而修补方式恰好与博弈规划在 §4.4.3 会师。

  • 回顾"多模态/不确定性"的必要性(来自 20_不确定性规划.md:未来本质上是不确定的——同一个历史轨迹,可以对应多个合理的未来(左转/直行/右转)。预测模型若只输出一条"最可能"的轨迹,本质上是在对一个多峰分布做点估计,必然失真。这一点是理解 §4.2"为什么需要多模态预测"和 §4.3"为什么生成模型适合预测"的基础。

  • 回顾序列建模三件套(来自深度学习基础)RNN/LSTM用循环隐状态 \(h_t = f(h_{t-1}, x_t)\) 压缩历史,擅长变长序列但有长程依赖衰减与串行计算的痼疾;Transformer 自注意力\(\text{Attention}(Q,K,V)=\text{softmax}(QK^\top/\sqrt{d})V\) 让任意两个 token 直接交互,天然并行、长程依赖强,但计算量随序列长度平方增长;位置编码补回注意力丢失的顺序信息。这三件套是 §4.3 四脉中前三脉的数学地基。

  • 回顾图神经网络(来自深度学习基础):把场景建成图 \(G=(V,E)\)(节点=智能体或车道矢量,边=空间/语义关系),用消息传递(message passing)\(h_v^{(l+1)}=\text{UPDATE}\big(h_v^{(l)}, \text{AGG}_{u\in\mathcal{N}(v)} \text{MSG}(h_u^{(l)})\big)\) 在邻居间传播信息。图视角是 §4.3 第二脉(GNN 系,VectorNet 是其巅峰)的核心,也是理解"交互建模"的最自然语言。

预计阅读时间:100–130 分钟(综述章,可跳读;建议先通读 §4.1 发展脉络与 §4.7 小结建立框架,再按需深入 §4.4 耦合与 §4.6 开放问题这两节"硬骨头")。


§4.1 发展脉络:交互意图预测的六个时代 ⭐⭐

本节解决的问题:交互意图预测不是某一年突然出现的,它是一条跨越十年、节点极密的技术演化河流。本节把它切成六个时代,每个时代回答"上一时代留下了什么问题、这一时代怎么解决、又留下什么新问题"——让你看到整个方向的因果链,而不是一堆孤立的论文缩写(Social LSTM、VectorNet、MTR、UniAD……这些名字若不放进时间线,只是一锅字母汤)。

4.1.1 为什么要先讲历史

在扎进任何一个具体网络结构(social pooling、polyline subgraph、motion query、扩散去噪)之前,先理解这个方向的演化史有三个不可替代的价值,这与博弈综述 §3.1.1 的论证一脉相承,但在预测方向尤其成立——因为预测方向范式更迭太快,不看历史就会把"已被淘汰的旧范式"和"当前 SOTA"混为一谈。

第一,历史揭示动机。VectorNet(2020)为什么要抛弃栅格化(rasterization)、改用向量化(vectorization)表示地图?因为它的前驱们(如把高精地图渲染成 RGB 图、再喂给 CNN 的一系列工作)面临一个尴尬:渲染图的分辨率与感受野互相掣肘,CNN 要堆很深才能"看到"几百米外的目标车道,算力浪费在大片空白像素上。不知道这段历史,你会觉得 VectorNet 的"polyline + 子图"结构莫名其妙;知道这段历史,你会明白它是"为了高效编码稀疏的、本质上是矢量的地图与轨迹而做的、必然的表示革命"。这正是编写规范 R5"先动机后理论"在方向尺度上的体现。

第二,历史揭示流派。今天看到的方法谱系(§4.2 的三层、§4.3 的四脉),不是有人坐下来设计出来的分类,而是历史上不同研究组、为解决不同子问题、沿不同数学工具自然分化出来的。social pooling 这一支源于行人轨迹预测(计算机视觉社区,关心人群);anchor/goal 这一支源于自动驾驶(Waymo,关心车辆受车道强约束);Transformer 这一支源于 NLP 的范式外溢;扩散这一支源于生成式 AI 的浪潮。理解了分化的历史动因,流派分类就不再是死记硬背,而是有逻辑可循。

第三,历史揭示趋势。从"只预测、与规划解耦"(Social LSTM~VectorNet)→"预测时考虑 ego 计划"(条件预测,PRECOG/PiP/M2I)→"预测与规划联合优化"(DIPP/GameFormer)→"感知-预测-规划端到端"(UniAD/VAD)→"语言/基础模型注入"(DriveVLM/VLA),这条主线指向一个清晰的趋势:预测正在从一个"独立的上游模块"逐渐溶解进一个"端到端的、与规划共生的、甚至带语义推理的决策系统"。看清趋势,你才能判断"独立训练一个更准的预测器"这件事的边际价值正在递减(§4.5、§4.6 会用闭环评估的实证数据说明这一点),以及为什么 2024 年后顶会的重心明显从"纯预测"转向"联合"与"端到端"。

对比性思维("读论文记缩写" vs "用史脉填地图"——两种学习姿态):面对这个缩写满天飞(Social LSTM、VectorNet、MTR、UniAD、GameFormer……)的方向,初学者的常见姿态是"挨个记住每个缩写是干嘛的"——这是点状记忆,缩写一多就乱成一锅字母汤,且记不住"谁先谁后、谁补谁的漏"。本章倡导的姿态相反——先用 §4.1 的六时代因果链 + "三级跳"主轴搭好一张'地图',再把每个缩写当成'地图上的一个坐标'填进去。这是结构化记忆:你记的不是孤立的缩写,而是"它在演化链的哪一环、补了什么漏、在三级跳的哪一级"。两种姿态的差距,在论文越读越多时会指数级放大——点状记忆者越读越乱,填地图者越读地图越完整、越能预判新论文的位置。这也是为什么本章把"史"放在最前面、且反复回到"三级跳"主轴——它不是在讲故事,而是在给你搭一张'终身可用、越填越密'的方向地图。

本质洞察(预测的历史是一条"表示—交互—耦合"三级跳):交互意图预测十年的演化,若要用一句话概括,是三个递进的觉醒。第一级觉醒(表示):怎么把"场景"(轨迹+地图+智能体)喂给网络?答案从栅格图进化到向量集合(Social LSTM→VectorNet)。第二级觉醒(交互):怎么让模型理解"智能体之间相互影响"?答案从手工的 social pooling 进化到图消息传递、再到全局自注意力(Social LSTM→GNN→Transformer)。第三级觉醒(耦合):预测出来要干嘛?答案从"扔给下游规划当障碍"进化到"预测本身就该 condition on ego 的计划、甚至与规划联合求解"(解耦→条件→联合)。把握住这"三级跳",你就握住了整个方向的主轴——后文每介绍一个时代,都会明确指出它在哪一级上前进了一步。

4.1.2 第一时代(2016–2018):社交池化与生成式多模态的萌芽

这个时代解决的问题:如何让神经网络在预测一个智能体的未来时,"看到"周围其他智能体的存在与影响?以及,如何承认未来是多模态的、而不是输出一条确定的轨迹?

交互意图预测进入深度学习时代的开山之作,是 Alahi 等人 CVPR 2016 的 Social LSTM。但要理解它的革命性,得先看清它推翻了什么——深度学习之前的手工模型时代。那时行人/车辆轨迹预测主要靠三类手工模型:① 社会力模型(Social Force,Helbing & Molnár 1995)——把行人想象成受"力"驱动的粒子:朝目标的吸引力 + 对他人/障碍的排斥力 + 对同伴的吸引力,合力决定加速度,积分出轨迹。② 高斯过程(GP)——用核函数刻画轨迹的平滑先验,做概率外推。③ 卡尔曼滤波 / 运动学外推——即 §4.2.2 的物理层。

本质洞察(Social Force 为什么"对得优雅却错得致命",从而呼唤深度学习):社会力模型有一种物理学的优雅——它用牛顿力学的语言(力、加速度)统一刻画了"想去哪"和"避开谁",参数少、可解释、无需数据训练。但它有一个致命的结构性缺陷:那些"力"的形式和强度是人手工设定的(排斥力按距离怎么衰减、同伴吸引力多大),而真实人类交互的复杂性远超几个手工势场能捕捉——人会预判、会谈判、会因文化/情境改变行为,这些都无法塞进一个固定的力场公式。Social LSTM 的革命正在于此:它不再手工设定"交互的力",而是用 LSTM + social pooling 从数据里学出交互。这是从"手工指定模型形式"到"从数据学模型形式"的范式跃迁——与控制领域从"手工调 PID"到"学习控制"、与 CV 从"手工设计特征(SIFT)"到"学习特征(CNN)"是同一场深度学习革命在预测方向的投影。理解了 Social Force 的"优雅但僵硬",你才能理解 Social LSTM 为何是开山之作——它不是"又一个预测模型",而是"预测方向进入数据驱动时代"的分水岭。这正是 R5"先动机后理论"在历史尺度上的体现:不知道手工模型的僵硬,就不懂神经预测的必要。

Social LSTM 的范式转变在于:给每个行人配一个 LSTM 编码其历史轨迹,然后用一个叫 social pooling 的操作,把空间上邻近的行人的 LSTM 隐状态"汇聚"到一个共享的网格张量里,让每个行人的预测都能"感知"邻居的状态。这是第一次用可学习的神经机制(而非手工势场)来建模社交交互。

多视角理解(social pooling 到底在做什么): - CNN 视角:social pooling 本质上是把"周围邻居的隐状态"按它们的相对位置摆进一个以自我为中心的网格(social grid),再对落在同一格的隐状态求和——这非常像 CNN 里的空间池化,只不过池化的不是像素而是 LSTM 隐状态。像/不像:像在于都用网格聚合空间局部信息;不像在于这里聚合的是高维语义状态而非低维特征。 - 图视角(事后诸葛):今天回看,social pooling 其实是一种笨拙的、固定半径的、各向同性的图聚合——它隐含地把"空间近邻"当成图的边,把隐状态求和当成消息聚合。它的笨拙之处正是后来 GNN 系(§4.3 第二脉)要改进的:交互不该只看距离(远处一辆高速逼近的车可能比近处一辆静止的车更重要)。 - 认知视角:social pooling 体现了一个朴素但深刻的假设——"你要去哪,取决于你周围有谁"。这个假设贯穿了之后所有交互预测工作,只是建模工具越来越精巧。

紧随其后的关键工作是 Gupta 等人 CVPR 2018 的 Social GAN。它要修补 Social LSTM 的一个致命假设:确定性输出。Social LSTM 对每个行人只回归一条最可能的轨迹,但人在路口"既可能左也可能右",用 MSE 训练的确定性模型会把多个合理未来"平均"成一条不合理的中间轨迹(直愣愣撞向岔路口中央的隔离带)——这就是著名的 mode averaging(模态平均)/mode collapse 病。Social GAN 引入生成对抗网络:生成器从随机噪声采样出多条不同的、社交兼容的轨迹,判别器逼着这些轨迹看起来"像真的人会走的",并用一个 variety loss(只惩罚 K 条样本里最好的一条)显式鼓励多样性。

本质洞察(Social GAN 的真正贡献是"承认未来是分布而非点"):Social LSTM 把预测当成回归(regression)——输入历史,输出一条轨迹。Social GAN 把预测翻转成采样(sampling)——输入历史,输出一个可以反复采样的分布。这个翻转的威力在于:它在数学上正确地刻画了"未来不确定"这件事。从此,"预测一条轨迹"被"预测一个轨迹分布、并从中采样出 K 个代表"取代,这成了之后所有方法的默认设定。后文你会看到这个"多模态"诉求以各种形式反复出现:GAN 采样、CVAE 隐变量、anchor/goal 离散化、扩散去噪——它们都是在回答同一个问题"如何表达和生成多模态未来"。

这个时代留下的问题:social pooling 太粗糙(只看距离、各向同性、固定网格丢失精细几何);GAN 训练不稳定、模态覆盖难保证;而且这个时代几乎只关心行人(来自 CV 社区),对车辆受车道/地图强约束这一自动驾驶核心特征建模不足。"如何精细建模交互"和"如何利用地图结构",成了下一时代的命题。

4.1.3 第二时代(2019–2020):Anchor 范式与向量化地图革命

这个时代解决的问题:① 如何更可靠地产生多模态轨迹(GAN 不稳定,能否换个更稳的机制)?② 如何把"高精地图"这一自动驾驶独有的强先验高效地喂给模型?

Anchor/回归范式(MultiPath)。Waymo 的 Chai 等人 CoRL 2019 的 MultiPath 提出了一个比 GAN 稳定得多的多模态方案:预先从训练集聚类出一组锚轨迹(anchor trajectories)(代表"典型的运动模式",如直行、左转、右转),模型不再从噪声生成,而是对每个 anchor 预测一个概率 + 一组相对该 anchor 的回归偏移。这把"生成多模态"问题转化成了"分类(选哪个 anchor)+ 回归(微调)"——既稳定又可解释。这个 anchor 范式影响极为深远,后来 TNT、DenseTNT、MTR 的 motion query 都是它的精神后裔。

对比性思维(生成式 vs Anchor 式多模态):不是"用一个网络生成多条轨迹",而是"先放好一组参考模式、再让网络挑选并微调"。前者(GAN/CVAE)灵活但训练难、模态可能塌缩;后者(anchor)稳定可解释但受 anchor 集合质量制约、可能漏掉训练集没覆盖的罕见模式。这条"生成 vs 锚定"的分野贯穿整个预测史——直到 DenseTNT 用 dense goal(密集目标点)试图弥合二者,再到扩散模型(§4.3 第四脉)以另一种方式回归生成式。

本质洞察(anchor 范式是从目标检测"借"来的——一次成功的跨领域思想迁移):MultiPath 的 anchor 思想并非凭空出现,它直接借鉴了目标检测(object detection)领域的 anchor box。在检测里,Faster R-CNN/SSD 等不直接回归物体框(太难、不稳),而是预置一堆不同尺寸/长宽比的 anchor box,模型只需"对每个 anchor 分类(有无物体)+ 回归微调(框的偏移)"——把"在连续空间里直接定位"这个难题,转化成"在离散 anchor 上分类 + 局部回归"这个易题。MultiPath 把这套思想原封不动搬到了轨迹预测:anchor box → anchor trajectory,框的分类回归 → 轨迹的分类回归。这次迁移之所以成功,是因为两个问题有同构的难点——都是"在高维连续空间里直接回归一个结构化对象,既难又不稳",而 anchor 把它降维成'离散选择 + 局部微调'。理解这个跨领域迁移,有两重价值:① 它揭示了为什么 anchor 范式天生稳定(它继承了检测领域多年验证的稳定性);② 它示范了一种重要的研究方法论——当一个问题的难点与另一领域已解决的问题同构时,迁移那个领域的解法往往事半功倍。预测方向从 NLP 借 Transformer、从生成式 AI 借扩散、从检测借 anchor,都是这种"同构迁移"的成功案例。

向量化革命(VectorNet)。本时代最具里程碑意义的工作,是 Waymo 的 Gao 等人 CVPR 2020 的 VectorNet。在它之前,主流做法是把高精地图(车道线、人行横道、停止线)和智能体历史轨迹渲染成一张多通道的鸟瞰图(BEV raster),再用 CNN 提特征。VectorNet 指出这套做法的根本浪费:地图和轨迹本质上是稀疏的、矢量的几何对象(一条车道就是几个点连成的折线 polyline),把它们渲染成稠密像素再用 CNN 去"重新发现"几何结构,既低效又损失精度。VectorNet 的方案:把每个地图元素和每条轨迹都表示成一组向量(polyline),先用一个 polyline subgraph(局部 GNN)把每条折线编码成一个节点特征,再用一个 global interaction graph(全连接 GNN/注意力)建模所有折线节点之间的关系。

本质洞察(VectorNet 是预测方向的"分辨率革命"):VectorNet 解决的不是"预测得更准"这种渐进问题,而是"用什么数据结构表示场景"这种根本问题。它把场景表示从图像域(稠密像素)搬到了几何域(稀疏向量)。这个搬迁的意义堪比 NLP 从字符级建模搬到 token 级——它让模型直接在"语义单元"(一整条车道、一整条轨迹)上推理,而不是在像素上重新拼凑语义。从此 vectorized representation 成为预测方向事实上的标准骨干(de-facto backbone),后续几乎所有 SOTA(Scene Transformer、MTR、Wayformer、QCNet)都建立在向量化表示之上。栅格化方法在此后基本退出 SOTA 竞争(仅在某些端到端 BEV 方法里以另一种形式回归)。

这个时代留下的问题:VectorNet 用 GNN 建模交互,但 GNN 的消息传递有"过平滑(over-smoothing)"和感受野受限的问题;同时,预测的多智能体联合一致性(multi-agent joint consistency)尚未解决——给每辆车单独预测(marginal prediction)会产生互相矛盾的未来(两辆车的预测轨迹撞在一起)。"如何统一建模、如何输出场景级一致的联合预测",呼唤一个更强的骨干——Transformer 登场。

4.1.4 第三时代(2021–2022):Transformer 统一与场景级联合预测

这个时代解决的问题:① 用什么更强的骨干取代 GNN 来建模任意智能体-地图-智能体之间的长程交互?② 如何在 marginal 预测(每个体独立)和 joint 预测(场景级一致)之间统一?

随着 Transformer 在 NLP 和 CV 全面碾压,预测方向自然地把骨干换成了注意力机制。这个时代的标志性工作密集涌现:

  • Scene Transformer(Waymo,ICLR 2022):用一个统一的 Transformer 架构,通过 masking 策略同时支持 marginal 预测和 joint 预测——这是第一次优雅地统一了两种预测模式。它把所有智能体和时间步组织成一个 token 矩阵,用因子化的注意力(沿时间轴、沿智能体轴交替)建模时空交互。
  • DenseTNT(ICCV 2021):在 anchor 范式上更进一步,用 dense goal(在车道上密集撒目标点)做 anchor-free 的目标预测,再回归到目标的轨迹,弥合"生成式 vs 锚定式"的分野。
  • MTR / Motion Transformer(NeurIPS 2022 oral):本时代的集大成者,拿下了 Waymo Open Motion 挑战赛冠军。它的核心创新是可学习的 motion query——把一组可学习的查询向量当成"运动意图原型",通过 Transformer 解码器迭代 refine,既保留了 anchor 的稳定性又获得了 query 的灵活性。MTR 及其后继 MTR++ 长期霸榜,是 §4.3 第三脉的代表作。

多视角理解(为什么 Transformer 比 GNN 更适合交互建模): - 感受野视角:GNN 的消息传递每层只能传一跳,要让"路口对面的车"影响"我",需要堆很多层,且层数一多就过平滑(所有节点特征趋同)。Transformer 的自注意力是全连接的——任意两个智能体/地图元素一层就能直接交互。像/不像:像在于二者都是在图上聚合信息;不像在于 GNN 的图是"稀疏、固定"的,Transformer 的"图"是"全连接、注意力权重动态学出来"的。 - 关系建模视角:交互的本质是"谁该关注谁、关注多少"。自注意力的 \(\text{softmax}(QK^\top)\) 恰好就是一个学出来的、数据驱动的关注权重矩阵——它能学到"远处高速逼近的车权重高、近处静止的车权重低"这种 social pooling 永远学不到的细微关系。 - 统一性视角:Transformer 的 token 抽象让"轨迹点""地图向量""智能体""时间步"都能统一成 token,于是 marginal/joint、agent-centric/scene-centric 这些原本需要不同架构的设定,都能在一个框架里通过 masking 和 query 设计来统一——这是 Scene Transformer 和后来 Wayformer 简化架构的根基。

本质洞察(Scene Transformer 统一 marginal/joint 的深层意义:它让"边缘"和"联合"成为同一模型的两种'读法'):在 Scene Transformer 之前,做边缘预测(每辆车独立)和做联合预测(场景级一致)往往需要不同的架构——这很别扭,因为二者本是同一个场景预测问题的两种粒度。Scene Transformer 的优雅在于:它把所有 (智能体, 时刻) 组织成统一的 token 矩阵,通过 masking 策略(控制哪些 token 在解码时能互相看见)就能在同一个模型里切换两种模式——要边缘预测就让各智能体的预测互相屏蔽(独立解码),要联合预测就让它们互相可见(协同解码)。这背后的本质是:边缘分布与联合分布的区别,在 Transformer 里被还原成了"注意力 mask 让不让它们互相看见"这一个开关。这与 §4.2.4 边缘/联合的概率本质(\(p(\tau_A)p(\tau_B)\) vs \(p(\tau_A,\tau_B)\))完美对应——"看不见对方"就是独立(边缘),"看得见对方"就是耦合(联合)。理解这一点,你就明白为什么 Transformer 能"统一"这两种模式而 GNN/LSTM 做不到——因为只有 Transformer 的全连接注意力 + mask 机制,才能用一个开关在"独立"与"耦合"间自由切换。这是 token 抽象统一性威力的最佳例证。

这个时代留下的问题:纯预测的精度被 Transformer 推到很高,但一个尖锐的质疑浮现:预测得再准,对最终的驾驶安全到底有多大边际贡献? 因为预测此时仍是"独立模块",它不知道 ego 打算怎么走(marginal 预测假设各智能体独立演化),而真实交互中"他车怎么走"恰恰取决于"ego 怎么走"。这个质疑直接催生了下一时代的两大方向:条件/联合预测-规划端到端

4.1.5 第四时代(2022–2023):条件预测、联合一体化与端到端

这个时代解决的问题:如何打破"预测独立于规划"这个根本假设,让预测 condition on ego 的意图、甚至与规划联合优化、乃至感知-预测-规划端到端?

这个时代是本方向的灵魂转折点,三条线并行推进(它们对应 §4.4 的三种耦合范式,此处先做历史定位):

条件预测线(Conditional / Planning-informed)。早在 PRECOG(ICCV 2019)就提出"conditional forecasting"——预测他车时把 ego 的计划轨迹作为条件输入。PiP(ECCV 2020)让预测 condition on ego 的 planned trajectory;M2I(CVPR 2022)先用一个 relation predictor 判断"谁是影响者(influencer)、谁是反应者(reactor)",再做条件预测。这条线的核心洞察:他车的未来不是固定的,它取决于 ego 怎么动——这与博弈规划 §3 的 Stackelberg 视角(ego 是 leader、影响 follower)在精神上完全一致,只是用学习而非数值求解来实现。

联合一体化线(Joint / Game-theoretic)DIPP(TNNLS 2023)把一个可微的非线性优化器嵌进网络,让 learnable cost(可学习的代价函数)与预测联合训练——预测和规划在同一个可微管线里端到端优化。GameFormer(ICCV 2023 oral)层级博弈(level-k game theory)结构组织 Transformer 解码器,迭代地让"预测他车"和"规划 ego"互相 refine,在 nuPlan 上达到领先——这是博弈规划综述 §3.3 流派六(可微博弈/学习混合)的代表作,也是本章与博弈综述的正式会师点

本质洞察(条件预测与联合预测共同杀死了"预测-规划解耦"):第一到第三时代,预测和规划是"上下游"关系——预测吐结果,规划被动消费。第四时代的条件/联合范式,把这条单向箭头变成了双向甚至闭环:预测要看 ego 的计划,规划要看预测的反应,二者在同一个优化/网络里共生。这正是对前置自测第 1 题"frozen robot problem"的根本性回答——机器人不再因为"把所有可能的他车轨迹都当障碍"而冻住,因为它现在能推理"如果我往前挪,那辆车会让我"。博弈综述用数值求解器实现这一点,本章的学习派用可微优化和注意力实现这一点,殊途同归。

端到端线(End-to-end driving)。本时代最耀眼的工作是上海 AI Lab 的 UniAD(CVPR 2023 Best Paper)。它提出 "planning-oriented" 的理念:把检测、跟踪、建图、运动预测、占据预测、规划全部用一个端到端 Transformer 串起来,让所有上游任务都"服务于"最终的规划目标,梯度从规划一路回传到感知。VAD / VADv2(ICCV 2023 / 后续)走全向量化路线,更轻量。这条线把"预测"彻底溶解成了端到端管线里的一个中间表示,不再是独立模块。

教学警示(厂商披露,未经同行评审):业界常引用 Tesla FSD v12(2024) "用端到端神经网络替换了约 30 万行 C++ 控制代码"作为"神经网络吞掉 C++ 规控"的标志性事件。但此说法源自 Musk 直播与媒体转述,非同行评审论文,技术细节无法核实。教学中引用此类厂商披露信息,必须明确标注其性质,不可与 UniAD/VAD 这类有论文、有开源、有 benchmark 的工作等量齐观。这一点在 §4.6 开放问题里还会回到——它折射出本方向"研究可复现性"与"工业黑箱"之间的张力。

这个时代留下的问题:端到端虽然惊艳,但可解释性差、安全验证困难、对长尾场景脆弱;联合一体化的计算成本高、训练复杂。同时,所有这些方法仍受困于一个评估层面的根本难题——开环指标(在录制数据上算 minADE)与闭环部署(车真的在路上跑)严重错配。这把问题抛给了下一时代和 §4.5、§4.6。

4.1.6 第五至第六时代(2024–2026):扩散模型、基础模型与 VLA

这两个时代解决的问题:① 能否用更强的生成模型(扩散)来产生更高质量、更可控的多模态轨迹?② 能否把大语言模型/视觉-语言模型的常识推理与语义理解注入预测与规划,处理长尾与可解释性?

扩散模型线(Diffusion)。继 GAN、CVAE 之后,扩散模型(diffusion models)成为生成多模态轨迹的新宠。MotionDiffuser 用扩散做可控的多智能体联合预测;Diffusion Policy(Chi 等,RSS 2023)成为机器人/驾驶共用的 baseline;Diffusion-Planner(ICLR 2025 oral)专做 nuPlan 闭环规划;DiffusionDrive(CVPR 2025)把扩散用于端到端驾驶。扩散的吸引力在于:它能稳定地建模复杂多峰分布(避开 GAN 的训练不稳定与模态塌缩),且天然支持引导式采样(guided sampling,可注入约束)。

基础模型 / VLA 线(Foundation models / Vision-Language-Action)。这是最前沿也最不确定的方向。驾驶侧:DriveVLM、LMDrive、DriveGPT4、Senna 等把视觉-语言模型接入驾驶决策,试图用语言模型的常识推理处理罕见场景、并提供可解释的决策理由。机器人侧:RT-2、OpenVLA、π0 / π0.5(Physical Intelligence)、Groot N1、Helix 等 VLA 模型把"像素/语言→连续动作"压进一个网络。其中 π0 / π0.5 用 flow matching(与扩散同源)实现 50 Hz 连续动作输出,是 VLA 与本方向"预测-规划"母题的机器人侧延续。

世界模型线(World Models)——一条与 VLA 并行涌现的前沿。除了"预测轨迹"和"直接出动作",还有第三条思路:学一个能"想象未来"的生成式世界模型——给定当前观测与一个假想动作,模型生成"如果这么做,未来的传感器观测(甚至视频)会长什么样"。驾驶侧的 GAIA 类视频生成世界模型、以及各种 latent world model,本质是把"预测"从"预测他车轨迹"提升到"预测整个未来观测"。它的吸引力在于:① 可作为闭环训练的"神经模拟器"(缓解 §4.5.4 闭环数据稀缺);② 一个会"想象后果"的模型天然支持基于模型的规划(model-based planning)。它的难点是生成长时、物理一致、可控的未来观测极难。

对比性思维(三条前沿路线:显式轨迹 vs VLA 动作 vs 世界模型想象):到第六时代,"预测未来"这件事分化出三种哲学。显式轨迹派(传统主线):明确输出"他车未来轨迹分布",再交规划——模块清晰、可评估、可解释,但需手工定义"预测什么"。VLA 动作派:跳过显式预测,直接"感知/语言→动作"——端到端、用大模型常识,但黑箱、难单独评估。世界模型派:预测"未来的观测/视频",再在想象的未来里规划——能做神经模拟器、支持 model-based planning,但生成一致可控的长时未来极难。三者不是互斥:可以用世界模型做想象、用显式轨迹做安全检查、用 VLA 注入语义。这场"输出什么"的三分,是 §4.2.6 输出形式之争在基础模型时代的升级版——从"输出轨迹还是占据"升级到"输出轨迹、动作、还是整个未来世界"。本方向的未来很可能是三者的某种融合——用 VLA 的语义理解做高层意图推断,用世界模型做反事实想象,用显式轨迹预测做底层安全验证。这一融合判断在 §4.6 还会展开。

对比性思维(VLA 范式与传统预测范式的根本差异):传统预测范式是"显式地输出未来轨迹分布,再交给规划";VLA 范式是"不显式预测,直接从感知/语言映射到动作"。前者模块清晰、可单独评估、可解释;后者端到端、可利用大模型常识、但更黑箱。这不是"谁取代谁",而是两条哲学:显式中间表示 vs 隐式端到端。本方向的未来很可能是二者的融合——用 VLA 的语义理解做高层意图推断,用显式轨迹预测做底层安全验证。这一融合判断在 §4.6 还会展开。

至此六个时代的因果链可以一句话串起来:social pooling 把交互引入网络(时代一)→ anchor 与向量化解决了多模态与地图表示(时代二)→ Transformer 统一了骨干与联合预测(时代三)→ 条件/联合/端到端杀死了预测-规划解耦(时代四)→ 扩散与基础模型带来更强生成与语义推理(时代五、六)。每一跳都在修补前一跳的遗留漏洞,这与博弈综述 §3.1 揭示的"补漏链"是同一种技术史规律。

本质洞察(这是 C++ 代码最少的方向——一个贯穿全章的工程现实):与博弈综述揭示的"C++ SOTA 真空"类似,但交互意图预测的情况更极端。本方向几乎全部研究前沿都在 Python/PyTorch(UniAD、VAD、MTR、DIPP、GameFormer、PLUTO、Diffusion-Planner 无一例外)。唯一的大规模生产级 C++ 预测栈是 Apollo 的 modules/prediction(详见 §4.3.6 与 §4.6)。这意味着:对于以 C++ 为母语的机器人工程师,本方向存在一条明显的"Python 研究→C++ 部署"鸿沟。理解这条鸿沟,是理解本方向"学术与工业割裂"现状的钥匙——后文每讲到工程落地,都会回到这个现实。

4.1.7 一条暗线:行人预测与车辆预测的分流与合流

读完六个时代,还有一条贯穿其中却容易被时间轴掩盖的暗线值得单独点破——交互预测其实有两个起源社区,它们一度分道扬镳,又在 Transformer 时代合流。理解这条暗线,能解释很多"为什么某方法长成那样"的困惑。

两个社区的不同基因: - 计算机视觉(CV)社区——行人轨迹预测:起源于视频监控、人群分析。关心的是行人——运动自由(可朝任意方向走)、强社交(避让、结伴、跟随)、但不受车道约束。Social LSTM、Social GAN 都诞生于此(CVPR/ECCV/ICCV)。它们的基因是"社交交互第一,地图无关"——因为行人不在车道上跑。常用数据集是 ETH/UCY(行人)。 - 机器人/自动驾驶(AV)社区——车辆轨迹预测:起源于自动驾驶落地需求。关心的是车辆——运动受车道/地图强约束(车不能横着开)、受交通规则约束、机动模式相对离散(直行/转向/变道)。MultiPath、VectorNet、TNT 都诞生于此(CoRL/Waymo/Argoverse)。它们的基因是"地图约束第一,机动离散"——因为车被车道和规则牢牢框住。

对比性思维(行人预测 vs 车辆预测——同一问题的两种"方言"):不是"预测就是预测、行人车辆都一样",二者有深刻差异。行人:高自由度、强社交、弱地图约束、模态弥散(可以微微偏一点点,连续多模态)→ 适合生成式(GAN/CVAE/扩散,因为模态难枚举)。车辆:低自由度、强地图约束、机动离散、模态清晰(左转/直行/右转可枚举)→ 适合锚定式(anchor/goal,因为模态可枚举且地图给了天然的目标候选)。这解释了一个长期现象:为什么 §4.2.3 说"anchor 范式源于自动驾驶、生成式更受行人社区青睐"——根源在两个社区面对的"模态结构"不同(车辆离散可枚举、行人弥散难枚举)。像/不像:像在于都要建交互、都要多模态;不像在于约束强度(地图)与模态结构(离散 vs 弥散)天差地别。

为什么会合流(Transformer 时代):到了 §4.1.4 的 Transformer 时代,两条线开始融合,原因有三:① 统一的 token 抽象让"行人""车辆""车道"都能当 token 塞进同一个注意力,无需为两类智能体设计不同架构;② 数据集融合——Waymo/Argoverse 等数据集同时包含车辆、行人、自行车(异构智能体),逼着方法统一处理;③ 向量化表示对两类都适用。于是 Scene Transformer、MTR 等现代方法不再区分"行人预测器"和"车辆预测器",而是用一个异构图/异构 token 的统一框架处理所有智能体——只是给不同类型的智能体不同的类型嵌入(type embedding)。

本质洞察(合流的深层意义:交互的"社交基因"与"地图基因"被统一进同一个注意力):行人预测贡献了"社交交互建模"的基因(Social LSTM 的 pooling 思想活在了今天的 agent-to-agent 注意力里),车辆预测贡献了"地图约束建模"的基因(VectorNet 的车道 polyline 活在了今天的 agent-to-lane 注意力里)。现代统一框架的本质,是把这两条基因——社交交互与地图约束——统一进同一个注意力机制的不同边类型里(agent↔agent 边管社交,agent↔lane 边管地图约束)。所以当你看到 MTR 同时建模"车-车交互"和"车-道约束"时,你看到的其实是两个社区十年努力的合流。这条暗线也呼应了 §4.1.1 那句"流派是历史分化出来的"——分化于不同社区的不同关切,合流于 Transformer 的统一抽象。

4.1.8 时代脉络速查表

时代 年份 代表作 解决的核心问题 在"三级跳"中的位置 留下的问题
一·社交萌芽 2016–2018 Social LSTM, Social GAN 把交互引入网络;承认未来多模态 交互(手工 pooling)+ 多模态萌芽 pooling 粗糙、GAN 不稳、只关心行人
二·向量革命 2019–2020 MultiPath, VectorNet 稳定多模态(anchor);高效编码地图(向量化) 表示(栅格→向量) GNN 受限、联合一致性缺失
三·Transformer 2021–2022 Scene Transformer, DenseTNT, MTR 更强骨干;统一 marginal/joint 交互(GNN→注意力) 纯预测的边际价值受质疑
四·耦合转折 2022–2023 PiP/M2I, DIPP, GameFormer, UniAD/VAD 打破预测-规划解耦;端到端 耦合(解耦→条件→联合→端到端) 可解释性、安全验证、开环-闭环错配
五·扩散 2024–2025 MotionDiffuser, Diffusion-Planner, DiffusionDrive 更强生成式多模态、可控采样 多模态(GAN/CVAE→扩散) 推理速度、约束保证
六·基础模型/VLA/世界模型 2024–2026 DriveVLM, π0/π0.5, OpenVLA, GAIA 类世界模型 注入语义推理、想象反事实、处理长尾、可解释 范式(显式预测→隐式端到端/想象 or 融合) 黑箱、可验证性、算力、生成一致性

本节练习(史脉理解,重在"看到因果链"而非记年份): 1. (补漏链复述) 不看表,用自己的话把六个时代串成一条"每代补前代什么漏"的因果链。重点说清:时代二补了时代一的什么漏、时代四补了时代三的什么漏。 2. (三级跳定位) 给定四个关键词——social pooling、向量化、motion query、条件预测——分别说它们在"表示—交互—耦合"三级跳的哪一级上前进了一步,为什么。 3. (两社区合流) 用 §4.1.7 的暗线解释:为什么早期"行人预测"偏爱生成式、"车辆预测"偏爱 anchor?为什么 Transformer 时代二者合流?合流后两个社区各自的"基因"以什么形式活在现代统一框架里? 4. (趋势外推) §4.1.6 列了扩散、VLA、世界模型三条前沿。基于"表示—交互—耦合"主线和"从拟合到决策"的判断(§4.7.8),你预测下一个时代(2027+)最可能的突破方向是什么?说明你的推理(这是开放题,重在论证逻辑)。

过渡到 §4.2:发展脉络给了你"时间轴"上的因果链。但同一时代里往往有多种并行的方法路线,它们沿着一个正交于时间的维度分布——这就是"用什么信息、建模到什么层次"的维度。下一节我们换一个切面,把所有预测方法按"物理 / 机动意图 / 交互"三个建模层次重新铺开,给你一张与时间无关的全景分类地图


§4.2 三层全景:物理 / 机动意图 / 交互感知 ⭐⭐⭐

本节解决的问题:§4.1 沿时间轴排列了方法,但若有人扔给你一篇 2014 年的卡尔曼滤波预测论文和一篇 2024 年的 Transformer 论文,你怎么用一个统一的标尺衡量它们"建模到了什么深度"?本节给出这把标尺——经典的"物理 / 机动意图 / 交互"三层分类法(Lefèvre 等人 2014 年综述确立的框架,至今仍是组织整个预测领域的主轴)。这是一张与具体网络结构无关、与年代无关的全景地图:它问的不是"用 LSTM 还是 Transformer",而是"这个模型到底假设了未来由什么决定"。

4.2.1 为什么需要一个正交于"网络结构"的分类轴

读 §4.1 时你可能已经隐隐感到一个困惑:Social LSTM 和 Trajectron++ 都用 LSTM,但前者只池化邻居、后者还吃地图和动力学;MultiPath 和 MTR 都做 anchor/query,但一个用 CNN 一个用 Transformer。如果只按"用什么网络"分类,会把建模深度天差地别的方法混为一谈。

所以我们需要第二根轴。这根轴问的是一个更本质的问题:模型把"未来轨迹"看成由哪些因素决定的函数? 答案有三个递进的层次:

  • 只由"我自己的运动状态"决定 → 物理感知(physics-based)。未来 = f(我的位置、速度、加速度、转向角)。
  • 还由"我打算做什么机动/我的意图"决定 → 机动/意图感知(maneuver/intention-aware)。未来 = f(我的状态, 我的离散意图如"左转")。
  • 还由"周围所有人打算怎么动、以及我们如何相互影响"决定 → 交互感知(interaction-aware)。未来 = f(我的状态, 所有智能体的状态与意图, 它们之间的相互响应)。

这三层是严格递进的包含关系:交互感知模型内部往往也在做意图推断,意图感知模型内部往往也在做运动学外推。它们不是互斥的三个流派,而是建模野心的三个刻度。Lefèvre 等人 2014 年那篇被引数千次的综述(《A survey on motion prediction and risk assessment for intelligent vehicles》)正是用这三层组织了深度学习时代之前的全部工作,而这个框架的生命力在于——深度学习时代的方法仍然落在这三层里,只是每一层的实现工具从手工模型换成了神经网络。

本质洞察(三层分类的真正含义是"未来的不确定性来自哪里"):物理层假设不确定性主要来自传感器噪声与运动学外推误差——只要状态估计准,短期外推就准。机动层承认还有一层离散决策的不确定性——同一状态下司机可能选左转也可能选直行,这是连续运动学无法刻画的"分岔"。交互层再加一层博弈的不确定性——我的未来取决于你怎么动、你的未来又取决于我怎么动,这是一个互相纠缠的耦合系统。每往下一层,模型承认的不确定性来源就多一种,能预测的时间跨度就更长,但需要的信息与算力也更多。理解了这一点,你看任何一篇预测论文,都能一眼定位它"承认了几种不确定性"。

下面逐层拆解。每一层我们都回答四个问题:输入是什么、输出是什么、典型方法、适用与失效场景

4.2.2 第一层:物理感知(physics-based)——把车当成一个会惯性滑行的质点

核心假设:智能体会大致沿着其当前运动学状态"惯性地"演化下去。未来轨迹是当前状态在运动学/动力学模型下的外推。

输入:目标智能体自身的运动状态——位置、速度、加速度、航向角、角速度。不看地图、不看邻居、不推断意图。

输出:通常是一条确定性轨迹(或一个随时间发散的高斯不确定性椭圆)。

典型方法: - 恒速/恒加速度模型(CV/CA, Constant Velocity / Constant Acceleration):最朴素的外推。设当前位置 \(\mathbf p_0\)、速度 \(\mathbf v_0\)、加速度 \(\mathbf a_0\),则未来位置 \(\mathbf p(t)=\mathbf p_0 + \mathbf v_0 t + \tfrac12 \mathbf a_0 t^2\)(CV 即令 \(\mathbf a_0=0\))。这是一条直线/抛物线外推。 - 恒转率模型(CTRV / CTRA, Constant Turn Rate and Velocity/Acceleration):考虑车辆转弯时的圆弧运动学。状态含航向 \(\theta\) 与角速度(转率)\(\omega\),外推为 \(\theta(t)=\theta_0+\omega_0 t\),位置沿圆弧演化 \(x(t)=x_0+\tfrac{v_0}{\omega_0}[\sin(\theta_0+\omega_0 t)-\sin\theta_0]\)\(\omega_0\neq0\))。它比 CV 更贴合弯道——因为它承认"车在转"。 - 卡尔曼滤波(Kalman Filter)及其变体(EKF/UKF):用一个运动学模型做状态预测、用观测做状态更新,输出带协方差的预测分布。它的"预测-更新"两步循环里,预测步把上述运动模型套上去、协方差按过程噪声发散,更新步用新观测收缩协方差。这是物理层的"集大成者",至今仍是工业界短时预测与多目标跟踪的标配。 - 蒙特卡洛/高斯过程外推:用采样或核方法刻画外推的不确定性发散。

多视角理解(物理模型的"不确定性"长什么样):物理层不是只输出一条线——它输出的是一个随时间发散的不确定性椭圆。卡尔曼滤波的协方差 \(P(t)\) 随预测时长增长(\(P_{k+1}=F P_k F^\top + Q\)\(Q\) 是过程噪声),几何上就是预测位置周围的"误差椭圆"越往后越大。这是物理层诚实的地方——它明确告诉你"我对 0.5 秒后挺有把握、对 3 秒后几乎没把握"。像/不像:像在于都用高斯刻画不确定性;不像在于物理层的不确定性是单峰发散的(一个越来越大的椭圆),而它无法表达"要么左转要么右转"这种多峰不确定性——这正是 §4.2.3 意图层要补的。

对比性思维(CV 模型不是"过时的玩具",而是一个被严重低估的强基线):很多人以为物理模型是深度学习碾压前的"史前遗物"。恰恰相反——在自动驾驶预测领域有一个著名的、令研究者尴尬的实证结论:在 Argoverse 等数据集的相当一部分场景上,一个简单的恒速模型(CV)的 minADE 能逼近甚至打平许多复杂的深度网络。Schöller 等人 2020 年那篇《What the Constant Velocity Model Can Teach Us About Pedestrian Motion Prediction》就是专门论证这件事的。原因是:数据集里大量样本是"直行/匀速跟车"这种弱交互、强惯性的平凡场景,物理外推已经够用;深度网络的优势只在少数强交互、需要长时推断的样本上才显现,而这些样本被平均进总指标后被稀释了。这个结论是理解 §4.5"指标为何会骗人"和 §4.6"长尾问题"的第一把钥匙——平均指标掩盖了长尾,而长尾才是真正需要交互建模的地方。

适用场景:极短时预测(<1 秒)、高速公路匀速跟车、多目标跟踪的运动先验、作为更复杂模型的"兜底"和"健全性检查(sanity check)"。

失效场景:任何需要"拐弯抹角"的地方——路口(车要按意图转向,物理外推会把左转车预测成冲出路口)、汇入/变道(需要交互)、长时预测(外推误差随时间平方发散)。一句话:物理模型在"车按惯性走"时无敌,在"车按脑子走"时失效。

本质洞察(物理层在现代系统里的真正角色:不是"主力",而是"地基与守门员"):初学者会问"既然物理层这么多失效场景,深度学习时代还要它干嘛?"答案是——物理层在现代系统里退居幕后,但扮演两个不可替代的角色。① 地基(动力学约束):如 §4.3.2 的 Trajectron++ 把动力学积分焊进输出端——深度模型负责"预测去哪",物理模型负责"保证轨迹开得出来"。② 守门员(兜底与健全性检查):当深度模型在长尾/分布漂移场景输出离谱预测时(§4.6.3),一个简单的物理外推可以作为"健全性下界"——"无论深度模型说什么,至少这辆车不会瞬移、不会反向加速到 200 km/h"。在安全关键系统里,这种"用简单可信的物理模型给复杂黑箱模型兜底"是常见且明智的设计。所以物理层不是被淘汰,而是从'主力预测器'转型为'地基约束 + 安全守门员'——它的可信性(无需训练、行为可预测)恰恰是黑箱深度模型最缺的,于是二者互补。理解这个角色转型,你才不会犯"有了深度学习就抛弃物理模型"的错——恰恰相反,越是安全关键,越需要物理层这个"最后的理智"。

4.2.3 第二层:机动 / 意图感知(maneuver / intention-aware)——先猜"他想干嘛",再画轨迹

核心假设:智能体的未来由一个离散的高层决策(机动/意图)主导,给定意图后,轨迹才在运动学层面展开。所以预测应当分两步:先推断意图(这是个分类问题),再在意图条件下回归轨迹(这是个回归问题)。

输入:目标自身状态 + 地图/车道结构(意图只有放在车道拓扑里才有意义——"左转"是相对于路口的)。通常还包括一小段历史轨迹(从历史里读出"他正在减速、似乎要变道"的征兆)。

输出:一组离散意图的概率分布(如 P(直行)=0.6, P(左转)=0.3, P(右转)=0.1),以及每个意图下的轨迹。这天然就是多模态的——一个意图一个模态。

典型方法: - 机动分类 + 轨迹回归(经典两段式):先用一个分类器判断 lane-keeping / lane-change-left / lane-change-right / turn 等机动类别,再用对应的运动模型或回归头生成轨迹。Deo 与 Trivedi 的 Convolutional Social Pooling(CS-LSTM, 2018) 是经典代表——它显式预测 6 类机动(横向 3 类 × 纵向 2 类)的概率。 - 意图作为隐变量/目标点(goal-conditioned):把"意图"具体化为一个目标点/目标车道TNT(Target-driveN Trajectory, CoRL 2020) 先预测一组候选目标点,再 condition 在目标点上回归轨迹、最后打分排序;DenseTNT(§4.1.4) 把候选目标点撒密、做成 anchor-free。这是"意图层"在深度学习时代最主流的化身——目标点就是意图的几何编码。 - anchor 轨迹即意图原型:MultiPath 的 anchor、MTR 的 motion query,本质上都是把"典型机动模式"预置成原型,预测退化为"选原型 + 微调"。

本质洞察(goal-conditioned 的威力在于"先定终点、再连过程"——把难问题分解成两个易问题):TNT 这类"先预测目标点、再回归到目标点的轨迹"的范式,为什么比"直接回归整条多模态轨迹"更稳更准?因为它做了一次关键的问题分解:直接预测"一条完整的未来轨迹分布"是个高维、强多模态的难题(轨迹是几十个点,模态弥散);而"预测车未来会到哪个点(goal)"是个低维得多、且被地图强约束的子问题(目标点基本落在车道上,候选有限)。一旦目标点定了,"从当前位置连一条到目标点的合理轨迹"就退化成一个几乎单模态的、good-conditioned 的回归(给定起点终点,中间路径的不确定性大大降低)。这就是"先定终点、再连过程"的分解威力——把'多模态'这个难点集中到低维的 goal 预测上解决,让高维的轨迹回归变简单。这与 §4.2.3 末"离散决策 + 条件回归治 mode averaging"是同一思想的几何版:用"目标点的离散/多样"承载多模态,用"目标条件下的回归"保证轨迹质量。理解这个分解,你就懂了为什么 goal/anchor 范式在车辆预测里如此主流——它把地图的强约束(目标点必在车道上)用到了极致。

多视角理解("意图"在不同流派里的三副面孔): - 分类视角:意图 = 一个离散标签(直行/左转/右转/变道)。优点是可解释、可枚举;缺点是标签体系需要人定义,遇到"先变道再右转"这类组合机动就笨拙。像/不像:像决策树的分支;不像在于真实意图是连续渐变的,硬切成几类会丢信息。 - 目标点视角:意图 = 一个未来要到达的空间位置(goal)。优点是无需人工定义标签、目标点天然嵌在地图几何里;缺点是"到了哪"不完全等于"想干嘛"(同一个目标点可以有激进或保守两种开法)。这是 TNT/DenseTNT 一脉的世界观。 - 隐变量视角:意图 = 一个学出来的隐编码(latent code),不强求语义可读。优点是最灵活、端到端可学;缺点是黑箱、难以验证。CVAE/扩散模型里的隐变量属于此类。 这三副面孔对应了"意图"从人定义的符号几何目标再到学习的隐编码的抽象阶梯——抽象度越高越灵活,可解释性越低。

本质洞察(意图层的贡献是把"连续回归"切成了"离散决策 + 条件回归",从而正面治疗了 mode averaging):回顾前置自测第 2 题——纯回归模型用 MSE 训练会把左转和直行平均成一条撞向隔离带的轨迹。意图层的根治办法是:先承认有几个离散模态,给每个模态单独配一条轨迹,再用分类损失管"选哪个"、回归损失管"画多准"。这样一来,"两条岔路的平均"这个病态解在结构上就被排除了——因为模型从不试图用一条轨迹同时拟合两个意图。这是 anchor 范式、goal 范式之所以稳定的根本原因,也是它们战胜早期 GAN 的关键——它们用"结构化的离散化"替代了"采样的多样性"来表达多模态。

适用场景:路口转向预测、变道预测、任何"高层决策主导"的中等时长(3–5 秒)场景。这是自动驾驶预测的主战场。

失效场景它仍然把每个智能体当成独立决策的个体——它会推断"那辆车想左转",但不会推断"那辆车想左转,但因为我挡在它前面,它会先等我"。一旦未来强烈依赖于智能体之间的相互让行/抢行,意图层就不够了。这把问题推向第三层。

4.2.4 第三层:交互感知(interaction-aware)——承认"你的未来取决于我,我的未来取决于你"

核心假设:在密集、强交互的场景里,任何一个智能体的未来都不能孤立地预测——它是所有智能体的状态、意图、以及它们之间相互响应共同决定的一个联合结果。预测的对象从"单个智能体的边缘分布"升级为"所有智能体的联合分布"。

输入:场景里所有智能体的历史状态 + 完整地图 + 智能体间的关系结构(谁靠近谁、谁该让谁、车道的汇聚/分叉拓扑)。

输出:理想情况下是场景级联合预测(scene-level joint prediction)——一组互相一致、不打架的多智能体未来(K 个"整个场景的未来快照",而非每辆车各自的 K 条轨迹)。退而求其次是带交互建模的边缘预测。

典型方法(这一层几乎就是 §4.3 整章的内容,此处只点名定位): - 社交池化系:Social LSTM、CS-LSTM(手工的、固定半径的交互聚合)——交互建模的"石器时代"。 - 图神经网络系:Trajectron++、VectorNet、LaneGCN(用消息传递在智能体-智能体、智能体-车道之间传播信息)——把交互显式建成图的边。 - 注意力/Transformer 系:Scene Transformer、Wayformer、MTR、QCNet(用自注意力让任意两个实体动态地、数据驱动地交互)——交互建模的"当前 SOTA 形态"。 - 博弈/联合系:GameFormer、DIPP(把交互建模成博弈或联合优化)——与 §4.4 耦合范式、与博弈综述会师。

对比性思维(边缘预测 vs 联合预测——一个常被初学者忽视的致命区别):不是"给每辆车都预测得很准就等于场景预测得很准"。假设路口有 A、B 两车,模型对 A 输出 K 条轨迹、对 B 也输出 K 条轨迹,每条都很贴合各自真值——这叫边缘预测(marginal prediction)。但灾难在于:A 的第 1 条最优轨迹和 B 的第 1 条最优轨迹可能在时空上撞在一起(两车都预测自己先过路口)!因为它们是独立预测的,没人保证它们"在同一个未来里能自洽"。联合预测(joint prediction) 则强制输出 K 个"整体场景未来",每个未来里所有车的轨迹都互相兼容(A 过则 B 让)。这个区别在 Waymo Open Motion 数据集里被正式区分为 marginal track 与 interactive/joint track 两条赛道,评估指标也不同。理解这个区别,是理解 §4.1.4"Scene Transformer 为何要统一 marginal/joint"和 §4.5 评估口径的关键。

一个具体的碰撞反例(把"边缘准、联合错"钉死)。无信号灯十字路口,A 从南向北、B 从西向东,几乎同时抵达路口中心。真实世界里二者必有一方先行(设真值是 A 先过、B 减速)。一个边缘预测器可能这样输出: - 对 A:最高概率模态"匀速直行先过"(概率 0.7)——与真值一致,A 的 minADE 很低。 - 对 B:最高概率模态"匀速直行先过"(概率 0.6)——B 单独看也合理(B 确实可能抢行),B 的 minADE 也不高。

于是两车各自的 minADE 都很漂亮。但把两个"最高概率模态"拼在同一个未来里:A 匀速过 + B 匀速过 → 二者在路口中心精确相撞!这是一个物理上不可能、却被边缘预测"各自最优"地预测出来的未来。下游规划器若取两车的 top-1 预测,会看到一个"必然相撞"的幻象,要么吓得 frozen、要么做出诡异规避。联合预测则永远不会输出这个组合——它的每个场景模态都自洽(模态1:A过B让;模态2:B过A让),绝不会让两个"我先过"同时成立。

本质洞察(边缘 vs 联合的差异,数学上是"边缘分布之积 ≠ 联合分布"):这个反例的根,是概率论的一个基本事实——边缘分布的乘积不等于联合分布,除非二者独立。边缘预测器给出 \(p(\tau_A)\)\(p(\tau_B)\),若你把它们当独立的、取 \(p(\tau_A)\cdot p(\tau_B)\) 的高概率组合,就默认了"A、B 的未来相互独立"——但交互场景里 A、B 的未来强烈相关(一个过另一个就得让),独立假设严重错误。联合预测器直接建模 \(p(\tau_A, \tau_B)\) 这个联合分布,把"A 过则 B 让"的相关性编码进去,于是不会产生独立假设下的碰撞幻象。所以"边缘 vs 联合"不是工程口味,而是"有没有正确建模智能体未来之间的相关性"这个概率论硬问题——这也是 §4.5 为什么要为联合预测单设指标的根本原因。

本质洞察(交互感知的终极形态,必然滑向"预测与规划不可分"):把交互层的逻辑推到极致,会得到一个深刻的结论:如果"他车的未来取决于 ego 怎么动",那么孤立地预测他车在数学上就是不良定义的(ill-posed)——除非你先固定 ego 的计划。 这正是 §4.4 条件预测/联合预测的出发点,也是博弈综述反复强调的"预测即均衡"。换句话说,交互层做到尽头,"预测模块"和"规划模块"之间的墙就必然倒塌——这不是工程选择,而是问题结构的内在要求。你将在 §4.4 看到这堵墙是如何被一步步拆掉的。

4.2.5 三层并非互斥:现代方法是"分层嵌套"的

必须澄清一个常见误解:这三层不是三个互斥的阵营,而是嵌套的能力层级。 一个现代 SOTA 模型(如 MTR、QCNet)同时具备三层能力:

  1. 它在物理层保证输出轨迹动力学可行(Trajectron++ 甚至显式集成了一个动力学积分器,确保预测轨迹满足车辆运动学约束,不会画出物理上开不出来的轨迹);
  2. 它在意图层用 motion query / goal 表达离散多模态;
  3. 它在交互层用注意力建模智能体间的相互影响。

所以当你读论文时,正确的姿势不是问"它属于哪一层",而是问"它在每一层分别做了什么、哪一层是它的创新点"。比如 VectorNet 的创新主要在"如何表示场景以服务交互建模"(介于表示与交互之间),MTR 的创新在"如何用 query 统一意图与交互",而 Trajectron++ 的特色在"把物理层的动力学可行性显式焊进了交互层的 CVAE 里"。

理论-工程桥接(三层分类如何指导你选型):假设你是个机器人工程师,要为一个具体场景选预测方案—— - 仓储 AGV、低速结构化环境、智能体稀疏 → 物理层(卡尔曼滤波)足矣,上深度网络是杀鸡用牛刀,且部署成本(Python→C++)不划算。 - 高速公路 ADAS、变道/跟车为主 → 意图层(机动分类 + 回归)性价比最高,模态少、可解释、易验证。 - 城区路口、汇入、人车混行、强交互 → 必须上交互层(图/Transformer),且要认真考虑 §4.4 的预测-规划耦合,否则会撞上 frozen robot。 这个"按交互强度选层"的决策,比盲目追 SOTA 网络结构重要得多——这正是 R6 工具 D(理论-工程桥接)的要义。

4.2.6 另两根正交分类轴:输入表示与输出形式

"三层建模野心"是组织预测方法最主要的纵轴,但一个完整的分类地图还需要另两根正交的轴——输入怎么表示输出长什么样。同一个交互层模型,可以用栅格输入也可以用向量输入、可以输出确定轨迹也可以输出占据栅格。这两根轴与三层野心、四脉骨干都正交,理解它们才能精确描述一个方法。这也是近年综述(如多维分类框架类工作)一致强调的两个维度。

输入表示(input representation)——场景信息怎么喂进网络

  • 栅格化(rasterized / BEV image):把地图、智能体历史渲染成多通道鸟瞰图(bird's-eye-view),用 CNN 处理。优点:直接复用成熟的 CNN、能融合任意栅格信息(语义、占据);缺点:§4.1.3 已剖析——分辨率与感受野互相掣肘、算力浪费在空白像素、几何精度损失。这是 VectorNet 之前的主流,现仅在某些 BEV 端到端方法里以变体存活。
  • 向量化(vectorized / polyline):把每条车道、每条轨迹表示成折线(点序列),用 GNN/Transformer 处理。优点:稀疏高效、几何精确、直接在语义单元上推理(§4.1.3 的向量化革命)。这是当前主流。
  • 图(graph):节点 + 边的显式关系结构(LaneGCN 的四种关系图)。与向量化常常融合——向量化的 polyline 节点 + 关系边就是一张图。
  • 点云/原始传感器(point cloud / raw sensor):端到端方法(UniAD)里,输入甚至可以是更原始的传感器数据,让网络自己学表示。

输出形式(output representation)——预测结果长什么样

  • 确定性单轨迹(deterministic):一条轨迹。最简单,但有 mode averaging 病(§4.2.3),仅物理层/弱交互可用。
  • 多模态轨迹集 + 概率(multimodal trajectory set):K 条带概率的轨迹。当前最主流的输出形式,minADE/minFDE 正是为它设计的评估(§4.5.3)。
  • 概率分布参数(distribution parameters):直接输出高斯/GMM 的均值协方差(Trajectron++ 输出 GMM)。能解析地表达不确定性。
  • 占据/流场(occupancy / flow):不预测离散智能体的轨迹,而预测整个空间的"未来占据概率"或"运动流场"(Waymo 的 Occupancy Flow 任务)。优点:天然处理"智能体数目不定"、对下游规划友好(规划本就要查"某处未来会不会被占");缺点:丢失了个体身份。
  • 目标点 + 轨迹(goal + trajectory):先输出目标点再回归轨迹(TNT/DenseTNT),是意图层的典型输出。

对比性思维(输出形式的选择,决定了你能用什么指标、对接什么规划器):不是"输出什么都一样、反正都是预测"。输出形式深刻地约束了下游——多模态轨迹集配 minADE/minFDE、对接基于轨迹的规划器(把每条当障碍);占据/流场配占据类指标、对接基于栅格的规划器(直接查占据);分布参数配似然类指标、对接概率规划(如 chance-constrained MPC)。所以选输出形式不是孤立决策,而要与"用什么指标评、对接什么规划器"通盘考虑。这正是 §4.4 耦合与 §4.5 评估的伏笔——输出形式是预测与规划、预测与评估的接口契约

本质洞察(三根正交轴共同定位一个方法:野心 × 工具 × 接口):到此你手里有了三根正交轴——建模野心(物理/意图/交互,§4.2)、骨干工具(四脉,§4.3 将讲)、输入输出接口(本小节)。任何一个预测方法,都是这三根轴上的一个点。VectorNet =(交互层野心 × GNN 工具 × 向量输入/多模态轨迹输出);UniAD =(交互层 × Transformer × 原始传感器输入/端到端中间表示)。用三坐标描述一个方法,远比给它贴一个单一标签精确。 这套"三轴坐标系"是本章交付的核心分析工具——它让你面对任何新论文都能快速、结构化地定位,而非陷入缩写的汪洋。后续每张速查表、每道练习,都在训练你熟练使用这套坐标系。

4.2.7 三层全景速查表

层次 核心假设 输入 输出 承认的不确定性 典型方法 失效场景
物理感知 按运动学惯性演化 自身运动状态 一条轨迹 + 协方差 传感器噪声、外推误差 CV/CA/CTRV、卡尔曼滤波 路口转向、长时、任何交互
机动/意图感知 离散高层决策主导 自身状态 + 地图 意图概率 + 各意图轨迹 + 离散决策分岔 CS-LSTM、TNT/DenseTNT、anchor 强交互让行/抢行
交互感知 联合耦合、相互响应 全场景 + 地图 + 关系 场景级联合多模态 + 博弈耦合 Trajectron++、VectorNet、MTR、GameFormer 长尾、分布漂移(见 §4.6)

本节常见陷阱(覆盖概念混淆类、评估类、选型类):

陷阱一:把"用了 Transformer/GNN"等同于"交互感知"。 现象:看到论文用了图或注意力就断定它建模了交互。根本原因:混淆了"网络结构"和"建模层次"这两根正交的轴——你完全可以用 Transformer 编码单个智能体的历史(纯物理/意图层),不涉及任何智能体间交互。正确做法:判断交互层与否,要看信息是否在不同智能体之间流动(有没有 agent-to-agent 的边/注意力),而非看用了什么算子。

陷阱二:以为"层次越高越好,永远该上交互层"。 现象:不管什么场景都堆最复杂的交互模型。根本原因:忽视了高层模型的代价——数据需求、算力、部署难度、过拟合风险都随层次上升而激增,而弱交互场景根本用不上。后果:仓储 AGV 上跑一个 MTR,既浪费算力又难以 C++ 部署,预测精度还未必比卡尔曼滤波高(因为场景平凡)。正确做法:按 §4.2.5 的"交互强度"选层。

陷阱三:把"边缘预测准"误当成"联合预测准"。 现象:报告每辆车的 minADE 很低就宣称场景预测很好。根本原因:不理解 §4.2.4 边缘/联合的区别——独立预测的多车轨迹可能互相碰撞。后果:下游规划拿到一组自相矛盾的他车轨迹,要么被吓得不敢动(frozen robot),要么基于错误的"碰撞预测"做出诡异决策。正确做法:强交互场景要用联合预测指标(如 Waymo interactive track 的 joint 指标)评估。

本节练习: 1. (分层判断) 给定一个模型描述:"它编码每辆车过去 2 秒的轨迹得到一个特征,再用车道地图约束生成 3 条候选目标车道,分别回归轨迹并打分,但每辆车的预测彼此独立、不交换信息。" 请判断它落在哪一层?它做了意图建模吗?做了交互建模吗?为什么? 2. (强基线反思) 解释为什么"恒速模型在 Argoverse 上 minADE 接近深度网络"这一现象,既不能说明深度网络无用,也不能说明物理模型够用。从"长尾"和"平均指标"两个角度论证。(提示:这道题的答案会在 §4.5、§4.6 展开,先自己想一遍。) 3. (联合一致性) 设计一个最简单的反例场景(两辆车 + 一个路口),说明"两个边缘预测都正确"但"组合起来物理上不可能同时成立"。再说明联合预测如何避免这个问题。 4. (开放) 物理层承认 1 种不确定性、意图层 2 种、交互层 3 种。你能想象"第四种不确定性"吗?(提示:如果连"地图/规则本身"都不确定呢?比如施工改道、临时交警手势。这指向 §4.6 的长尾与基础模型方向。) 5. (三轴坐标) 用 §4.2.6 的"建模野心 × 骨干工具 × 输入输出接口"三轴,为以下两个方法各写一组三坐标:(a) "把地图渲染成 BEV 图、用 CNN 编码、输出一条确定性轨迹";(b) "把车道与轨迹向量化、用注意力建模车车与车道交互、输出 6 条带概率轨迹"。再说明 (a) 为何有 mode averaging 风险而 (b) 没有。 6. (输出形式与下游) §4.2.6 说"输出形式是预测与规划的接口契约"。请分别说明:若预测输出"多模态轨迹集"、"占据/流场"、"分布参数",下游规划器各自最自然的形态是什么(基于轨迹的 / 基于栅格的 / 概率约束的)?这对"选输出形式时要不要先想好对接什么规划器"有什么启示? 7. (物理层守门) §4.2.2 说物理层在现代系统里当"安全守门员"。请设计一个具体的"守门规则":给定深度模型输出的一条他车预测轨迹,你用什么简单的物理检查来判断它"是否离谱到该被否决/降权"?(提示:速度上限、加速度上限、转向率上限、是否瞬移。)

过渡到 §4.3:§4.2 给了你一根"建模到什么层次"的纵轴,但它没回答"用什么神经网络工具去实现这些层次"。同样是交互层,可以用 LSTM 池化、可以用 GNN 消息传递、可以用 Transformer 注意力、可以用扩散去噪——这是另一根正交的轴:骨干网络的技术脉络。下一节我们就沿这根轴,把深度预测模型切成四脉,逐脉讲清它的数学内核、代表作、以及它如何承载 §4.2 的三层能力。


§4.3 深度预测模型四脉:LSTM / GNN / Transformer / 扩散 ⭐⭐⭐

本节解决的问题:§4.2 的三层是"建模野心"的纵轴,本节是"实现工具"的横轴。一篇预测论文的骨干网络,几乎总能归入四条技术脉络之一:循环网络(LSTM 系)、图神经网络(GNN 系)、Transformer(注意力系)、生成模型(GAN/CVAE/扩散系)。本节逐脉拆解——它的数学内核是什么、它天然擅长建模什么、它的代表作、它被下一脉取代的原因。读完你应能拿到任意一篇预测论文,一眼定位它的骨干血统,并预判它的优缺点。

4.3.1 四脉总览:一张"工具→擅长什么→被谁取代"的地图

在深入每一脉之前,先建立全局框架。四脉不是平行无关的四个选项,而是一条互相取代、能力叠加的演化链——后一脉往往是为了解决前一脉的结构性缺陷而兴起,但前一脉的思想常被吸收进后一脉。

脉络 数学内核 天然擅长 结构性短板 代表作 兴起年代
LSTM 系 循环隐状态 \(h_t=f(h_{t-1},x_t)\) 编码变长时序、捕捉运动节律 串行慢、长程衰减、交互靠手工池化 Social LSTM、CS-LSTM、Trajectron++ 2016–
GNN 系 消息传递 \(h_v^{(l+1)}=\text{UPD}(h_v,\text{AGG}_u\text{MSG}(h_u))\) 显式建模关系/拓扑、归纳偏置强 过平滑、感受野受限、固定图结构 VectorNet、LaneGCN 2019–
Transformer 系 自注意力 \(\text{softmax}(QK^\top/\sqrt d)V\) 全连接长程交互、统一 token 抽象 算力随实体数平方、需大数据 Scene Transformer、MTR、Wayformer、QCNet 2021–
生成系(GAN/CVAE/扩散) 从分布采样而非回归 表达多峰分布、生成多样样本 GAN 不稳、扩散推理慢 Social GAN、Trajectron++(CVAE)、MotionDiffuser 2018–

本质洞察(四脉其实在回答两个正交的问题,而非一个):初学者容易把四脉当成"四选一的骨干",但它们实际回答的是两个不同维度的问题。前三脉(LSTM/GNN/Transformer)回答"如何编码场景、如何建模交互"——这是表示与关系的问题;第四脉(生成系)回答"如何表达和生成多模态输出"——这是输出分布的问题。这两个维度正交!所以一个真实模型往往是"两脉的乘积":Trajectron++ = LSTM(编码)× CVAE(生成)MotionDiffuser = Transformer(编码)× 扩散(生成)。理解这个"编码脉 × 生成脉"的笛卡尔积,你就不会再纠结"Trajectron++ 到底算 LSTM 系还是生成系"——它两者都是,因为这是两个轴。后文讲第四脉时会反复强调:生成系是"输出端的换头",可以嫁接到任意编码骨干上。

下面逐脉展开。每一脉我们讲:数学内核 → 如何承载三层能力 → 代表作剖析 → 结构性短板 → 如何被下一脉修补

对比性思维(四脉的"取代"为何只发生在编码这条轴上,而生成这条轴是"并存"):这是一个易被忽略却很重要的不对称。编码脉(前三脉)是'取代式'演化——Transformer 来了,新工作基本不再用 LSTM/纯 GNN 做主干(因为注意力在表示与交互上全面更优)。但生成脉(第四脉)是'并存式'共生——GAN 基本被弃用(不稳),但 anchor/query(判别式)、CVAE、扩散至今并存,因为它们各有适用场景(anchor 适合模态可枚举的车辆、扩散适合复杂多峰、CVAE 训练稳)。为什么两条轴的命运不同?因为编码是"谁更强"的问题(有明确优劣),生成是"谁更适合这个分布形状"的问题(依场景而定)。理解这个不对称,你读论文时就会有不同的预期:看到主干你预期"越新越好"(编码取代),看到输出头你预期"看场景选"(生成并存)。这也精炼了 §4.3 的选型逻辑——主干跟着 SOTA 走问题不大,输出头则要按"你的多模态长什么样"来选。

4.3.2 第一脉:循环网络(LSTM 系)——用隐状态把历史"卷"成一个向量

数学内核。循环神经网络(RNN)及其改良版长短期记忆网络(LSTM)处理时序的方式是:维护一个隐状态 \(h_t\),每读入一个新观测 \(x_t\) 就更新它——

\[ h_t = f(h_{t-1}, x_t), \qquad \text{LSTM: } (h_t, c_t) = \text{LSTM}(h_{t-1}, c_{t-1}, x_t) \]

LSTM 在普通 RNN 之上加了门控机制(遗忘门、输入门、输出门)和一条细胞状态 \(c_t\) 的"信息高速公路",缓解了普通 RNN 的梯度消失,使它能记住更长的历史。完整的 LSTM 更新(理解后文"门控决定记什么"的基础)为:

\[ \begin{aligned} f_t &= \sigma(W_f[h_{t-1}, x_t] + b_f) &\text{(遗忘门:丢弃旧记忆的多少)}\\ i_t &= \sigma(W_i[h_{t-1}, x_t] + b_i) &\text{(输入门:写入新信息的多少)}\\ \tilde c_t &= \tanh(W_c[h_{t-1}, x_t] + b_c) &\text{(候选记忆)}\\ c_t &= f_t \odot c_{t-1} + i_t \odot \tilde c_t &\text{(细胞状态:旧记忆衰减 + 新记忆写入)}\\ o_t &= \sigma(W_o[h_{t-1}, x_t] + b_o) &\text{(输出门:暴露记忆的多少)}\\ h_t &= o_t \odot \tanh(c_t) &\text{(隐状态:受控暴露的记忆)} \end{aligned} \]

其中 \(\sigma\) 是 sigmoid(输出 0–1 的门控权重)、\(\odot\) 是逐元素相乘、\([\cdot,\cdot]\) 是向量拼接。关键在那条 \(c_t = f_t\odot c_{t-1} + i_t\odot\tilde c_t\)——它是一条加性的更新(而非普通 RNN 的连乘),梯度沿这条"高速公路"反传时不会因连乘而指数衰减,这正是 LSTM 缓解梯度消失、能记更长历史的数学原因。直觉上,\(h_t\) 是"把从开头到 \(t\) 时刻的整段历史压缩成的一个定长向量"——它"记住了"这个智能体过去的运动节律(在加速?在转弯?刚变道完?),而三个门控决定了"哪些历史值得记、记多久、何时调用"。

本质洞察(门控的本质是"可学习的、随输入变化的记忆读写策略"):普通 RNN 的问题是"无脑地把所有历史等权混进隐状态",于是远的被近的冲淡(梯度消失)。LSTM 的门控把"记什么、忘什么"变成数据驱动、随当前输入动态调整的决策——遇到"刚刚发生一次急刹"这样的关键事件,输入门会大开把它写进细胞状态、遗忘门会保护它不被冲掉,于是这个关键事件能影响很久之后的预测。这与卡尔曼滤波"用固定的过程模型混合新旧信息"形成对比:LSTM 的"混合策略"本身是学出来的、非线性的、随情境变化的。这个"可学习的记忆管理"思想,是 LSTM 相对物理层(§4.2.2 卡尔曼)的本质进步,也是它在序列建模统治多年的核心。

多视角理解(LSTM 隐状态 \(h_t\) 到底"记住了什么"): - 压缩视角\(h_t\) 是历史序列的有损压缩——把变长的过去压成定长向量,必然丢信息,门控决定丢哪些、留哪些。像/不像:像视频的关键帧摘要;不像在于它是连续向量而非离散帧,且压缩规则是学出来的。 - 状态机视角\(h_t\) 是一个"运动状态机"的内部状态——它隐式编码了"该车当前处于什么运动模式"。这与卡尔曼滤波的状态有神似之处,区别是 LSTM 的状态转移 \(f\) 是神经网络学出来的、非线性的,而卡尔曼是手工设定的线性高斯模型。这正是 LSTM 相对物理层(§4.2.2)的进步:用数据学出运动模型,而非手工设定。 - 瓶颈视角\(h_t\) 是一个信息瓶颈——所有未来预测都必须通过这一个定长向量来获取历史信息。这个瓶颈在长序列下会成为短板(早期信息被后期覆盖),这正是注意力机制(第三脉)要打破的——注意力让解码时可以"回看"任意历史时刻,绕过瓶颈。

如何承载三层能力。LSTM 本身只是个时序编码器,对应不上任何一层——它需要"配件"才能爬层: - 物理层:单独一个 LSTM 编码自身历史、解码自身未来,就是"用神经网络做的运动学外推"。 - 意图层:在 LSTM 编码后接一个分类头预测机动类别(CS-LSTM 的做法),或接 goal 预测。 - 交互层:这是 LSTM 系的痛点——LSTM 天生只处理"一个序列",要建模"多个智能体的相互影响",必须额外发明一个跨智能体的信息聚合机制。Social LSTM 的答案是 social pooling(§4.1.2,把邻居隐状态按空间位置摆进网格再聚合),CS-LSTM 的答案是 convolutional social pooling(用卷积层处理这个 social 网格,比直接求和保留更多空间结构)。

对比性思维(social pooling 的"手工"本质——它为什么注定被取代):social pooling 不是"学出来的交互",而是"手工设计的交互聚合规则"——它预先规定了"交互 = 把固定半径内、按相对位置排进网格的邻居隐状态求和/卷积"。这套规则有三个写死的假设:① 交互范围由固定网格半径决定(远处高速逼近的车被排除在网格外);② 各向同性(正前方的车和正侧方的车按同样规则聚合,不区分"谁更威胁我");③ 聚合方式是求和/卷积(无法学出"该重点关注谁")。这三个写死的假设,正是 GNN(可学习的边)和 Transformer(可学习的注意力权重)要逐一解放的——这就是为什么交互建模会从 pooling 演化到消息传递再到注意力。 不是 LSTM 本身不行,而是"手工池化"这个交互配件不行。

代表作剖析

  • Social LSTM(CVPR 2016):第一个把"社交"塞进神经网络的工作(§4.1.2 已详述),social pooling 的鼻祖。历史地位 > 现实性能。
  • Convolutional Social Pooling / CS-LSTM(Deo & Trivedi, CVPRW 2018):把 social grid 用卷积处理,同时显式输出 6 类机动(横向 3 × 纵向 2)的概率——是"意图层 + 交互层"在 LSTM 框架下的经典融合,长期是高速公路预测(NGSIM 数据集)的标准基线。
  • Trajectron++(ECCV 2020):LSTM 系的集大成与天花板,值得展开。

Trajectron++ 深剖(LSTM × CVAE × 动力学积分的三合一)。Trajectron++ 是一个"模块化、图结构的循环模型",它把三脉的思想优雅地缝在一起,是理解"编码脉 × 生成脉"笛卡尔积的最佳范例:

  1. 编码(LSTM 系):给每个智能体一个 LSTM 编码其历史。关键创新在如何编码交互——它不再用 Social LSTM 的网格池化,而是把场景建成图:对每个智能体,先按"语义类别"(车/人/自行车)分组聚合邻居的边特征,每类边用一个权重共享的 LSTM 编码,再用一个加性注意力(additive attention) 把不同类型的边编码融合。这已经带有 GNN(按边聚合)和注意力(加权融合)的雏形——Trajectron++ 站在了从 LSTM 池化向 GNN/注意力过渡的节点上。
  2. 生成(CVAE 系):它不是确定性回归,而是用条件变分自编码器(CVAE)——引入一个离散隐变量 \(z\)(可解释为"高层意图/模态"),从 \(p(z|\text{历史})\) 采样不同的 \(z\) 就生成不同的未来轨迹。输出是一个高斯混合模型(GMM) 的位置分布。这正是它表达多模态的方式——离散隐变量天然对应多模态,且比 GAN 稳定。
  3. 动力学积分(物理层焊接):这是 Trajectron++ 最独特的贡献——它不直接回归位置,而是回归控制量(加速度、转向率),再通过一个可微的动力学积分器(车辆用自行车模型/单车模型,行人用单积分器)把控制量积分成轨迹。这保证了输出轨迹动力学可行(dynamically feasible)——绝不会画出物理上开不出来的轨迹(如车辆瞬间横移)。这是把 §4.2.2 物理层的运动学约束硬编码进了网络输出端。

对比性思维("回归位置"vs"回归控制量再积分"——一个深刻的输出端设计选择):不是"反正都输出轨迹,怎么输出无所谓"。直接回归位置:网络输出每个时刻的 (x,y),自由度极大——但这个自由度是"有害的",因为没有任何约束阻止网络输出物理上不可能的轨迹(相邻两点距离超过车辆极限速度、横向瞬移、急转超过转向极限)。回归控制量再积分:网络只输出加速度/转向率,再用车辆运动学模型积分出位置——于是输出天然满足动力学约束(因为它是被一个真实的运动学模型"积"出来的,而非凭空"画"出来的)。这个选择的代价是网络要学的是控制量(间接),好处是输出永远可行。像/不像:像在于二者最终都给出轨迹;不像在于前者把"可行性"交给网络去隐式学习(常学不好),后者把"可行性"硬编码进积分器(保证满足)。这与 §4.3.4-bis 的"榨取对称性"是同一种哲学——把已知的物理结构(运动学)作为约束硬编码进架构,而非让网络从数据里苦学。对要上车的工程师,这个"输出可行轨迹"的保证极其宝贵——它意味着预测器永远不会给规划器一条"开不出来"的他车轨迹去白白避让。

本质洞察(Trajectron++ 揭示了"好的预测模型是三层能力的乘积,而非某一层的极致"):Trajectron++ 同时在三层发力——物理层(动力学积分保证可行)、意图层(离散隐变量 \(z\) 表达多模态)、交互层(图结构 + 注意力聚合邻居)。它的成功不是因为某个组件特别强,而是因为它把三层正确地组合起来,且每个组件都选了"恰到好处"的实现(交互不用最复杂的全注意力,多模态不用最难训的 GAN,可行性用最直接的积分器)。这呼应了 §4.2.5 的判断——现代 SOTA 都是分层嵌套的。Trajectron++ 至今仍是 nuScenes 预测任务的常用强基线,正是因为这种"均衡的工程美学"。

结构性短板:① 串行计算——隐状态必须一步步递推,无法并行,长序列下训练/推理慢;② 长程依赖衰减——尽管 LSTM 缓解了梯度消失,几十步以上的依赖仍会衰减;③ 交互靠外挂——核心短板,交互建模必须靠 pooling/图等额外配件,且这些配件(尤其 pooling)有写死的假设。这三点把接力棒交给了下一脉。

过渡:LSTM 系的最大痛点是"交互建模靠手工外挂"。如果交互的本质是"智能体之间的关系",那为什么不直接用一种天生为关系而生的网络结构呢?这就是图神经网络——它把"谁和谁有关系"显式建成图的边,让信息沿边自然流动。

4.3.3 第二脉:图神经网络(GNN 系)——把"交互"显式建成图的边

数学内核。图神经网络(GNN)处理的对象是图 \(G=(V,E)\)——节点 \(V\)(智能体、车道段)、边 \(E\)(空间/语义关系)。它的核心操作是消息传递(message passing):每个节点反复地"收集邻居发来的消息、更新自己的状态"——

\[ h_v^{(l+1)} = \text{UPDATE}\Big(h_v^{(l)},\ \underset{u\in\mathcal N(v)}{\text{AGGREGATE}}\ \text{MESSAGE}(h_u^{(l)}, h_v^{(l)}, e_{uv})\Big) \]

其中 MESSAGE 决定"邻居 \(u\)\(v\) 发什么"、AGGREGATE 决定"\(v\) 怎么汇总多个邻居的消息"(求和/均值/最大/注意力加权)、UPDATE 决定"\(v\) 怎么用汇总消息更新自己"。堆叠 \(L\) 层消息传递,信息就能传播 \(L\) 跳——第 1 层只看直接邻居,第 2 层看到邻居的邻居,以此类推。

多视角理解(消息传递 vs social pooling——同一件事的"可学习版"): - 泛化视角:social pooling 其实是消息传递的一个写死的特例——它的"图"是"固定半径内的空间近邻",它的 AGGREGATE 是"按网格位置求和",它的 MESSAGE 是"直接传隐状态"。GNN 把这三者都变成可学习/可设计的:边可以按语义(同车道/相邻车道)而非仅按距离定义,AGGREGATE 可以是注意力加权,MESSAGE 可以是一个 MLP。像/不像:像在于都是"聚合邻居信息";不像在于 GNN 的"邻居关系"和"聚合方式"都从数据/设计中来,而非写死。 - 关系归纳偏置视角:GNN 的核心优势是强归纳偏置(inductive bias)——它把"交互沿关系结构传播"这个先验直接编码进了架构。对于交通这种"本质上是图"的场景(智能体在车道图上运动、相互之间有明确的让行关系),这个归纳偏置极其契合,使 GNN 比 LSTM 池化数据效率更高、泛化更好。 - 置换不变视角:GNN 对节点顺序天然不敏感(AGGREGATE 用对称函数)——这正确反映了"邻居没有固定顺序"的物理事实。而 LSTM 池化要把邻居排进固定网格,引入了人为的顺序/位置假设。

如何承载三层能力。GNN 是为交互层量身定制的,但它也能覆盖另外两层: - 交互层(主场):节点=智能体,边=交互关系,消息传递天然建模"谁影响谁"。这是 GNN 的核心价值。 - 表示层(VectorNet 的关键拓展):GNN 不仅能建模"智能体-智能体"交互,还能把地图本身建成图——把每条车道折线(polyline)的每个向量段当节点,用 GNN 编码地图几何。这是 VectorNet 的核心思想(§4.1.3)。 - 意图层:在 GNN 输出的节点特征上接 goal/anchor 预测头。

代表作剖析

  • VectorNet(CVPR 2020):§4.1.3 已详述其历史地位(向量化革命)。从骨干血统看,它是两级 GNN:第一级 polyline subgraph(局部 GNN)把每条折线(一条车道、一条轨迹)内部的向量段聚合成一个 polyline-level 节点特征;第二级 global interaction graph(全连接 GNN,实为自注意力)建模所有 polyline 节点之间的关系。VectorNet 是 GNN 系向 Transformer 系过渡的关键节点——它的第二级"全连接图"实际上已经是注意力了。

本质洞察(VectorNet 的"两级层次"是一种深刻的'分而治之',被后续几乎所有方法继承):为什么 VectorNet 要分两级,而不是把所有向量段一股脑塞进一个大图?因为这对应了场景的天然层次结构——"向量段"组成"折线(一条车道/一条轨迹)","折线"再组成"场景"。第一级 polyline subgraph 在局部(一条折线内部)聚合,回答"这条车道/轨迹整体长什么样";第二级 global graph 在全局(折线之间)聚合,回答"这些车道和轨迹如何相互关系"。这种"先局部编码成语义单元、再全局建模单元间关系"的两级结构,是一种极其通用的分而治之——它把"几百个向量段两两交互"(算力爆炸)降维成"先各折线内部聚合(局部、便宜)、再几十个折线节点间交互(全局、可承受)"。后续方法几乎都继承了这个层次:MTR、Wayformer 等都是"先把每个 agent/polyline 编码成一个 token,再让 token 间注意力"。理解这个两级层次,你就理解了为什么向量化方法既高效又能建模长程交互——它用层次结构同时驯服了算力与关系建模。这也呼应 §4.3.4-bis 查询中心"每元素编码一次"的可复用思想——都是在对抗"实体两两交互的平方爆炸"。 - LaneGCN(Liang 等, ECCV 2020):另一个里程碑,把"车道图"建模做到极致。它构建了四种关系图——actor-to-lane(车看路)、lane-to-lane(车道拓扑:前驱/后继/左邻/右邻)、lane-to-actor(路影响车)、actor-to-actor(车车交互),用专门的图卷积在这四种关系上传播信息。LaneGCN 证明了精细的车道拓扑建模能大幅提升预测精度,是 Argoverse 早期榜单的强者。

多视角理解(LaneGCN 的四种关系图——一次"把领域知识翻译成图结构"的范例):LaneGCN 的四种图不是随意设计,每一种都编码了一条交通领域常识: - lane-to-lane(车道拓扑):编码"车道之间如何连接"——这条车道的后继是哪条、左邻是哪条。这让模型一上来就懂"车只能沿连通的车道走、变道只能去相邻车道",无需从数据里苦学路网结构。 - actor-to-lane(车看路):编码"每辆车在哪条车道上、离车道中心多远"——把车"绑定"到它所在的车道几何,使模型理解"这辆车受哪条车道约束"。 - lane-to-actor(路影响车):把车道的几何信息(曲率、走向)传回给车,影响它的预测——"前方车道要左弯,所以这辆车大概率也要左转"。 - actor-to-actor(车车交互):才是传统意义的"社交交互"——建模车与车的相互影响。 本质洞察在于:LaneGCN 把"交互建模"从"只有车车交互"(Social LSTM 时代)扩展成了"车-车、车-道、道-道、道-车四种关系的协同"——它认识到车辆预测里,'车与地图的交互'和'车与车的交互'同等重要(因为车被车道牢牢约束,§4.1.7 行人 vs 车辆的差异)。这种"把领域知识显式翻译成不同边类型"的设计哲学,正是 GNN 系"重先验"世界观(§4.3.3 本质洞察)的最佳体现,也活在了今天 Transformer 的"异构边类型注意力"里(§4.1.7 合流)。

对比性思维(VectorNet/LaneGCN 的"把地图建成图" vs 早期的"把地图渲染成图像"):不是"用 CNN 看一张地图图片",而是"把地图的每条车道当成图的节点直接推理"。前者(栅格化 + CNN)要让 CNN 从像素里"重新发现"车道的连接关系,浪费在空白像素上,且分辨率与感受野互相掣肘(§4.1.3);后者(向量化 + GNN)直接把"这条车道连着那条车道"作为图的边喂进去,模型一上来就知道拓扑。这是"让模型重新发现结构" vs "把结构作为先验喂进去"的根本分野——GNN 系选择了后者,这正是它数据效率高的原因。

本质洞察(GNN 系的核心信念是"交通的本质是图,就该用图来建模"):GNN 系不是"恰好用了图",而是持有一个明确的世界观——交通场景在本质上就是一张图:智能体是节点、车道是节点、它们之间的空间与拓扑关系是边。这个世界观的力量在于把大量领域先验(车道连接、让行关系、可达性)直接编码进了架构,而不依赖网络从数据里苦苦学习。这与"万物皆 token、让注意力自己学关系"的 Transformer 世界观形成鲜明对比(下一脉)——前者重先验,后者重容量。理解这场"先验 vs 容量"之争,是理解 GNN 为何在小数据上常胜、在大数据上被 Transformer 反超的关键。

结构性短板:① 过平滑(over-smoothing)——堆太多层消息传递后,所有节点特征会趋同(因为反复平均邻居),导致"路口对面的车"虽然能传到信息但特征已被抹平,无法有效建模长程交互;② 感受野与深度的矛盾——要建模 \(L\) 跳外的交互就得堆 \(L\) 层,但层数一多就过平滑,于是 GNN 的有效感受野受限;③ 图结构需预定义——边怎么连(多大半径算邻居、车道怎么算相邻)需要人工设计,不够灵活。这三点——尤其是"长程交互"的瓶颈——正是 Transformer 的全连接注意力要解决的。

多视角理解("过平滑"为何是 GNN 绕不开的诅咒——一个直觉解释):过平滑听起来抽象,但直觉很清晰。消息传递每一层的核心动作是"用邻居特征更新自己",常含一个平均/聚合操作。反复平均的数学后果,是让所有节点趋向同一个值——就像把一杯热水和一杯冷水反复倒来倒去,最终温度必然趋同。堆 \(L\) 层消息传递,相当于做 \(L\) 轮平均,节点特征逐渐失去区分度,最后"路口这边的车"和"路口对面的车"的特征糊成一团,模型再也分不清谁是谁。这就制造了一个两难:要建模"路口对面"这种远距离交互,就得堆很多层(让信息传那么多跳);但层一多就过平滑、特征糊掉,等于信息传到了却"认不出"。GNN 因此被卡在"传得到"与"分得清"的矛盾里。Transformer 的全连接注意力为什么能破局?因为它一层就能让任意两节点直接交互(无需堆层传多跳),从根上避开了"为了传远而堆层、堆层导致过平滑"的恶性循环。理解过平滑这个诅咒,你就理解了为什么"长程交互"成了 GNN 让位给 Transformer 的决定性短板——不是 GNN 不想建模长程,而是它一建模长程就把自己'平滑'瞎了。

过渡:GNN 用"边"显式建模了关系,但"边怎么连"要预定义,且堆层建模长程交互会过平滑。如果我们想要"任意两个实体一步就能交互、且交互权重完全由数据学出来",该怎么办?答案是把图变成全连接、把边权变成学出来的注意力——这就是 Transformer。它不再问"谁和谁有边",而是让所有实体两两计算"该关注彼此多少"。

4.3.4 第三脉:Transformer(注意力系)——让任意两个实体"直接对话"

数学内核。Transformer 的核心是自注意力(self-attention)。把场景里每个实体(一个智能体、一个时刻、一条车道向量)都表示成一个 token,每个 token 生成查询(Query)、键(Key)、值(Value)三个向量,然后——

\[ \text{Attention}(Q,K,V) = \text{softmax}\!\left(\frac{QK^\top}{\sqrt{d}}\right)V \]

直觉上,\(QK^\top\) 计算"每个 token 对其他每个 token 的相关性分数",softmax 把它归一化成"注意力权重"(该关注谁、关注多少),再用这个权重对 V 加权求和——于是每个 token 的新表示,是它"按相关性从所有其他 token 那里聚合来的信息"。多头注意力(multi-head) 并行跑多组 Q/K/V,让模型从多个子空间同时建模不同类型的关系(一头管"谁在我前方"、一头管"谁在变道")。

本质洞察(两个常被忽略的设计细节——\(\sqrt d\) 缩放与多头——为何不可或缺):自注意力公式里有两个看似不起眼、实则关键的设计: - \(\sqrt d\) 缩放:为什么要除以 \(\sqrt d\)\(d\) 是 Key 的维度)?因为当维度 \(d\) 很大时,\(QK^\top\) 的内积值会变得很大(随 \(d\) 增长),导致 softmax 进入饱和区——梯度几乎为零,训练停滞。除以 \(\sqrt d\) 把内积的方差归一化回 \(O(1)\),让 softmax 工作在敏感区、梯度健康。这是一个'让深层注意力能训起来'的稳定性技巧,没有它 Transformer 难以训练。 - 多头的必要性:单头注意力只能学一种"关注模式"——但交互是多面的(既要关注"谁在前方"管纵向、又要关注"谁在变道"管横向、还要关注"哪条车道约束我")。多头让模型在不同子空间并行学多种关注模式,再拼接。这与 §4.3.3 LaneGCN 用多种边类型建模多种关系是同一个诉求——交互不是单一关系,需要多个'通道'分别建模。区别是 LaneGCN 的边类型是人手工定义的,多头注意力的'关注模式'是数据里自动学出来的(又一次"先验 vs 容量"的体现)。理解这两个细节,你才算真正读懂了自注意力为何能在交互建模上碾压 social pooling——它不仅全连接,还能多通道、可稳定训练地学习关系。

多视角理解(自注意力作为"全连接、可学权重的图聚合"): - GNN 视角(最关键):自注意力就是一种特殊的图神经网络——它的图是全连接图(每个 token 连所有 token),它的边权是当场算出来的注意力 \(\text{softmax}(QK^\top)\)(而非 GNN 那样预定义或简单聚合)。像/不像:像在于都是"按权重聚合其他节点的信息";不像在于 GNN 的边是稀疏+预定义、权重相对简单,而注意力是稠密全连接+权重动态学出。所以"GNN→Transformer"不是范式断裂,而是"把稀疏固定图升级为稠密学习图"的连续演进。 这是理解第二脉到第三脉的钥匙。 - 检索视角:Q/K/V 借自信息检索——Query 是"我想找什么",Key 是"每个候选的标签",Value 是"每个候选的内容"。注意力 = "用我的 query 去匹配所有 key,按匹配度取回 value 的加权和"。这个视角解释了为什么注意力能绕过 LSTM 的信息瓶颈——解码时可以用 query 直接"检索"任意历史/任意智能体,而非依赖一个压缩的隐状态。 - 关系建模视角:交互的本质是"谁该关注谁、关注多少",而 \(\text{softmax}(QK^\top)\) 恰好就是一个数据驱动学出来的"关注权重矩阵"。它能学到 social pooling 和简单 GNN 都学不到的细微关系——比如"远处高速逼近的车权重高、近处静止的车权重低"这种依赖速度而非仅依赖距离的关注模式。

如何承载三层能力——Transformer 的杀手锏是用统一的 token 抽象同时覆盖三层: - 表示 + 交互层:把智能体 token、时刻 token、车道 token 全扔进同一个注意力,让它们自由交互——智能体↔智能体(交互层)、智能体↔车道(地图约束)、时刻↔时刻(时序,物理层)一网打尽。 - 意图层:用可学习的查询向量(learnable query) 当"意图原型"——这是 MTR 的 motion query 的精髓,每个 query 解码出一个模态。 - marginal/joint 统一:通过 masking 策略(屏蔽哪些 token 能互相看见)和 query 设计,同一个 Transformer 既能做边缘预测又能做联合预测——这正是 §4.1.4 Scene Transformer 的核心贡献。

代表作剖析

  • Scene Transformer(Waymo, ICLR 2022):用一个统一 Transformer,靠 masking 同时支持 marginal 和 joint 预测(§4.1.4)。它把所有 (智能体, 时刻) 组织成 token 矩阵,用因子化注意力(factorized attention)——沿时间轴和沿智能体轴交替做注意力,避免对整个矩阵做全注意力的算力爆炸。这是"如何让注意力在时空二维上既高效又充分"的经典设计。
  • MTR / Motion Transformer(NeurIPS 2022 oral):§4.1.4 已点名其历史地位(Waymo 冠军)。骨干血统看,它的核心是可学习 motion query + 迭代 refine 的解码器——一组可学习查询向量代表"运动意图原型",通过 Transformer 解码器多轮迭代,每轮都让 query 重新注意场景、refine 自己的轨迹预测。它把 anchor 范式(§4.2.3,稳定)与 query 范式(灵活)的优点合一:query 初始化时带 anchor 的先验,迭代中获得 query 的灵活性。MTR++ 进一步支持多智能体并行查询。
  • Wayformer(Waymo, 2022):一篇"做减法"的重要工作——它系统研究了"融合多模态输入(智能体、地图、交通灯)的注意力该怎么设计",提出 early/late/hierarchical fusion 的对比,并用简洁的注意力 + latent query 达到 SOTA。它的价值在于证明了架构可以更简单——不需要 LaneGCN 那样精心设计的多种图,让注意力自己学关系即可。这是"容量 > 先验"路线的有力论据。
  • QCNet(Query-Centric, CVPR 2023):当前 Argoverse 2 榜单的强者之一。核心创新是 query-centric 的参考框架——为每个场景元素建立局部坐标系,使表示对全局平移/旋转不变(roto-translation invariant),且支持流式(streaming)增量编码。它解决了一个工程痛点:场景每帧都在变,全局坐标系下要反复重算,query-centric 的局部参考框架让历史编码可复用。

多视角理解(MTR 的"motion query"为何是 anchor 与生成式的完美调和):motion query 是预测方向一个极优雅的设计,值得从三个角度看清它"调和了什么": - anchor 视角:每个 query 初始化时绑定一个 anchor(典型运动模式,如"左转""直行"),所以它继承了 anchor 范式(§4.2.3)的稳定性与模态覆盖——不会塌缩、不会漏掉常见模态。 - query/注意力视角:query 不是固定的 anchor,而是可学习、可迭代 refine 的向量——每轮解码它都重新 attend 到场景(他车、车道),按当前场景调整自己。所以它又获得了灵活性——同一个"左转"query 会根据"前方有没有车挡着"refine 出不同的左转轨迹。 - 调和视角:纯 anchor 太死(轨迹被 anchor 集合钉死),纯生成式太难训(GAN 不稳、模态难控);motion query = "anchor 给初始化与稳定性 + query 迭代给灵活性"。它本质上是在'判别式离散化(anchor)'与'生成式采样(GAN/CVAE)'这两极之间,找到的第三条路——用"可学习且带先验初始化的查询"同时拿到两边的好处。这正是它能在 Waymo 夺冠、且被后续工作广泛继承的原因。理解 motion query,就理解了"如何表达多模态"这个核心问题的当前最优解之一。

本质洞察(Transformer 系的胜利是"容量战胜先验",但代价是吃数据与吃算力):GNN 系(§4.3.3)的世界观是"把交通的图结构作为先验喂进架构";Transformer 系的世界观相反——"别预设结构,给足容量和数据,让注意力自己从数据里学出谁该关注谁"。在大规模数据集(Waymo Open Motion 有几十万场景)上,后者赢了——因为数据足够多时,学出来的关系比手工设计的先验更精细、更无偏。但这个胜利有明确的前提与代价:① 吃数据——小数据上 Transformer 容易过拟合,GNN 的强先验反而更稳;② 吃算力——全注意力的复杂度随 token 数(智能体数 × 时刻数 × 地图段数)平方增长,这是它部署到车载芯片(尤其 C++ 实时栈)的最大障碍,也催生了因子化注意力、latent query、稀疏注意力等一系列"给注意力瘦身"的工作。这个"容量 vs 先验、精度 vs 算力"的权衡,是你为具体项目选骨干时必须算的账。

结构性短板:① 平方复杂度——token 多时算力爆炸,是车载部署的硬伤;② 数据饥渴——需要大规模数据才能发挥,小数据上不如 GNN;③ 可解释性——注意力权重虽可视化,但"为什么这么关注"仍是黑箱;④ 它解决的是"编码与交互",没解决"如何表达多模态输出"——这把问题留给了第四脉(生成系),所以现代 SOTA 几乎都是"Transformer 编码 × 生成式输出头"。

一个被忽视但至关重要的正交设计轴:参考框架(reference frame)。讲完三脉编码骨干,必须插入一个横切所有骨干的设计维度——用什么坐标系表示场景。这个看似琐碎的选择,深刻影响精度、算力与工程可用性,是 QCNet 等近期工作的核心创新点所在,也是初学者最容易忽略的"隐性架构决策"。

  • 场景中心(scene-centric):选一个全局原点(如地图某点或 ego 当前位置),所有智能体和地图都在这个统一坐标系下表示。优点:只需编码一次、所有实体共享坐标系;缺点:对全局平移/旋转不具不变性——同一个交互几何(两车并排)在场景不同位置/朝向出现时,坐标值天差地别,模型要为每个位置/朝向重新学习一遍,数据效率低。
  • 智能体中心(agent-centric):为每个待预测智能体单独建立以它为原点、以它朝向为轴的局部坐标系,把场景旋转平移到这个智能体的视角下再编码。优点:对该智能体而言平移/旋转不变,交互几何无论在地图哪里都长一样,数据效率高、精度好——这是 MTR 等高精度模型的常用做法;缺点:算力爆炸——有 \(N\) 个待预测智能体就要把整个场景编码 \(N\) 次(每个视角一次),多智能体场景下重复计算严重。
  • 查询中心(query-centric,QCNet 的创新):为每个场景元素(每个智能体、每条车道)建立各自的局部参考框架,元素之间的相对关系用相对位姿编码(相对位置 + 相对朝向)来表达。优点:兼得不变性与可复用性——每个元素只编码一次(不像 agent-centric 要 \(N\) 次),且天然平移旋转不变;还支持流式(streaming)增量编码——新一帧来了只需编码新增部分、复用历史编码,对实时车载极友好。这是当前的先进范式。

对比性思维(参考框架的演化是一部"如何用最小算力换取最大不变性"的优化史):不是"随便选个坐标系",而是一个有明确权衡的设计阶梯。场景中心:编码一次(省算力)但无不变性(费数据、精度差);智能体中心:有不变性(精度好)但编码 \(N\) 次(费算力);查询中心:用"每元素局部框架 + 相对位姿"同时拿到不变性和单次编码(兼得),还附赠流式能力。这条"不变性 vs 算力"的权衡线,与 §4.3.4 那条"容量 vs 先验"的权衡线正交——它们是两个独立的设计旋钮。理解这一点的实践意义在于:选骨干不只是选 LSTM/GNN/Transformer,还要选参考框架——后者对车载部署的算力影响,常常比前者更大。 这是读懂 QCNet 之类近期工作"为什么快又准"的钥匙,也是一个极易被初学者漏掉的隐性架构决策。

本质洞察(不变性是预测模型的"免费午餐",谁把不变性榨得越干净谁就越强):贯穿参考框架演化的主线,是对对称性/不变性(invariance) 的逐步榨取。交通场景有一个物理事实——交互的本质与它在地图上的绝对位置、绝对朝向无关(两车并排汇入,在城东和城西、朝南和朝北,本质是同一个交互)。一个不利用这个对称性的模型(场景中心),被迫为每个位置朝向重学一遍,等于在浪费容量和数据去学习本应"免费"得到的不变性。从场景中心到查询中心的进步,本质是把这个对称性越来越彻底地"硬编码"进架构(而非让模型从数据里苦学)。这与 §4.3.3 GNN 的置换不变性、Trajectron++ 把动力学约束硬编码进输出(§4.3.2),是同一种深刻的设计哲学——把已知的物理结构作为归纳偏置注入架构,把宝贵的模型容量留给真正需要学习的部分。这条"榨取对称性"的主线,是理解整个深度预测架构演化的元视角。

过渡:前三脉(LSTM/GNN/Transformer)都在解决"如何编码场景、如何建模交互"这个输入端问题。但还有一个正交的输出端问题始终悬而未决——给定编码好的场景,如何生成和表达多模态的未来分布? anchor/query 是一种离散化的答案,但生成式模型(GAN→CVAE→扩散)提供了另一条更"分布原生"的路线。这就是第四脉。

4.3.5 第四脉:生成模型(GAN / CVAE / 扩散)——把预测当"采样"而非"回归"

这一脉与前三脉正交(回顾 §4.3.1 的本质洞察):前三脉是"编码骨干",这一脉是"输出端的生成机制",二者相乘构成完整模型。它统一回答一个问题——未来是多峰分布,如何表达并从中生成 K 个代表样本?

回顾 §4.1.2 的本质洞察:预测的范式从"回归一条轨迹"翻转为"从分布采样 K 条"。生成式三件套就是这个"采样"的三种实现,按时间顺序是 GAN → CVAE → 扩散,每一代都在修补上一代的缺陷。

(1) GAN(生成对抗网络)系。代表是 Social GAN(CVPR 2018,§4.1.2)。机制:生成器从随机噪声 + 历史编码生成轨迹,判别器逼它"像真的",variety loss(只惩罚 K 条样本里最好的一条)鼓励多样性。 - 优点:能生成清晰、逼真的样本(不像 MSE 回归那样"糊")。 - 致命短板训练不稳定(生成器与判别器的对抗易振荡/崩溃)、模态塌缩(mode collapse)——生成器可能偷懒只生成几种"安全"的轨迹,覆盖不全真实的模态多样性。这正是它逐渐被 CVAE 和扩散取代的原因。

(2) CVAE(条件变分自编码器)系。代表是 Trajectron++(§4.3.2)DESIRE(CVPR 2017)。机制:引入隐变量 \(z\),学一个编码器 \(q(z|\text{未来,历史})\) 和解码器 \(p(\text{未来}|z,\text{历史})\),训练时最大化证据下界(ELBO);推理时从先验 \(p(z|\text{历史})\) 采样不同 \(z\) 生成不同未来。 - 优点:训练比 GAN 稳定得多(最大化似然而非对抗);隐变量 \(z\) 若设成离散的,天然对应离散模态(Trajectron++ 的做法),可解释。 - 短板后验塌缩(posterior collapse)——解码器太强时会忽略 \(z\),导致多样性丧失;生成样本可能偏"糊"(VAE 的固有问题);表达复杂多峰分布的能力不如扩散。

对比性思维(GAN vs CVAE vs anchor——三种表达多模态的哲学):回到 §4.2.3 的"生成 vs 锚定"分野,现在可以三方对照。GAN/CVAE(生成式):用连续隐变量/噪声采样多样性,灵活但训练难、模态不可控;anchor/query(判别式离散化):预置离散模态原型,稳定可解释但受原型集合制约;扩散(下一段):用迭代去噪逼近任意复杂分布,兼顾质量与多样性但推理慢。这三条路线是"如何表达多模态"这一核心问题的三种答案,没有绝对优劣——anchor 适合模态清晰可枚举的车辆预测,生成式适合模态弥散的行人/复杂场景。

(3) 扩散模型(diffusion)系——当前(2024–2026)的新宠。机制:扩散模型分两个过程——前向过程逐步往真实轨迹加高斯噪声直到变成纯噪声;反向过程训练一个网络从纯噪声出发、逐步去噪、还原出轨迹。生成时从随机噪声出发反复去噪 \(T\) 步得到样本。形式上,前向过程把一条干净轨迹 \(\tau_0\) 逐步加噪:

\[ q(\tau_t \mid \tau_{t-1}) = \mathcal N\!\big(\sqrt{1-\beta_t}\,\tau_{t-1},\ \beta_t \mathbf I\big), \quad t=1,\dots,T \]

经过 \(T\) 步后 \(\tau_T\) 近似纯高斯噪声。反向过程训练一个网络 \(\epsilon_\theta(\tau_t, t, c)\)\(c\) 是条件,如历史轨迹与地图)去预测每一步加入的噪声,训练目标极其简洁——就是一个去噪的均方误差:

\[ \mathcal L = \mathbb E_{t,\tau_0,\epsilon}\big[\,\|\epsilon - \epsilon_\theta(\tau_t, t, c)\|^2\,\big] \]

生成时从 \(\tau_T\sim\mathcal N(0,\mathbf I)\) 出发,反复用 \(\epsilon_\theta\) 去噪 \(T\) 步还原出 \(\tau_0\)

  • 数学直觉:扩散把"一步生成复杂分布"这个难题,拆成"很多步、每步只去一点噪声"的简单子问题——每一步只需学"如何让样本稍微更真实一点",累积起来就能逼近任意复杂的多峰分布。这是它比 GAN 稳定、比 CVAE 表达力强的根本原因。
  • 为什么比 CVAE 表达力强(数学上):CVAE 用单一隐变量 \(z\) 一步映射到轨迹分布,其表达力受限于解码器和先验 \(p(z)\) 的形状(通常是简单高斯);扩散用 \(T\)逐步细化,相当于把一个复杂分布的生成分解成 \(T\) 个简单条件高斯的链式组合——更多的"步数"换来了更强的分布表达力。这也解释了它的短板(推理要跑 \(T\) 步)正是它表达力的来源——表达力与推理步数是同一枚硬币
  • 为什么比 GAN 稳定(训练上):GAN 的训练目标是对抗的极小极大博弈(易振荡);扩散的训练目标是上面那个简单的去噪 MSE(一个标准的回归损失,稳定收敛)。把"生成"这个难题转化成"去噪回归"这个易题,是扩散稳定性的根源。
  • 代表作(§4.1.6 已点名,此处定位骨干角色):MotionDiffuser 用扩散做可控的多智能体联合预测(去噪过程可注入约束,如"不许碰撞");Diffusion Policy(RSS 2023) 把扩散用作机器人/驾驶的动作生成 baseline;Diffusion-Planner(ICLR 2025 oral) 专做 nuPlan 闭环规划;DiffusionDrive(CVPR 2025) 用扩散做端到端驾驶。
  • 优点稳定(无对抗)、表达力强(逼近任意多峰分布)、可控(去噪每步可注入引导/约束,即 guided sampling——这对"生成满足安全约束的轨迹"极有价值,是它相对 GAN/CVAE 的独特优势)。
  • 短板推理慢——要迭代去噪几十上百步,对实时性(车载 10–50 Hz)是挑战。这催生了一系列加速工作(DDIM、consistency models、flow matching)。π0/π0.5 用的 flow matching 就是扩散的"加速近亲",能 50 Hz 输出连续动作(§4.1.6)。

多视角理解(扩散的"引导式采样"为何是安全关键场景的杀手锏):guided sampling 是扩散相对 GAN/CVAE 一个常被低估的独特优势,值得从三个角度看清它在预测里的价值: - 机制视角:扩散是"逐步去噪"的迭代过程,于是可以在每一步往去噪方向里注入一个"引导梯度"(如"远离碰撞"的梯度、"贴合车道"的梯度),把生成的轨迹"推"向满足约束的区域。GAN/CVAE 是"一步生成",没有这个可以反复施加约束的迭代过程。 - 安全视角(最关键):传统做法是"先生成轨迹、再事后检查/过滤违反约束的"——但若生成的 K 条全都违规,就无轨迹可用。引导式采样把约束前置到生成过程里——生成出来的轨迹"天生"就倾向于满足约束(不碰撞、在路面内、动力学可行)。对安全关键的预测-规划,这意味着可以把'安全约束'直接编码进生成,而非寄望于事后补救——这与 §4.4 的安全兜底、§4.6.4 的安全决策一脉相承。 - 可控视角:同一个训练好的扩散模型,推理时换不同的引导,就能生成"满足不同约束"的轨迹(这次要保守、那次要激进),无需重训。像/不像:像在于都从噪声生成;不像在于扩散能在生成途中被"操控",GAN/CVAE 生成完就定了。这种'训练一次、推理时灵活注入约束'的能力,是扩散在预测-规划方向越来越受青睐的深层原因——它天然契合"安全约束需要在部署时灵活施加"的工程现实。

本质洞察(生成系的演化 GAN→CVAE→扩散,是一部"如何稳定地表达复杂多峰分布"的进步史):三代生成模型在解决同一个问题——多峰分布的高质量、稳定生成。GAN 质量高但训练不稳、模态会塌;CVAE 训练稳但样本糊、表达力受限;扩散兼得稳定与表达力,代价是推理慢。这条线与前三脉(编码骨干的演化)是正交且并行的两条进步轴——你可以把任意一代生成头嫁接到任意一代编码骨干上(Social GAN = LSTM × GAN,Trajectron++ = LSTM × CVAE,MotionDiffuser = Transformer × 扩散)。所以判断一篇预测论文的完整血统,要同时报出它的"编码脉 × 生成脉"两个坐标——这是本节最重要的方法论收获。

4.3.6 工程现实:四脉都在 Python,唯一的生产级 C++ 预测栈是 Apollo

讲完四脉的学术血统,必须把视角拉回工程地面——这正是本章 §4.1.6 那条"C++ 真空"洞察的具体落点。

残酷的事实:上述四脉的所有代表作——Social LSTM、Trajectron++、VectorNet、LaneGCN、Scene Transformer、MTR、Wayformer、QCNet、MotionDiffuser、Diffusion-Planner——无一例外全部以 Python/PyTorch 实现。它们是研究产物,优化目标是 leaderboard 指标与论文创新,不是车载实时部署。

唯一的大规模生产级、开源、C++ 实现的预测栈,是百度 Apollo 的 modules/prediction。它的设计哲学与学术 SOTA 截然不同,恰好折射出"研究 vs 工业"的鸿沟: - 架构:Apollo prediction 采用经典的多阶段管线——Container(管理障碍物历史)→ Scenario(场景识别)→ Evaluator(用模型给候选轨迹/意图打分)→ Predictor(生成最终预测轨迹)。 - 模型选择:它确实用了学习模型(如基于 MLP/语义地图/RNN 的 evaluator),但刻意保持轻量,且大量保留基于规则与车道序列(lane sequence)的预测——因为车载实时性(毫秒级)和可验证性(安全关键)压倒了"再涨几个点 minADE"的学术诉求。 - 与学术 SOTA 的差距:Apollo 的预测精度在学术 benchmark 上远不如 MTR/QCNet,但它能在车上以 C++ 实时跑、能被安全工程师审查、能在量产车上验证——这是任何 PyTorch SOTA 都暂时做不到的。

本质洞察(预测方向的"学术-工业割裂"比博弈方向更剧烈,根源在部署门槛):博弈综述揭示了"C++ SOTA 真空",但预测方向的割裂更极端,原因有三:① 模型更重——Transformer/扩散的算力远超博弈的数值优化器,车载部署更难;② 黑箱更深——端到端模型的安全验证比数值方法更棘手,工业界不敢轻易上车;③ 数据闭环依赖——学术 SOTA 依赖大规模标注数据,而工业界的痛点在长尾与闭环(§4.6),开环 benchmark 的高分不直接转化为路上的安全。这三点共同造成了"研究在 Python 里狂奔、生产在 C++ 里保守"的现状。对 C++ 母语的机器人工程师,这既是鸿沟也是机会——把学术 SOTA 工程化、C++ 化、实时化、可验证化,正是当前最有价值、最稀缺的工作之一。这也是本教程把"预测"放进规控体系、而非纯深度学习体系的深层理由。

4.3.7 四脉横向综合:真实 SOTA 是如何"组装"四脉的

讲完四脉的纵向血统,本小节做一次横向综合——这正是综述区别于单篇论文解读的价值所在:不孤立地看每一脉,而是看它们如何在真实模型里被组合、取舍、嫁接

组合维度一:编码脉 × 生成脉的笛卡尔积(再强调)。前文反复强调的核心方法论,这里用一张"组装表"落实——把代表作拆成"编码脉 + 生成/输出脉"两个零件看:

模型 编码脉(如何理解场景) 生成/输出脉(如何产生多模态) 参考框架
Social LSTM LSTM + social pooling 确定性回归(无多模态,故有 mode averaging) 场景中心
Social GAN LSTM + pooling GAN 采样 场景中心
Trajectron++ LSTM + 图聚合 + 注意力 CVAE(离散隐变量)+ 动力学积分 智能体中心
VectorNet GNN(两级 polyline 子图 + 全局图) 回归 + 多头(早期多模态弱) 场景/智能体中心
MultiPath CNN anchor 分类 + 回归偏移 智能体中心
MTR Transformer + motion query anchor-like query 迭代 refine 智能体中心
QCNet Transformer anchor-free + refine 查询中心
MotionDiffuser Transformer 扩散去噪 场景中心

本质洞察(看懂这张组装表,等于拿到了"拆解任何预测论文"的通用扳手):这张表传递的不是八个孤立事实,而是一个通用的拆解协议——拿到任何一篇预测论文,问它三个零件:(1) 用什么编码场景与交互(编码脉)?(2) 用什么产生多模态输出(生成脉/anchor/query)?(3) 用什么坐标系(参考框架)? 这三个零件几乎完全刻画了一个模型的骨架。剩下的论文创新,往往只是在某个零件上做改良(换更好的 query 初始化、换更稳的扩散加速、换更省算力的参考框架)。有了这个三零件协议,你读论文时就不会被花哨的命名和缩写淹没,而能迅速看穿"它到底在哪个零件上动了刀"。 这是本节、也是 §4.3 整章想交付给你的最实用能力。

组合维度二:四脉的"取代"不是淘汰,而是吸收。一个常见误解是"Transformer 来了,LSTM/GNN 就过时了"。真相更微妙——后一脉往往把前一脉的核心思想吸收进自己

  • Transformer 的自注意力就是全连接、可学权重的 GNN(§4.3.4 多视角理解第一条)——它没"淘汰"GNN,而是把 GNN 推广到了极致。
  • 许多现代模型仍在局部用 GNN(编码 polyline 内部)、在全局用 Transformer(建模 polyline 间交互)——VectorNet 的两级结构正是这种"局部 GNN + 全局注意力"混合的鼻祖。
  • LSTM 在某些轻量/流式场景仍有一席之地(串行恰好契合流式输入),且 GRU 等循环单元常被用作 Transformer 解码器内部的轨迹生成器。

对比性思维("取代"vs"吸收"——技术史的两种叙事):流行叙事爱讲"X 取代了 Y"(Transformer 取代 RNN),这种叙事简单但失真。更准确的叙事是"X 吸收并推广了 Y 的核心思想,同时解放了 Y 的约束"——注意力吸收了 GNN 的"按权聚合"、解放了它的"稀疏固定图";GNN 吸收了 pooling 的"聚合邻居"、解放了它的"固定半径各向同性"。理解"吸收"而非"取代",你才能看出技术演化的连续性——每一脉都站在前一脉的肩膀上,而非推倒重来。这也意味着:学透前一脉(哪怕"过时")不是浪费,因为它的思想活在后一脉里。

组合维度三:算力-精度-可验证的三角权衡。把四脉 × 参考框架放进工程约束,得到一张"该选什么"的权衡总结——这是 §4.7.4 选型表的理论依据:

  • 要极致精度、有大数据大算力(如离线预测、云端):Transformer(智能体中心)+ 扩散/query。MTR、QCNet 路线。
  • 要数据效率、中等算力(如中等规模项目):GNN + anchor。VectorNet、LaneGCN 路线。
  • 要轻量、实时、易部署(如车载 C++、嵌入式):轻量 LSTM/小 GNN + anchor,或参考 Apollo 的规则+轻模型混合。
  • 要可验证、安全关键(如需认证):尽量保留显式结构(anchor 可解释、动力学积分保可行、可微优化保留显式 cost),避免纯黑箱扩散/端到端。

4.3.8 四脉速查表

脉络 内核操作 角色(编码/生成) 代表作 核心优势 结构性短板
LSTM 系 循环隐状态递推 编码 Social LSTM, CS-LSTM, Trajectron++ 编码时序、学运动模型 串行慢、长程衰减、交互靠外挂
GNN 系 消息传递(稀疏图) 编码 VectorNet, LaneGCN 强关系先验、数据高效 过平滑、感受野受限、图需预定义
Transformer 系 自注意力(全连接图) 编码 Scene Transformer, MTR, Wayformer, QCNet 全连接长程、统一 token、容量大 平方算力、吃数据、车载部署难
生成系 从分布采样 生成(输出头) Social GAN, Trajectron++(CVAE), MotionDiffuser 表达多峰分布 GAN 不稳/塌缩、扩散推理慢
参考框架(正交轴) 局部/全局坐标 表示方式 场景中心 / 智能体中心 / 查询中心(QCNet) 榨取平移旋转不变性 不变性 vs 算力的权衡

本节常见陷阱(覆盖血统混淆类、选型类、工程类):

陷阱一:把"编码脉"和"生成脉"混为一谈,非要给模型贴单一标签。 现象:争论"Trajectron++ 到底是 LSTM 方法还是生成方法"。根本原因:没意识到这是两根正交的轴(§4.3.1、§4.3.5)。正确做法:用"编码脉 × 生成脉"两个坐标描述——Trajectron++ 是 LSTM(编码)× CVAE(生成)。

陷阱二:以为 Transformer 永远优于 GNN/LSTM。 现象:不看数据规模就无脑选 Transformer。根本原因:忽视"容量 vs 先验"的权衡(§4.3.4 本质洞察)——小数据上 Transformer 易过拟合,GNN 的强先验更稳;车载算力受限时全注意力的平方复杂度是硬伤。正确做法:按数据规模和算力预算选骨干。

陷阱三:把"开源 SOTA 代码"直接当成"可部署方案"。 现象:看到 MTR 开源就以为能上车。根本原因:不理解 §4.3.6 的学术-工业鸿沟——PyTorch SOTA 距离 C++ 实时、可验证的生产栈隔着巨大工程量。后果:低估部署成本,项目延期。正确做法:评估时把"工程化/C++ 化/实时化/可验证化"的成本算进去,或参考 Apollo 的轻量化哲学。

陷阱四:用了扩散就以为能实时。 现象:在车载 50 Hz 场景上直接用标准扩散。根本原因:忽视扩散的推理慢短板(几十步去噪)。正确做法:用 DDIM/consistency/flow matching 等加速变体(如 π0 的 flow matching),或评估时序裕度。

本节练习: 1. (血统定位) 给定一篇论文:"用 Transformer 编码所有智能体和车道 token,建模交互;输出端用扩散去噪生成多智能体联合轨迹,去噪过程注入碰撞约束。" 请写出它的"编码脉 × 生成脉"双坐标,并指出它的多模态来自哪个机制、它如何保证联合一致性。 2. (取代逻辑) 用一句话分别说清:为什么 GNN 取代了 LSTM 的"social pooling"?为什么 Transformer 取代了 GNN 的"消息传递"?这两次取代的共同模式是什么?(提示:从"写死的假设"逐步解放的角度。) 3. (选型实战) 你要为一个城区路口预测系统选骨干,已知:训练数据仅 5000 个场景、车载芯片算力有限、需要 20 Hz 实时、且安全团队要求可解释。在四脉中你会怎么组合?说明理由,并指出每个选择放弃了什么。 4. (开放) §4.3.6 说"把学术 SOTA 工程化、C++ 化是最有价值的稀缺工作"。请设想:若要把 MTR 部署到 C++ 实时栈,你预计会遇到哪三个最大的工程障碍?(提示:算子支持、平方复杂度、动态 shape。这道题没有标准答案,重在工程直觉。) 5. (参考框架推算) 一个场景有 \(N=20\) 个待预测智能体。分别估算"场景中心"(编码 1 次)、"智能体中心"(编码 \(N\) 次)、"查询中心"(编码 1 次但带相对位姿)三种参考框架的相对编码开销。再说明:为什么查询中心既有智能体中心的不变性、又只需 1 次编码?(提示:§4.3.4-bis。) 6. (取代 vs 吸收) §4.3.8 区分了"编码脉是取代式、生成脉是并存式"。请用这个区分预测:未来若出现一种比 Transformer 更强的新编码骨干,你预期它会"取代"Transformer 还是"并存"?而若出现一种新的多模态生成机制,你预期"取代"还是"并存"?说明判断依据。 7. (扩散权衡) §4.3.5 指出"扩散的表达力与推理步数是同一枚硬币"。请论证:为什么单纯减少去噪步数(为了实时)可能损失多模态表达力?consistency models / flow matching 试图怎样"既少步又不太损表达力"?(这道题指向扩散加速的前沿,重在理解权衡而非细节。)

过渡到 §4.4:§4.2 给了"建模层次"的纵轴,§4.3 给了"骨干工具"的横轴——你现在能定位任何一个预测模型在这两根轴上的位置了。但还有一个更深的问题尚未触及,它是本方向真正的"灵魂问题":预测出来到底要干嘛?预测和规划该怎么接线? §4.1.5 已经预告,第四时代的转折正是"打破预测-规划解耦"。下一节我们就专门解剖这条"耦合"主线——它把本章和博弈综述正式焊在一起,也是 frozen robot 这个病灶的最终疗法所在。


§4.4 预测与规划的耦合:解耦 / 条件 / 联合 ⭐⭐⭐⭐

本节解决的问题:前两节我们把"预测"当成一个独立任务来剖析——怎么建模、用什么骨干。但一个尖锐的问题被刻意推迟到了这里:预测出来的轨迹,最终是要喂给规划器去开车的。预测和规划之间这根"接线"该怎么接? 这看似是个工程接口问题,实则是本方向最深的理论张力所在——它牵出 frozen robot、self-fulfilling prophecy 两大病灶,并最终与博弈综述 §3 正式会师。本节把"接线方式"切成三种递进范式(解耦→条件→联合),逐一剖析它们如何回应这两大病灶。这是全章难度最高、也最能体现"方向感"的一节。

4.4.1 为什么"接线方式"是本方向的灵魂问题

回顾 §4.2.4 末尾那个本质洞察:如果"他车的未来取决于 ego 怎么动",那么孤立地预测他车在数学上就是不良定义的。 这句话把"预测"和"规划"的命运绑死了——你不可能在不知道 ego 计划的情况下"客观地"预测他车,因为他车会对 ego 做出反应。

本质洞察("接线方式"为何配得上"灵魂问题"这个分量):在大多数工程领域,"模块如何接口"是个二等问题——把模块各自做好,接口清晰即可。但在预测-规划这里,接口方式反而是一等问题,甚至比模块内部的精度更决定系统成败。原因在于:预测与规划之间存在一个循环依赖——预测他车要知道 ego 计划,规划 ego 要知道他车预测,这是一个"鸡生蛋"的闭环。面对循环依赖,'怎么接线'就不再是工程细节,而是'如何打破或求解这个循环'的根本问题:解耦是"强行切断循环、假设 ego 不影响他车"(于是患病),条件是"迭代地走这个循环一两遍",联合是"直接求解这个循环的不动点(均衡)"。所以本节讨论的三范式,本质上是对付'预测-规划循环依赖'的三种数学策略——这正是它配得上"灵魂问题"的原因:它触及的不是接口规范,而是这个方向最核心的问题结构(耦合的、有反馈的决策)。理解这一点,你就不会把 §4.4 当成"讲怎么连模块的工程章节",而会把它当成"这个方向的核心数学问题"来读。

这就引出了本方向的灵魂问题:预测和规划,到底是"先后两段"还是"同一件事"? 答案的演化,正是 §4.1.5 第四时代"耦合转折"的核心,也是过去几年顶会重心从"纯预测"转向"联合/端到端"的根本动因。我们把这个演化切成三种范式:

范式 接线方式 一句话刻画 病灶应对 对应时代/代表作
解耦(pipeline) 预测 → 规划(单向) 预测吐结果,规划被动消费 两病皆患 时代一~三的工业标配
条件(conditional) 规划假设 → 预测 → 规划 预测要看 ego 的计划 缓解 frozen robot PRECOG, PiP, M2I
联合(joint) 预测 ⇄ 规划(耦合求解) 预测与规划在同一优化里共生 根治两病 DIPP, GameFormer, UniAD

三种范式不是"谁对谁错",而是"耦合程度递增"的光谱——耦合越深,越能正确处理交互,但工程复杂度、算力、训练难度也越高。下面逐一解剖。

多视角理解(三范式可以从三个角度看,每个角度都加深一层理解): - 信息流视角:解耦是单向箭头(预测→规划);条件是带反馈的单向(规划假设→预测→规划,但 ego 假设是"先猜的");联合是双向耦合(预测⇄规划,无先后)。这是最直观的"线怎么接"。 - 概率视角:解耦预测的是边缘分布 \(p(\tau_{\text{他车}}\mid \text{历史})\);条件预测的是条件分布 \(p(\tau_{\text{他车}}\mid \text{历史}, \tau_{\text{ego}})\)(多了 ego 计划这个条件);联合预测的是联合分布 \(p(\tau_{\text{他车}}, \tau_{\text{ego}}\mid \text{历史})\)(ego 与他车同时建模)。这个概率视角最深刻——它把"耦合深度"精确地翻译成了"建模哪个概率对象",并与 §4.2.4 边缘/联合、§4.5 联合指标完全打通。 - 博弈视角:解耦无博弈(他车是死障碍);条件是 Stackelberg(ego 领导、他车跟随);联合是 Nash(对等博弈)。这是与博弈综述会师的接口(§4.4.7)。 三个视角描述的是同一条"耦合深度"光谱,只是分别用"信息流/概率/博弈"三种语言。能在三种语言间自由切换,你才算真正吃透了这一节——后续每个子范式,我们都会在这三种语言间穿梭。

本质洞察("耦合深度"这根轴,与 §4.2 的"建模野心"轴并不是一回事):初学者容易把"上交互层(§4.2.4)"和"用联合范式(§4.4.4)"混为一谈,但它们是两根不同的轴。§4.2 的轴问"预测时建模了几种不确定性/交互",§4.4 的轴问"预测与规划如何接线"。一个模型完全可以"在交互层(建模了车车交互)但仍是解耦范式(预测出来扔给规划当障碍)"——事实上时代一到三的绝大多数工作正是如此(VectorNet、MTR 都建模交互,但部署时仍解耦)。正是这个"交互建模很强、但仍解耦"的组合,造就了第三时代末'预测很准却治不了 frozen robot'的尖锐质疑(§4.1.4),从而催生第四时代的耦合转折。看清这两根轴的独立性,你就理解了为什么"把交互预测做到 SOTA"和"解决 frozen robot"是两件不同的事——前者在 §4.2 轴上,后者在 §4.4 轴上。

4.4.2 范式一:解耦(pipeline)——两段式管线及其两大病灶

机制。这是传统自动驾驶/移动机器人的标准架构,也是 §4.1.5 反复要"杀死"的对象:感知-预测模块吐出他车的未来轨迹(通常是 marginal 多模态),规划模块把这些预测轨迹当成动态障碍约束,求解 ego 的最优轨迹。信息单向流动:预测 → 规划,规划的结果不反馈给预测。

为什么工业界长期用它:模块解耦带来工程上的巨大便利——预测团队和规划团队可以独立开发、独立测试、独立替换;接口清晰(一组带概率的轨迹);每个模块可单独验证。在弱交互场景(高速跟车、空旷道路)它工作得很好。

但它患两个深刻的病——这两个病是理解整节乃至整章的核心,必须讲透:

病灶一:frozen robot problem(机器人冻结问题)。这是前置自测第 1 题的核心。在"密集车流强行汇入"这类强交互场景里,预测模块会输出他车的多模态未来——包括"他车继续直行、不让我"这条悲观分支。规划模块把所有这些可能轨迹(包括悲观分支)都当成必须避开的障碍,于是发现"无论怎么动都可能撞上某条预测轨迹",最优解退化为原地不动(freeze)

本质洞察(frozen robot 的病根是"预测假装 ego 不存在"):解耦范式里,预测模块在预测他车时完全没有把 ego 的意图纳入考虑——它假设他车的未来与 ego 怎么动无关(marginal 预测的独立性假设)。于是它会预测"他车会一直直行(不管你 ego 想不想汇入)"。但现实中,如果 ego 果断地、有意图地往前挪,那辆车大概率会减速让行——这个"让行"的可能性,被独立预测彻底忽略了。规划器拿到一个"他车绝不让步"的悲观预测,自然不敢动。所以 frozen robot 的根源不在规划器太胆小,而在预测器太"客观"——它客观到忘了自己的预测对象会对 ego 做出反应。这正是 §4.2.4"孤立预测他车是 ill-posed"的工程恶果。

病灶二:self-fulfilling prophecy(自我实现预言)。这是 frozen robot 的"镜像孪生病",更微妙。它指的是:预测的结果反过来"造成"了它所预测的现实,形成恶性循环。 例子:ego 因为预测"他车不会让"而选择不汇入(保守等待),他车因此真的得以一直直行——于是"他车不让"这个预测被 ego 自己的退让"实现"了。预测看起来"很准"(他车果然没让),但这个"准"是 ego 用放弃汇入换来的,是一种虚假的、自证的准确

对比性思维(frozen robot vs self-fulfilling prophecy——一枚硬币的两面):这两个病常被混淆,但角度不同。frozen robot 是"行为后果"——机器人因悲观预测而不敢动;self-fulfilling prophecy 是"认知陷阱"——悲观预测因机器人退让而"成真",从而强化了悲观预测的"正确性",使系统永远学不会"其实可以更果断"。不是"预测错了导致冻结",而是"预测在解耦架构下结构性地偏悲观,且这种悲观会自我证实"。两病同源(预测无视 ego 对他车的影响),但一个谈行为、一个谈认知闭环。理解这对孪生病,是理解为什么"提升预测精度"治不了它们的关键——因为病不在精度,而在架构的单向性

教学警示(提升预测精度并不能治这两个病):一个极常见的误解是"frozen robot 是因为预测不够准,把预测做得更准就好了"。错。 即使预测器在开环指标上做到完美(minADE → 0),只要架构是解耦的、预测无视 ego 的影响,它就仍会输出"他车不让"这条悲观分支(因为在"ego 不汇入"的前提下,他车确实不让,预测确实是对的!)。病不在预测的精度,而在预测的条件——它 condition 在了一个错误的前提(ego 被动)上。这把问题直接推向范式二:让预测 condition on ego 的主动计划。

4.4.3 范式二:条件预测(conditional / planning-informed)——预测要看 ego 的计划

机制。条件预测打破单向箭头的第一步:预测他车时,把 ego 的计划轨迹(或意图)作为条件输入。形式上,从预测边缘分布 \(p(\text{他车未来} \mid \text{历史})\) 升级为预测条件分布 \(p(\text{他车未来} \mid \text{历史}, \text{ego 计划})\)。这样模型就能学到"如果 ego 果断汇入,他车会减速让行"这种反应性(reactive) 行为,直接缓解 frozen robot——因为现在预测器知道 ego 不是被动的。

典型方法(§4.1.5 已点名,此处剖析其耦合机制): - PRECOG(ICCV 2019):最早系统提出 "conditional forecasting" 概念之一——把 ego 的目标/计划作为条件,预测其余智能体如何反应。 - PiP(Planning-informed Prediction, ECCV 2020):让预测显式 condition on ego 的 planned trajectory——枚举/采样 ego 的候选计划,对每个计划预测他车的反应,从而评估每个 ego 计划的"社会后果"。 - M2I(CVPR 2022):更精巧——它先用一个 relation predictor 判断成对智能体中"谁是影响者(influencer)、谁是反应者(reactor)",再让 reactor 的预测 condition on influencer 的(已预测或已知的)轨迹。这把"条件"从"只 condition on ego"推广到"在所有智能体间建立因果序"。

多视角理解(三个条件预测方法,其实在回答"condition on 什么"这个递进问题):把 PRECOG/PiP/M2I 并排,会看到"条件"的对象在逐步精细化: - PRECOG:condition on ego 的目标/计划——最早承认"预测要看 ego 想干嘛"。它的贡献是概念性的:第一次把"conditional forecasting"作为明确范式提出。 - PiP:condition on ego 的完整 planned trajectory,且枚举多个候选计划分别预测——它不只问"他车会怎么反应我的计划",还把这变成一个评估工具:"我的哪个候选计划引发的社会后果最好?"。这已经隐含了"用预测来反向评价 ego 计划"的规划思想。 - M2I:condition 的对象从"只 ego"推广到任意 influencer,并先学一个 relation predictor 来决定谁 condition on 谁——它认识到"不是只有 ego 影响他车,他车之间也有影响者-反应者关系"。 递进的本质是"因果序的精细化":PRECOG/PiP 假设了一个固定的因果序(ego 是 leader),M2I 则学习每对智能体的因果序。这条递进直接通向它的局限(§4.4.3 末)——当双方是对等谈判(互相试探的并线,没有明确的 leader-follower)时,"必须定一个因果序"本身就是错的假设,于是需要范式三的"对等联合求解"(Nash 而非 Stackelberg)。所以条件预测这一范式内部的演化,也是一部'因果序假设逐步松绑'的小补漏史——与 §4.1 的大补漏链同构。

本质洞察(条件预测的精神内核就是博弈论的 Stackelberg 领导者):这是本章与博弈综述的第一个会师点。博弈综述 §3 讲 Stackelberg 博弈——ego 作为 leader 先承诺一个策略,他车作为 follower 观察后做出最优反应。条件预测做的是同一件事:ego 先给出计划(leader 承诺),预测器算出他车的反应(follower 的最优响应)。区别仅在实现手段:博弈综述用显式的数值博弈求解(解 follower 的最优化问题)得到反应,条件预测用学习的神经网络(从数据里学 \(p(\text{他车}\mid\text{ego 计划})\))得到反应。一个是"求解派",一个是"学习派",但世界观完全一致——承认 ego 的行动会引发他车的反应,并据此推理。理解这个会师,你就明白为什么说"博弈规划和交互预测在终点相遇"。

条件预测的代价与局限:① 计算开销——要对多个 ego 候选计划分别做预测,算力翻倍;② 它仍是"两段",只是加了反馈——ego 先定计划、再看反应、再调计划,本质上是迭代的两段式,不是真正的"同时求解";③ 谁先谁后的鸡生蛋问题——M2I 要先判断 influencer/reactor,但有些场景里双方是对等谈判(互相试探的并线),强行定因果序会失真。这把问题推向范式三:让预测和规划真正同时、联合求解。

4.4.4 范式三:联合一体化(joint / game-theoretic / end-to-end)——预测与规划共生

机制。联合范式彻底拆掉预测与规划之间的墙:预测和规划在同一个优化问题/同一个网络里共同求解,没有先后,互为条件。这又分两条技术路线:

路线 A:可微联合优化(differentiable joint optimization)。代表是 DIPP(Differentiable Integrated Prediction and Planning, TNNLS 2023)。它把一个可微的非线性轨迹优化器嵌进神经网络:预测网络输出他车轨迹与一个可学习的代价函数(learnable cost),规划器用这个 cost 求解 ego 的最优轨迹,而整个管线(预测 + 优化器)端到端可微——梯度能从"最终规划质量"一路回传到预测网络。于是预测不再是孤立训练的,而是为了让下游规划更好而被训练

多视角理解(DIPP 的"可微优化器嵌入"在做什么): - 端到端视角:传统是"预测单独训、规划单独调参";DIPP 让"预测 + 规划"成为一个端到端可微函数,用最终驾驶质量这一个目标统一优化两者。像/不像:像把两个独立工序焊成一条流水线;不像在于焊接处(优化器)本身可微,梯度能穿过它。 - 学习 cost 视角:规划器的代价函数(多看重安全/舒适/效率)传统上靠人工调参;DIPP 让这个 cost 从数据里学出来(模仿人类驾驶)。这与博弈综述里"逆最优控制/逆博弈学代价"的思路会师。 - 可微性视角:把优化器变可微是关键技术——用隐函数定理对优化的 KKT 条件求导,使"求解最优轨迹"这一步也能传梯度。这是 §4.3 之外的一类重要工具(可微优化层),是连接"学习"与"优化"两个世界的桥。

本质洞察(DIPP 路线的深层价值:它在"全黑箱端到端"与"全手工优化"之间,保住了可验证的优化器):DIPP 这类"可微优化嵌入"常被低估,但它代表了一种极有工程智慧的中间路线。两个极端各有致命伤:全手工优化(传统规划)——可验证但 cost 靠人调、难处理复杂场景;全黑箱端到端(UniAD)——能学复杂场景但不可验证、不可解释。DIPP 的精妙在于:它把"该学的"(预测他车、cost 的参数)交给神经网络,把"该保证的"(约束满足、最优性结构)交给一个显式的、可验证的优化器,再用可微性把两者端到端连起来。这样既获得了学习的表达力,又保住了优化器的可解释性与约束保证(输出轨迹一定满足你写进优化器的硬约束,如不碰撞、动力学可行)。对安全关键系统,这种"学习提供软知识、优化器保证硬约束"的分工,往往比纯端到端更可落地——因为安全团队能审查那个显式优化器。这与 §4.6.6 的"安全层"、§4.2.2 的"物理层守门"、博弈综述的"优化保证"是同一种贯穿全教程的安全工程哲学:把可信赖性建立在可审查的显式结构上,而非寄望于黑箱学到了正确行为

路线 B:博弈式联合(game-theoretic)。代表是 GameFormer(ICCV 2023 oral)——本章与博弈综述的最强会师点。它用 level-k 博弈论(认知层级博弈:level-0 是不考虑他人的朴素行为,level-1 是假设他人是 level-0 后的最优反应,level-2 是假设他人是 level-1……)的结构来组织 Transformer 解码器:解码器迭代地、交替地 refine "预测他车"和"规划 ego"——第 \(k\) 层让每个智能体(含 ego)基于"对其他智能体第 \(k{-}1\) 层预测"做出反应,逐层逼近一个博弈均衡。它在 nuPlan 闭环上达到领先。

多视角理解(level-k 的"认知层级"到底在建模什么): - 认知博弈视角:level-k 来自行为博弈论,刻画"我对你的推理深度"。level-0 = "我不考虑别人,按自己习惯走";level-1 = "我假设别人是 level-0(按习惯走),我对此做最优反应";level-2 = "我假设别人是 level-1(会反应我),我再对此反应"……每加一层,推理嵌套就深一层。真实人类司机大多停在 level-1 或 level-2(不会无限递归"我想你想我想你……"),这也是 GameFormer 通常只迭代少数几层的原因。 - 迭代细化视角:把 level-k 映射到 Transformer 解码器的 \(k\) 轮迭代——第 1 轮每个智能体给出"朴素预测"(level-0/1),第 2 轮每个智能体看到"上一轮所有人的预测"再修正自己(level-2),如此迭代。这恰好就是博弈综述里"迭代最佳响应(iterated best response)"的神经网络版——用解码器层数模拟博弈的推理轮数。像/不像:像在于都是"反复让各方基于对方上一轮决策更新自己";不像在于博弈综述每轮解一个优化问题,GameFormer 每轮过一层注意力。 - 收敛视角:随着 \(k\) 增加,若迭代收敛,各智能体的预测就趋于一个互相一致、互为最优的不动点——这正是博弈均衡(近似 Nash)。GameFormer 用有限层数逼近这个不动点。

对比性思维(level-k 博弈 vs 求精确 Nash 均衡——为什么"有限层"反而更贴合现实):博弈综述里求精确 Nash 均衡(如 ALGAMES)假设所有智能体都是"完全理性、无限推理深度"的;level-k 反而故意只推理有限层。这不是 level-k 的缺陷,而是它的优点——真实人类司机就是有限理性的(没人在路口做无限层"我想你想我……"的递归),level-k 的有限层数恰好建模了这种有限理性,比"假设对手完全理性"的精确 Nash 更贴合真实人类行为。这是行为博弈论相对经典博弈论的洞察,也是 GameFormer 等"学习派博弈"相对"求解派精确均衡"的一个微妙但重要的优势——它建模的是人真实怎么想,而非人理论上该怎么想

本质洞察(联合范式与博弈规划是"同一枚硬币"——这是本章最重要的会师宣告):这是本章与博弈综述 §3 的正式、彻底的会师。博弈综述把交互建成"会响应你的决策者",用数值方法求解博弈均衡(迭代最佳响应、ALGAMES、iLQGames 等);本章的联合范式把交互建成"可微网络/学习模块",用梯度下降逼近博弈均衡(GameFormer 的 level-k 解码、DIPP 的可微优化)。两者在数学上指向同一个对象——一个所有智能体策略互相最优的均衡点,只是一个用"求解器"逼近、一个用"学习器"逼近。GameFormer 的名字本身就是宣言:Game(博弈)+ Former(Transformer)= 用 Transformer 学博弈。回到 §4.1.1 的"三级跳"——第三级"耦合"的觉醒,到联合范式这里抵达终点:预测与规划不再是两件事,它们是同一个博弈均衡问题的两个名字。 这就是为什么本教程把"交互预测"和"博弈规划"作为一对孪生综述并列编写——它们是从"学习"和"求解"两侧攀登同一座山峰。

路线 C:感知-预测-规划端到端(end-to-end driving)。代表是 UniAD(CVPR 2023 Best Paper)——它把联合范式推到极致:连感知都一起联合。检测、跟踪、建图、运动预测、占据预测、规划全部串进一个端到端 Transformer,所有上游任务"服务于"最终规划目标,梯度从规划一路回传到感知(§4.1.5 的 "planning-oriented" 理念)。VAD/VADv2 走全向量化路线更轻量。在这条线里,"预测"彻底溶解成端到端管线的一个中间表示(intermediate representation),不再是可单独拎出来评估的独立模块。

本质洞察(UniAD 的 "planning-oriented" 不是"更大的网络",而是"目标对齐"的范式宣言):UniAD 容易被误读成"把所有模块拼成一个大网络",但它的真正贡献是一个目标对齐(goal alignment) 的理念转变。传统管线里,每个模块各自优化各自的目标——检测优化 mAP、预测优化 minADE、规划优化轨迹质量——这些局部目标的最优,未必导向全局(驾驶安全)的最优(一个 minADE 极低的预测,可能对最终规划毫无帮助,§4.4.5)。UniAD 的 "planning-oriented" 说的是:让所有模块的目标都向'最终规划质量'对齐,梯度从规划回传,逼着上游'为了让车开得好'而学习,而非'为了自己的指标好看'而学习。这与 §4.4 整节的主旨完全一致——它把"目标对齐"从"预测↔规划"两个模块推广到了"感知→预测→规划"整条链。理解这一点,你就明白为什么它能拿 Best Paper:它不是工程上的"拼装",而是认识论上的"把局部指标的暴政,换成全局目标的统一"——这正是对 §4.5.3"刷局部开环指标 ≠ 全局有用"那个原罪的架构级回应。但代价也在此:目标对齐换来了端到端的不可分解,于是各模块无法单独评估、单独验证,黑箱风险陡增——这是它"上限最高但最难验证"的根。

对比性思维(联合范式的三条路线——可微优化 vs 博弈 vs 端到端):三条路线都"打破了墙",但拆法不同。可微优化(DIPP) 保留了显式的优化器和可解释的 cost,把学习用在"提供预测和 cost"上——最保守、最可验证博弈(GameFormer) 把博弈结构作为归纳偏置注入网络,介于显式与隐式之间——最贴合交互的数学本质端到端(UniAD) 完全溶解模块边界,让梯度自由流动——最激进、最黑箱、上限最高但最难验证。这条"保守↔激进"光谱上的取舍,对应着"可解释性/可验证性"与"性能上限"的永恒权衡,也呼应了 §4.1.6 VLA 那条"显式 vs 隐式"的哲学分野。

4.4.5 三范式如何回应两大病灶:一张对照表

把 §4.4.2 的两大病灶(frozen robot、self-fulfilling prophecy)和三范式交叉,得到本节的核心对照——这张表是判断"一个系统是否真正解决了交互"的诊断工具:

范式 对 frozen robot 对 self-fulfilling prophecy 根本原因 代价
解耦 ❌ 患病(预测无视 ego,悲观分支吓住规划) ❌ 患病(退让使悲观预测自证) 信息单向、预测假设 ego 被动 工程最简单
条件 ✅ 缓解(预测知道 ego 会主动,能预测"他车让行") ⚠️ 部分缓解(仍可能因 ego 计划保守而自证) 预测 condition on ego 计划 算力翻倍、仍是迭代两段
联合 ✅ 根治(预测与规划共求均衡,ego 主动性内生) ✅ 根治(均衡解里 ego 的果断与他车的让行互相一致) 同一优化里共生、逼近博弈均衡 训练复杂、算力高、难验证

本质洞察(治这两个病的不是"更准的预测",而是"更深的耦合"):这是本节、乃至本章 §4.4 想钉死的一个认知。回顾 §4.4.2 的教学警示——开环指标上完美的预测器也治不了 frozen robot。真正的药方在"耦合深度"这根轴上,而不在"预测精度"这根轴上。 解耦→条件→联合,每深一步,对两病的疗效就强一档。这解释了一个看似矛盾的现象(§4.5 会用闭环数据印证):为什么独立提升预测器的开环精度,对最终闭环驾驶安全的边际贡献越来越小——因为瓶颈早就从"预测准不准"转移到了"预测和规划耦合得够不够深"。看懂这一点,你就理解了 2024 年后顶会重心为何坚决地从"纯预测涨点"转向"联合/端到端"——研究者们集体意识到,再在解耦架构里把 minADE 刷低,是在错误的轴上努力。

4.4.6 一个贯穿三范式的具体场景:密集车流强行汇入

抽象的范式对照容易记成口号,本小节用一个具体场景把三范式走一遍,让你"看见"耦合深度如何改变行为。这也是 R6 工具 A(多视角理解)在叙事层面的应用——同一场景,三种系统三种活法。

场景设定:ego 在匝道末端,要汇入主路车流。主路上 B 车正以稳定速度逼近汇入点,二者大致同时到达。物理上存在两种自洽的未来:(甲) ego 先汇、B 减速让行;(乙) B 先过、ego 等待。这是一个典型的"二选一谈判"——没有交互建模,无法确定走哪个。

解耦范式怎么走(患病): 1. 预测模块独立预测 B 的未来。由于它不知道 ego 想汇入(marginal 假设 B 独立演化),它基于"B 当前匀速"预测出"B 继续直行、不减速"这条主导轨迹(这在"ego 不汇入"的隐含前提下确实是 B 最可能的行为)。 2. 规划模块拿到"B 不让"的预测,把 B 的轨迹当成硬障碍。它发现:现在汇入会与 B 的预测轨迹冲突 → 不安全 → 最优解是等待。 3. ego 等待,B 果然直行通过。预测"准"了,但 ego 错失了汇入时机——若车流密集,ego 可能永远等不到"主路自己空出来",于是 frozen(§4.4.2 病灶一)。更糟的是,"B 不让"这个预测被 ego 的等待自我实现了(§4.4.2 病灶二)——系统由此"学到""汇入很难、还是等吧",陷入越来越保守的认知闭环。

条件范式怎么走(缓解): 1. 规划模块先提出一个候选计划:"ego 果断汇入"。 2. 预测模块 condition on 这个计划预测 B:现在它知道"ego 正在果断切入我前方",于是预测出"B 减速让行"(因为数据里见过无数次'有车果断切入时,理性司机会让')。 3. 规划模块看到"若我果断汇入,B 会让",于是判断汇入安全 → 执行汇入。frozen 被打破——因为预测不再假设 ego 被动(§4.4.3)。 4. 局限:这里 ego 是"先猜一个计划、再验证 B 反应",本质是迭代两段式。若候选计划生成得保守(只敢提"缓慢试探"),仍可能不够果断;且对每个候选计划都要重算一次 B 的反应预测,算力翻倍。

联合范式怎么走(根治): 1. 不分先后——预测与规划在同一个优化/网络里共同求解一个一致的联合未来。 2. 求解过程(无论是 GameFormer 的 level-k 迭代还是 DIPP 的可微优化)会收敛到一个博弈均衡:在均衡里,"ego 果断汇入"和"B 减速让行"互为最优、互相一致——ego 因为预期 B 会让而敢汇,B 因为看到 ego 在汇而让。这正是物理上自洽的未来(甲)。 3. 输出的 ego 计划与 B 预测天然兼容(不像解耦那样一个要冲一个不让地打架),frozen robot 与 self-fulfilling prophecy 都被根治——因为系统直接求解了"双方都最优"的联合结果,而非"假设对方不动"的悲观单边解。 4. 代价:求解/训练复杂,算力高,且这个"博弈均衡"在多车、多模态下可能不唯一(选哪个均衡本身是难题),验证也更难。

本质洞察(同一场景三种活法,本质是"对 B 的反应性建模了几分"):把三范式在这个场景里并列,会看到一条清晰的递进——解耦把 B 当成"不会对我反应的死障碍",条件把 B 当成"会对我的既定计划反应的 follower",联合把 B 当成"和我同时博弈、互相反应的对等玩家"。对 B 反应性的建模从"零"到"单向"到"双向耦合",恰好就是耦合深度的三档。这个场景因此是整节的"缩影"——你日后判断任何一个系统的耦合深度,都可以套这个问题:它把他车当成死障碍、单向 follower、还是对等博弈方? 答案就是它的范式归属。这也再次印证了 §4.2.4 那句"交互做到尽头,预测与规划的墙必然倒塌"——因为只有联合范式才真正建模了"双向反应"这个交互的本质。

对比性思维(人类司机其实天生用联合范式):一个熟练的人类司机汇入时,绝不会"先独立猜主路车会不会让、再决定汇不汇"(解耦),而是一边用车头姿态向主路车"释放汇入意图"、一边观察对方是否松油门,在零点几秒内完成一次心照不宣的博弈谈判——这就是联合范式的人类版。新手司机之所以在汇入/环岛"frozen",恰恰是因为他们退化到了解耦思维("我先看清楚再动"),而老司机用的是联合思维("我动起来,用我的动作和对方谈判")。这个类比的边界:人类的"谈判"靠的是常识与社会默契(眼神、车头微动),当前的联合算法靠的是数值均衡或学习——像在"双向反应"的结构,不像在"实现手段"。这个类比也预告了 §4.6.6——VLA/基础模型想注入的,正是人类这种"社会默契常识"。

4.4.7 与博弈综述的会师全景:两条路、一座山

本节多次提到"会师",这里做一个总结性的全景——这是理解本章在整个规控体系中位置的关键。

博弈规划综述(30_博弈规划.md)走的是"求解派"路线:把他人显式建模成有自己代价函数、会做最优反应的决策者,用数值优化(迭代最佳响应、iLQGames、ALGAMES、可微博弈)求解 Nash/Stackelberg 均衡。它的优势是数学严格、可解释、有理论保证;劣势是对代价函数和模型假设敏感、难以处理高维感知输入、计算可能不实时

本章交互预测综述走的是"学习派"路线:从大规模数据中学习他人的行为分布,用神经网络(LSTM/GNN/Transformer/扩散)逼近预测,再通过条件/联合范式与规划耦合。它的优势是能吃原始感知、能处理复杂场景、数据驱动;劣势是黑箱、难验证、依赖数据分布、长尾脆弱

两条路在三个点会师: 1. 条件预测 ↔ Stackelberg 博弈(§4.4.3):ego 作 leader 承诺计划,他车作 follower 反应——求解派用优化算反应,学习派用网络学反应。 2. 联合范式 ↔ Nash 均衡求解(§4.4.4):预测与规划共求"互相最优"的均衡——GameFormer 的 level-k 学习 ≈ 博弈综述的迭代最佳响应。 3. 可学习 cost ↔ 逆博弈/逆最优控制(§4.4.4 路线 A):DIPP 从数据学规划 cost ≈ 博弈综述从演示反推他人代价函数。

本质洞察("求解 vs 学习"不是竞争,而是互补,未来必然融合):很多初学者把博弈规划和学习预测看成对立的两派,要分个高下。这是误解。它们是攀登"交互决策"这座同一座山的两条互补路线——求解派提供严格性与可验证性(安全关键场景的刚需),学习派提供表达力与可扩展性(复杂真实世界的刚需)。当前最前沿的工作(GameFormer、DIPP、以及博弈综述流派六"可微博弈/学习混合")正是二者的融合:用学习处理感知与建模、用博弈/优化保证交互的结构与安全。这个融合判断,是本对孪生综述(30_博弈规划.md + 本章)想共同传递的最高层结论——也是你作为机器人工程师,在"纯优化"和"纯学习"之外应当瞄准的第三条路。

4.4.8 本节速查表

维度 解耦 条件 联合
信息流 预测→规划(单向) 规划假设→预测→规划 预测⇄规划(耦合)
数学刻画 \(p(\text{他车}\mid\text{历史})\) \(p(\text{他车}\mid\text{历史},\text{ego 计划})\) 联合均衡求解
博弈对应 Stackelberg(leader-follower) Nash(共求均衡)
frozen robot 患病 缓解 根治
代表作 工业标配管线 PRECOG, PiP, M2I DIPP, GameFormer, UniAD/VAD
与博弈综述会师 §4.4.3 §4.4.4 / §4.4.7

本节常见陷阱(覆盖概念混淆类、因果误判类、评估误导类、选型类):

陷阱一:以为"把预测做得更准就能解决 frozen robot"。 现象:团队把资源全投在刷预测精度上,却发现机器人在汇入场景还是不敢动。根本原因:不理解 §4.4.2 教学警示——病在架构的单向性,不在精度。正确做法:往"耦合深度"轴上走(上条件或联合范式),而非死磕开环精度。

陷阱二:混淆 frozen robot 与 self-fulfilling prophecy。 现象:把两者当成一个病或随意互换。根本原因:没区分"行为后果(不敢动)"与"认知闭环(悲观预测自证)"。正确做法:记住它们同源但一个谈行为、一个谈认知(§4.4.2 对比性思维)。

陷阱三:把"条件预测"误当成"联合优化"。 现象:实现了 condition on ego 计划就宣称"做了联合规划-预测"。根本原因:没意识到条件范式仍是迭代两段式,不是同一优化里共生(§4.4.3 局限)。后果:低估了真正联合范式的训练复杂度。正确做法:分清"加了反馈的两段"与"真正同时求解的一体"。

陷阱四:把端到端的高开环分当成"解决了耦合"。 现象:UniAD/VAD 类模型开环指标漂亮就以为闭环驾驶也好。根本原因:忽视开环-闭环鸿沟(§4.5 详述)——端到端模型同样受此困扰,甚至因黑箱更难诊断。正确做法:用闭环 benchmark(nuPlan CLS)评估,别只信开环数。

陷阱五:把博弈规划和学习预测看成互斥对立。 现象:争论"该用博弈求解还是该用神经网络预测"。根本原因:没看到 §4.4.7 的会师与互补。正确做法:理解二者是同一座山的两条路,前沿在于融合。

本节练习: 1. (病灶诊断) 描述一个你生活中见过的"人类司机版 frozen robot"场景(如新手在环岛迟迟不敢汇入)。分析:如果给这个新手装上"条件预测"的能力(即"我果断一点,对方多半会让"),他的行为会怎么变?这对应本节哪个范式跃迁? 2. (自我实现预言) 解释为什么一个"永远保守等待"的自动驾驶系统,会让它的预测器在数据上看起来"越来越准",却永远学不会果断。这个反馈闭环如何阻碍系统进步?(提示:从训练数据的分布被系统自身行为污染的角度思考。) 3. (会师论证) 用自己的话论证"条件预测 ≈ Stackelberg 博弈"。明确指出:谁是 leader、谁是 follower、求解派和学习派分别如何得到 follower 的反应、二者的世界观为何一致。 4. (范式选型) 你要为三个场景各选一种耦合范式并说明理由:(a) 高速公路定速巡航;(b) 城区无保护左转穿越对向车流;(c) 安全关键、需通过功能安全认证的园区低速接驳。指出每个选择在"性能/可验证性/算力"上的取舍。 5. (开放·融合) §4.4.7 说未来在于"求解派与学习派融合"。请设计一个融合方案的草图:哪部分用学习(如感知、行为分布)、哪部分用博弈/优化(如安全约束、均衡求解)、它们如何接口。这道题没有标准答案,重在体现你对两条路线优劣的理解。 6. (概率视角) 用 §4.4.1 多视角理解里的"概率语言",把解耦/条件/联合三范式分别写成它们建模的概率对象(\(p(\tau_{\text{他}})\) / \(p(\tau_{\text{他}}\mid\tau_{\text{ego}})\) / \(p(\tau_{\text{他}},\tau_{\text{ego}})\))。再解释:为什么"独立假设 \(p(\tau_{\text{他}},\tau_{\text{ego}})\approx p(\tau_{\text{他}})p(\tau_{\text{ego}})\)"在强交互场景是错的?它与 §4.2.4 的碰撞反例如何对应? 7. (循环依赖) §4.4.1 说预测-规划是"鸡生蛋的循环依赖"。请论证:为什么"循环依赖"这个视角能统一解释三范式(解耦=切断循环、条件=走一两遍循环、联合=求循环的不动点)?再举一个你熟悉的其他工程领域里"循环依赖"的例子,说明人们一般怎么打破它。 8. (场景推演) 把 §4.4.6 的汇入场景改成"四岔路口四车同时到达"。分析:解耦范式下会发生什么(提示:所有车互相把对方当障碍)?联合范式要求解一个什么样的均衡?为什么车数增多会让"选哪个均衡"变难(提示:均衡可能不唯一)?这道题指向多智能体博弈的均衡选择难题。

过渡到 §4.5:§4.4 反复提到一个幽灵——"开环指标与闭环部署的错配"。我们说"提升开环精度治不了 frozen robot""端到端开环分高不代表闭环好",但还没正面讲清楚:到底用什么数据、什么指标来评估预测和规划?这些指标为什么会骗人? 下一节就专门解剖评估体系——数据集的定位差异、minADE/minFDE 这套 min-over-K 指标的含义与争议、各 leaderboard 的排序口径,以及那条贯穿全章的根本裂缝:开环与闭环的鸿沟。


§4.5 数据集与评估指标 ⭐⭐⭐

本节解决的问题:一个方向的进步是被它的"标尺"塑造的——你用什么指标评判,研究者就往什么方向优化。交互预测方向的标尺由两部分组成:数据集(拿什么场景训练和测试)和评估指标(用什么数来打分)。本节先横向对比四大主流数据集的定位差异,再深挖 minADE/minFDE 这套 "min-over-K" 指标的精确含义与内在争议,最后正面解剖贯穿全章的根本裂缝——开环指标与闭环部署的错配。读完你应能看懂任何一篇预测论文的实验表、判断它在哪个榜单上、用什么口径排名,并对"榜单高分"保持清醒的怀疑。

4.5.1 为什么"评估"值得单列一节

在很多技术方向,评估只是附属——做出方法,跑个指标,报个数。但在交互预测方向,评估本身就是一个充满陷阱、甚至左右了整个方向走向的核心议题,理由有三:

第一,多模态使评估天然困难。预测输出的是一个"轨迹分布的 K 个样本",而真值只有一条(数据里只录到了实际发生的那一个未来)。用"一条真值"评判"K 个预测分布样本",本身就是不良定义的——你怎么知道那些没发生的模态是对是错?这逼出了 min-over-K 这类"取最优样本"的指标,而它们带着深刻的副作用(§4.5.3)。

第二,开环-闭环鸿沟使"高分"可能误导。绝大多数预测指标是开环(open-loop) 的——在录制好的固定数据上,比较预测轨迹与真值轨迹的距离。但真实部署是闭环(closed-loop) 的——车的每个动作都会改变后续场景。一个开环指标极高的模型,闭环开起来可能很差(§4.5.4)。这个鸿沟是 §4.4 反复提及的幽灵,本节正面捉它。

第三,榜单口径差异塞满了魔鬼细节。nuScenes、Argoverse、Waymo、nuPlan 各自的排序主指标、K 值、时间跨度、marginal/joint 口径都不同,不理解这些,读论文实验表时会张冠李戴、错误对比。

本质洞察(指标即激励——你度量什么,就会得到什么,连同它的副作用):评估指标不是中立的"温度计",而是塑造整个方向的"激励函数"。当 minADE 成为主榜指标,研究者就会优化"K 条里最好那条的精度",于是催生了"广撒网刷分"(§4.5.3);当 nuPlan 用闭环分,研究重心就转向闭环鲁棒性。理解一个方向,很大程度上就是理解它的指标在奖励什么、纵容什么。 这一节教你的不只是"有哪些指标",而是"每个指标在悄悄激励什么扭曲行为"——这是读懂整个方向研究动态的元能力。

对比性思维(这正是 Goodhart 定律在预测方向的活体标本):经济学有一条 Goodhart 定律——"当一个度量成为目标,它就不再是好的度量"(because people will game it)。交互预测方向是这条定律的完美标本:minADE 本想度量"预测得好不好",但一旦它成为 leaderboard 的目标,研究者就会优化它本身(广撒网、对数据集偏置过拟合),于是 minADE 越刷越低、却越来越偏离"对驾驶有用"这个真实目标。这不是研究者不诚实,而是激励结构的必然——你用什么排名,人就优化什么,连同它的漏洞。理解 Goodhart 定律,你对一切"刷榜进步"都会多一层清醒:进步可能是真的(模型真变好),也可能是 Goodhart 式的(只是更会刷这个特定指标)。区分这两者的唯一办法,是看它在'没被当成目标优化过'的新指标/闭环上是否也好——这正是闭环评估(§4.5.4)、任务驱动评估(§4.5.6)的价值:它们更难被直接 game。这条定律也是 §4.6 那些开放问题的元背景——很多"开放问题"本质是"我们还没有一个难以被 game 的好指标"。

4.5.2 四大数据集的定位差异

交互预测/运动规划方向有四个绕不开的大型数据集,它们不是"同一件事的不同版本",而是定位、规模、评估哲学各不相同的四块基石。理解它们的差异,是读懂"某方法在哪个榜上 SOTA"的前提。

(1) nuScenes(2019,Motional/nuTonomy)。全栈自动驾驶数据集(含 3D 检测、跟踪、预测、建图等多任务),预测子任务用 6 秒 预测跨度,排序主指标是 minADE₅(K=5)。它规模相对小、但多模态传感器齐全(相机+激光+毫米波),是早期预测研究的常用台子。定位:多任务全栈、中等规模、预测是其中一环

(2) Argoverse 1 / Argoverse 2(2019 / 2021,Argo AI)专为运动预测设计的数据集。Argoverse 1 用 3 秒 预测跨度(给 2 秒历史预测 3 秒未来);Argoverse 2 扩展到更长跨度(6 秒)、更多场景类型与更丰富的地图。排序主指标是 brier-minFDE(K=6)——注意它不是单纯的 minFDE,而是把"最优那条的终点误差"乘上一个与"该条预测概率"相关的 Brier 惩罚项(预测越自信却越偏,罚得越重)。定位:预测专用、大规模、地图丰富、是纯预测方法的主战场

(3) Waymo Open Motion Dataset / WOMD(2021,Waymo)。规模最大、交互最密集的预测数据集之一。它给 1 秒历史,在 3、5、8 秒 三个时间点评估(最长跨度,对长时预测最严苛)。排序主指标是跨时间平均的 Soft mAP(mean Average Precision 的软化版,把预测当成"检测"问题来评 precision-recall)。关键特色:它明确区分 marginal 赛道和 interactive/joint 赛道(§4.2.4 的边缘 vs 联合在这里被正式制度化)——interactive 赛道要求输出成对智能体的联合一致预测。定位:最大规模、最长跨度、首个正式区分联合预测、MTR 等称霸于此

(4) nuPlan(2021,Motional)第一个大规模闭环规划 benchmark——这是它与上述三者的根本区别。前三者都是开环预测数据集(比预测轨迹与真值的距离),nuPlan 是闭环规划台子:它提供一个轻量级闭环模拟器,让你的规划器实际"开"起来,用驾驶结果(是否碰撞、是否偏离、是否舒适)评分。它的三个核心指标:OLS(开环分)、CLS-NR(非反应式闭环分)、CLS-R(反应式闭环分)——后两者的区别是周围交通智能体是否会对 ego 做出反应。定位:唯一的大规模闭环台子,是检验 §4.4 耦合范式真实效果的地方

对比性思维(开环预测台 vs 闭环规划台——不是规模之差,是哲学之差):nuScenes/Argoverse/Waymo 与 nuPlan 的区别,不是"小数据集 vs 大数据集",而是"开环 vs 闭环"这一根本的评估哲学之差。前三者问"你预测的轨迹离真值有多近"——这是一个静态的、一次性的比较,车不会真的动。nuPlan 问"你开起来安不安全"——这是一个动态的、累积的评判,每个决策都改变后续场景。这个差别决定了:在前三者上 SOTA 的预测器,未必能在 nuPlan 上开好(§4.5.4)。理解这层哲学之差,比记住"哪个数据集多大"重要一百倍。

本质洞察(数据集的演化本身就是一部"补漏史",与 §4.1 的方法补漏链同构):把四个数据集按时间排开,会看到它们也在层层补前者的漏,与 §4.1 的方法演化是同一种规律。ETH/UCY(行人,早期):只有行人、无地图——漏了车辆与地图。nuScenes(2019):补了多传感器与地图,但规模小、预测只是多任务之一——漏了大规模专用预测数据。Argoverse(2019):补了大规模、地图丰富的专用预测数据,但跨度短(3s)、只评边缘——漏了长时与联合。Waymo WOMD(2021):补了最大规模、最长跨度(8s)、首次正式区分联合预测——但仍是开环,漏了"评估与部署的错配"。nuPlan(2021):补上了闭环这一最大的漏——但闭环模拟的反应智能体不够真,又漏了"模拟的真实性",于是 2025 年 SMART 等反应智能体来补(§4.5.4)。这条数据集补漏链揭示一个深刻的事实:每个新数据集都是对'上一代数据集让研究者优化错了方向'的纠偏——Argoverse 让大家刷边缘 minADE,Waymo 说"还要管联合",nuPlan 说"开环根本不对,要闭环"。数据集不是中立的容器,而是和指标一样(§4.5.1),是塑造整个方向走向的'激励函数'。看懂这条链,你就明白为什么"在哪个数据集上 SOTA"本身就携带了"被引导往哪个方向优化"的信息。

四大数据集速查

数据集 年份 类型 历史/预测跨度 排序主指标 K marginal/joint 定位
nuScenes 2019 开环预测(多任务) 预测 6s minADE₅ 5 marginal 多任务全栈、中等规模
Argoverse 1 2019 开环预测(专用) 2s→3s brier-minFDE 6 marginal 纯预测主战场
Argoverse 2 2021 开环预测(专用) →6s brier-minFDE 6 marginal 更长跨度、更丰富地图
Waymo WOMD 2021 开环预测(专用) 1s→3/5/8s Soft mAP(跨时平均) 6 两赛道分立 最大规模、首个正式联合
nuPlan 2021 闭环规划 闭环模拟 OLS / CLS-NR / CLS-R 唯一大规模闭环台

多视角理解(nuPlan 三个指标 OLS / CLS-NR / CLS-R 的微妙递进——它本身就是一部"鸿沟教学"):nuPlan 同时报三个分,不是冗余,而是故意让你看到从开环到闭环的鸿沟有多大: - OLS(Open-Loop Score):开环分——让规划器在录制数据上输出轨迹、比与人类真值的相似度。这是"模仿得像不像"。 - CLS-NR(Closed-Loop Score, Non-Reactive):非反应式闭环分——规划器实际驾驶,但背景车按录制的轨迹回放、不对 ego 反应。这暴露了 §4.5.4 原因一、二(误差累积、因果混淆),但还没暴露交互。 - CLS-R(Closed-Loop Score, Reactive):反应式闭环分——背景车会对 ego 做出反应(早期用 IDM 跟车模型)。这才暴露了 §4.5.4 原因三(交互的反应性)。 关键的教学价值在于:一个模型在这三个分上的落差,恰好量化了它在"模仿"与"驾驶"之间掉了多少、在"无交互"与"有交互"之间掉了多少。常见现象是 OLS 高但 CLS 低(模仿得像但开不好),以及 CLS-NR 还行但 CLS-R 退化(不会处理交互)。所以读 nuPlan 结果时,别只看一个分,要看三个分的落差——落差本身就是诊断信息,告诉你模型的弱点在"序贯稳定性"还是"交互处理"。这是 §4.5.4 开环-闭环鸿沟在指标设计上的精巧体现。

4.5.3 minADE / minFDE 家族:min-over-K 指标的含义与争议

预测方向的开环指标,绝大多数是 min-over-K 家族。逐个讲清它们的定义与争议——这是读懂任何预测实验表的基本功。

基本定义。模型对一个智能体输出 \(K\) 条候选轨迹(通常 K=6),真值轨迹只有一条。设第 \(k\) 条预测在时刻 \(t\) 的位置为 \(\hat{p}^{(k)}_t\),真值为 \(p_t\),预测时长 \(T\)

  • ADE(Average Displacement Error,平均位移误差):单条轨迹在所有时刻与真值的平均欧氏距离,\(\text{ADE}^{(k)}=\frac{1}{T}\sum_{t=1}^{T}\|\hat{p}^{(k)}_t - p_t\|\)
  • FDE(Final Displacement Error,终点位移误差):只看终点时刻的误差,\(\text{FDE}^{(k)}=\|\hat{p}^{(k)}_T - p_T\|\)。FDE 比 ADE 更严苛地考察"长时方向是否对"——因为误差在终点累积最大。
  • minADE / minFDE(min-over-K):在 \(K\) 条预测里,取与真值最接近的那一条的 ADE/FDE,\(\text{minADE}=\min_{k}\text{ADE}^{(k)}\)。这是 K 条里的"最优样本"得分。

对比性思维(ADE 与 FDE 各偏袒什么——为什么要同时报两个):ADE 和 FDE 不是冗余,它们考察轨迹的不同侧面。ADE(全程平均) 看重"整条轨迹是否贴合"——一条全程小偏差的轨迹 ADE 低,但它对"终点偏多少"不敏感(因为被全程平均稀释)。FDE(只看终点) 看重"长时方向对不对"——它专门盯着误差累积最大的终点,因此对"模态选对没有"(左转还是直行,终点天差地别)极其敏感。一个常见的现象是:两车都直行但速度估计略偏,ADE 和 FDE 都低;而一辆该左转的车被预测成直行,ADE 可能还行(前半段都对)但 FDE 巨大(终点完全跑偏)。所以 FDE 更能暴露"模态/意图判断错误"这类致命问题,ADE 更能反映"全程平滑度"。同时报两者,是为了既看'贴不贴合'又看'方向对不对'——这也是为什么 Argoverse 用 FDE 系(brier-minFDE)做主排序:在自动驾驶里,"终点(意图)对不对"比"全程平均误差"更关乎安全。

为什么要 min-over-K:回到 §4.5.1 第一个理由——未来是多模态的,但数据里只录到一个真值。如果模型预测了"左转、直行、右转"三条,而真值是左转,用"平均所有 K 条的误差"显然不公平(会惩罚那些其实合理但没发生的右转预测)。min-over-K 的逻辑是:只要 K 条里有一条命中了真实发生的模态,就算模型"想到了"这个未来。这是对多模态的一种妥协性度量。

其他家族成员: - Miss Rate(MR,未命中率):K 条里最优那条的终点误差若超过某阈值(如 2 米),就算"miss",统计 miss 的比例。它考察"K 条里有没有一条足够接近"。 - brier-minFDE(Argoverse 主指标):minFDE 加上一个 Brier 惩罚 \((1-\pi_{k^*})^2\),其中 \(\pi_{k^*}\) 是最优那条预测的概率。它惩罚"猜对了但不自信"或"自信地猜了别的"——逼模型不仅要预测准,还要给对的模态赋高概率。这是对纯 minFDE "只看几何不看概率"缺陷的修补。 - mAP / Soft mAP(Waymo 主指标):把预测当成"检测"问题——每条预测带一个置信度,按置信度排序后算 precision-recall 曲线下面积。它能综合考量"准确性 + 概率校准 + 不重复刷模态"。

一个手算的数值例子(把抽象定义落地)。设预测时长 \(T=3\) 步(简化),某车真值轨迹终点 \(p_T=(10,0)\)。模型输出 \(K=3\) 条带概率的预测,三条的终点分别为:

预测 \(k\) 终点 \(\hat p_T^{(k)}\) 概率 \(\pi_k\) FDE\(^{(k)}=\|\hat p_T^{(k)}-p_T\|\)
1(直行) \((9.2, 0.6)\) 0.5 \(\sqrt{0.8^2+0.6^2}=1.0\)
2(左偏) \((7, 5)\) 0.3 \(\sqrt{3^2+5^2}\approx 5.83\)
3(右偏) \((8, -4)\) 0.2 \(\sqrt{2^2+4^2}\approx 4.47\)
  • minFDE \(=\min_k\text{FDE}^{(k)}=1.0\)(预测 1 最接近真值)。
  • Miss Rate(阈值 2 米):最优那条 FDE=1.0 < 2,故未 miss(该样本 MR 贡献 0)。
  • brier-minFDE \(=\text{minFDE}+(1-\pi_{k^*})^2\),其中 \(k^*=1\) 是最优那条,\(\pi_{k^*}=0.5\)。故 \(=1.0+(1-0.5)^2=1.0+0.25=1.25\)

多视角理解(这个数值例子揭示了三个指标的"性格"): - minFDE(1.0)的性格:只问"K 条里有没有一条够近",完全不看你给这条多少概率。它宽容——哪怕你给对的模态只赋 1% 概率,只要几何上接近就拿满分。这正是"广撒网"漏洞的根源。 - Miss Rate(0)的性格:比 minFDE 更"二元"——只关心"过没过阈值线",不区分"刚好压线"和"完美命中"。它适合统计"系统性失败率"。 - brier-minFDE(1.25)的性格:在 minFDE 上加了 0.25 的"不自信罚款"。如果模型把直行的概率从 0.5 提到 0.9,罚款会降到 \((1-0.9)^2=0.01\),brier-minFDE 降到 1.01。它逼模型不仅猜中、还要自信地猜中——这堵住了"广撒网但不敢给高概率"的部分漏洞。像/不像:像在于都以最优那条的几何误差为基;不像在于 brier 额外考核了"概率校准"这一维。

本质洞察(min-over-K 指标的根本争议:它奖励"想到了",却纵容"广撒网"):这是前置自测第 5 题的核心,也是整个开环评估体系的"原罪"。min-over-K 只看"K 条里最好的那条",这带来一个致命的可被利用的漏洞——模型可以靠"广撒网"刷分:与其精心预测几条高质量轨迹,不如撒出 K 条尽量分散、覆盖所有可能方向的轨迹,总有一条会蒙中真值,minADE 自然低。但这样的"预测"对下游规划毫无价值——规划器拿到 6 条乱撒的轨迹,等于拿到"什么都可能",反而更容易 frozen(§4.4.2)!所以 minADE 低 ≠ 预测有用。这正是 brier-minFDE(加概率惩罚)、mAP(看校准与 precision)试图修补的方向——但它们都是打补丁,没有根治"用一条真值评 K 个样本"的不良定义本质。理解这个原罪,你就明白为什么 §4.4.5 说"刷开环精度对闭环安全边际贡献递减"——因为开环高分里掺了大量"广撒网"的水分。

教学警示(不要被实验表里 0.01 的 minADE 差异唬住):读预测论文时常见"我们的 minADE 从 0.72 降到 0.69,SOTA!"。请保持清醒:① 这 0.03 的提升可能完全来自"广撒网"或对数据集特定偏置的过拟合;② 开环 0.03 的提升几乎不可能转化为可感知的闭环驾驶改善(§4.5.4);③ 不同论文若用了不同的 K、不同的预测跨度、不同的 marginal/joint 口径,数字根本不可直接比。学术 SOTA 的小数点后第二位,对工程部署的意义往往为零。 这是 R6 工具 B(对比性思维)和工程理性的体现。

多智能体场景的指标变体。上面的 minADE/minFDE 是针对单个待预测智能体的。当场景里有多个智能体要同时预测(multi-agent / scene-level),指标要相应推广,这里点清三个常见变体,避免读多智能体论文时困惑: - avgMinADE / avgMinFDE:把场景里所有待预测智能体各自的 minADE/minFDE 求平均。注意它仍是"先各自取 min、再平均"——所以它评的是边缘质量的平均,不强制联合一致性。 - actorMR:场景里所有智能体的 Miss Rate 的聚合——衡量"平均而言有多少智能体被 miss"。 - 联合(joint)指标:Waymo interactive 赛道的真正联合口径——要求输出 K 个整体场景预测,对每个场景预测里所有智能体都算误差,取场景级最优的那一个。这与"各自取 min 再平均"有本质区别(§4.2.4 边缘 vs 联合):联合指标里,一辆车选了第 3 模态,同一场景预测里的其他车也必须用与之兼容的模态,不能各取所需。

对比性思维(avgMinADE vs 真联合指标——又一个"边缘 vs 联合"的化身):不是"把每辆车的 min 平均一下就等于评了场景"。avgMinADE 允许"A 车用它的第 1 模态拿低分、B 车用它的第 5 模态拿低分",二者可能属于互不兼容的两个未来——它评的是"每辆车单独看最好能多准"。真联合指标则强制"A、B 必须在同一个场景未来里都还不错",它评的是"作为一个整体场景预测得多准"。前者宽松、刷分易;后者严苛、更贴合下游规划真正需要的"自洽的场景未来"。这个区别再次印证 §4.2.4 的本质洞察——边缘准 ≠ 联合准,连指标层面都要把这两件事分开评。

4.5.4 开环-闭环鸿沟:本方向最深的评估裂缝

现在正面捉住那个贯穿全章的幽灵——开环(open-loop)评估与闭环(closed-loop)部署的根本错配

什么是开环 vs 闭环: - 开环评估:在一段录制好的、固定的真实数据上,让模型预测/规划,比较输出与"数据里实际发生的"真值的距离(minADE、L2 距离等)。车的预测不影响后续场景——因为场景是录死的回放。 - 闭环评估:让模型在一个模拟器里实际"驾驶",它的每个决策都改变车的位置、进而改变后续看到的场景、进而影响后续决策。误差会累积、会反馈

为什么二者会严重错配——三个层层递进的原因:

原因一:误差累积(compounding error / covariate shift)。开环里每一步都用"真值历史"作为输入(teacher forcing),模型只需预测下一步;闭环里模型用"自己之前的(带误差的)输出"作为后续输入,误差会滚雪球般累积,把车带到训练分布之外的状态(covariate shift),那里模型从没见过、表现崩坏。这是模仿学习的经典顽疾——开环只考一步、闭环考整条轨迹的稳定性

原因二:分布漂移与因果混淆。开环数据是"人类司机实际开出来的",模型可能学到虚假相关而非因果——经典例子是"刹车灯亮 → 减速"的因果被模型学反成"减速 → 推断该亮刹车灯",开环上对(因为数据里二者总同时出现),闭环上灾难(车不会因为自己想减速就让前车亮灯)。开环评估无法暴露这类因果错误,闭环立刻暴露。

原因三:交互的反应性在开环里被冻结。这是与 §4.4 最直接的连接——开环回放里,其他车的轨迹是录死的,绝不会对 ego 的新决策做出反应。于是开环评估结构性地无法考察 frozen robot 和 self-fulfilling prophecy——因为它根本不让"ego 影响他车"这件事发生。一个在开环上完美的预测器,可能在闭环里一汇入就冻死。

本质洞察(开环-闭环鸿沟,是把"预测"和"驾驶"误当成一回事的代价):开环指标度量的是"预测能力"——给定历史,复现未来有多准。闭环指标度量的是"驾驶能力"——在动态反馈中安全到达。这两件事的相关性远比直觉弱。nuPlan 论文自己的实证结论就是一句重锤:开环预测质量与闭环驾驶表现只有微弱相关。这从评估层面给了 §4.4.5 那个判断最硬的证据——为什么提升开环精度对闭环安全边际递减?因为它们度量的根本不是一回事。这也解释了 §4.1.5 之后整个方向的转向:从"在开环榜上刷 minADE"转向"在闭环 nuPlan 上提 CLS",从"独立预测器"转向"联合/端到端"。看懂这条鸿沟,你就拿到了评判这个方向一切'SOTA 宣称'的终极标尺。

前沿进展(2024–2025):让闭环更真实。即便 nuPlan 这样的闭环台也有局限——它的"反应式"背景智能体早期较简单(用规则跟车模型 IDM),不够像真人。2025 年的研究(如《When Planners Meet Reality: How Learned, Reactive Traffic Agents Shift nuPlan Benchmarks》)把学习式反应智能体(如 SMART) 接入 nuPlan,建立更真实的闭环。一个发人深省的结论:在这种更真实的高密度交互闭环下,多数规划器随交互复杂度上升而性能恶化——连 PLUTO、Diffusion-Planner、CaRL 这些 SOTA 也只在中等密度受益、高密度退化。这印证了 §4.6 将讲的"长尾与强交互才是真正的硬骨头",也说明闭环评估本身也在不断逼近真实、不断抬高门槛

鸿沟的理论根:模仿学习的 covariate shift。把开环-闭环鸿沟追到底,会落到一个机器学习的经典理论问题上——模仿学习(imitation learning)的复合误差(compounding error)。监督学习假设训练和测试是独立同分布(i.i.d.) 的,但模仿驾驶违反了这个假设:训练时模型见到的是"人类司机访问过的状态分布",部署时模型访问的是"它自己(带误差地)开出来的状态分布"——一旦犯一个小错把车带偏一点,就进入了一个人类司机从没去过、训练数据没覆盖的状态,模型在那里更容易犯更大的错,误差像滚雪球。理论上,若每步误差为 \(\epsilon\),朴素行为克隆(behavior cloning)的闭环误差会随时间步 \(H\)\(O(\epsilon H^2)\) 增长(而非 i.i.d. 期望的 \(O(\epsilon H)\))——这个二次方的恶化,正是开环低误差无法保证闭环安全的理论根源。

理论-工程桥接(缓解 covariate shift 的三条工程路线):理解了理论根,就理解了工业界为什么这样做—— - DAgger 类(数据聚合):让模型先开,把它开偏到的状态收集回来、请专家标注正确动作、加进训练集、重训,迭代缩小"训练分布"与"部署分布"的差距。本质是"哪里会犯错就补哪里的数据"。 - 闭环训练 / RL 微调:直接在闭环模拟里训练(而非开环监督),让模型在自己的状态分布上学习——CaRL 等用强化学习做闭环训练正属此类。代价是需要可微或可采样的模拟器。 - 加显式安全兜底:在学习策略之外套一层规则/优化的安全层(如可达性分析、控制屏障函数),把车"拉回"安全状态分布,不让它滚到崩坏区。这与 §4.6.6 的"安全层"和博弈综述的安全保证呼应。 这三条路线的共性是"想办法让模型在它真实会遇到的状态分布上变好",而非只在录制数据上变好——这正是从开环思维转向闭环思维的工程落点。

本质洞察(开环-闭环鸿沟不是"评估方法不好",而是"任务本质是序贯决策"):很多人把开环-闭环鸿沟当成"评估指标设计缺陷",以为换个更好的开环指标就能弥合。这是误判。鸿沟的根,是驾驶/预测-规划本质上是一个序贯决策(sequential decision making)问题——当前决策改变未来状态分布——而开环评估把它错误地当成了一个静态的、i.i.d. 的监督学习问题来评。 任务的本质(序贯、有反馈)与评估的假设(静态、无反馈)之间的错配,才是鸿沟的真正来源。这就是为什么 §4.4 的耦合、§4.5 的闭环、§4.6 的因果,本质上是同一个"序贯决策有反馈"在不同侧面的投影——它们共同指向一个判断:这个方向的终极正确框架,是序贯决策(决策论/强化学习/博弈论)的框架,而非静态监督学习的框架。这也是本教程把"预测"放进"规控(决策)"体系、而非"感知(监督学习)"体系的最根本理由。

4.5.5 本节速查表

概念 一句话 关键点/争议
ADE/FDE 预测与真值的平均/终点距离 FDE 更严苛(终点误差最大)
minADE/minFDE K 条里最优那条的 ADE/FDE 奖励"想到了",纵容"广撒网"
Miss Rate 最优那条终点是否超阈值 看"有没有一条够近"
brier-minFDE minFDE + 概率 Brier 惩罚 Argoverse 主指标,逼概率校准
Soft mAP 把预测当检测算 PR-AUC Waymo 主指标,综合准确+校准
marginal vs joint 各自独立 vs 场景级一致 Waymo 分两赛道(§4.2.4)
开环 OLS 录制数据上比预测距离 与闭环弱相关,会骗人
闭环 CLS 模拟器里实际开 nuPlan 核心,暴露 frozen/因果错

本节常见陷阱(覆盖指标误读类、跨论文对比类、开闭环混淆类):

陷阱一:把 minADE 低直接当成"预测好/有用"。 现象:看到 minADE 低就认可一个模型。根本原因:不懂 min-over-K 的"广撒网"漏洞(§4.5.3 本质洞察)。后果:选了一个会撒一堆无用轨迹、反而加剧 frozen robot 的模型。正确做法:同时看概率校准指标(brier、mAP)和闭环表现。

陷阱二:跨论文直接比 minADE 数字。 现象:把 A 论文的 0.69 和 B 论文的 0.71 直接比高下。根本原因:忽视 K 值、预测跨度、数据集、marginal/joint 口径的差异(§4.5.2 速查表)。后果:错误结论。正确做法:确认两者在完全相同的 benchmark 设定下,否则不可比。

陷阱三:用开环高分推断闭环安全。 现象:开环 SOTA 就宣称"能安全上路"。根本原因:无视开环-闭环鸿沟三大原因(§4.5.4)。后果:模型一上车/上闭环模拟就崩。正确做法:闭环验证(nuPlan CLS)是安全宣称的必要条件。

陷阱四:以为闭环模拟就等于真实。 现象:nuPlan CLS 高就以为路上没问题。根本原因:闭环模拟的背景智能体可能不够真实(§4.5.4 前沿进展)。正确做法:关注模拟器的反应式智能体真实度,警惕高密度长尾下的退化。

本节练习: 1. (广撒网实验设计) 设计一个"作弊"预测器,它不真正理解场景,但能在 minADE₆ 上拿到很低的分。说明它怎么撒这 6 条轨迹。再说明:换成 brier-minFDE 或 mAP 后,这个作弊器为什么会失分? 2. (因果混淆构造) 除了"刹车灯"的例子,再自己构造一个"开环对、闭环错"的因果混淆场景(如转向灯、跟车距离)。说明开环评估为何抓不到它、闭环为何能。 3. (口径辨析) 给定两篇论文:A 在 Argoverse 2 报 brier-minFDE=1.8(K=6, 6s),B 在 nuScenes 报 minADE=1.2(K=5, 6s)。能说"B 比 A 准"吗?逐项列出二者不可直接比较的原因。 4. (开放·指标设计) 如果让你设计一个比 minADE 更能反映"预测对下游规划有用程度"的指标,你会怎么设计?(提示:可以考虑"把预测喂给一个固定规划器、看规划质量"的 task-driven 评估,即闭环思想。)这道题指向当前研究前沿,无标准答案。 5. (手算 brier) 沿用 §4.5.3 的数值例子,若模型把直行(最优那条)的概率从 0.5 提高到 0.85、其余两条概率相应降低,重新计算 brier-minFDE。说明这个变化体现了 brier 在奖励什么。再问:minFDE 会变吗?为什么? 6. (Goodhart 辨析) §4.5.1 提到 Goodhart 定律。请举一个本章之外、你熟悉领域里的 Goodhart 现象(如"以代码行数考核程序员""以论文数考核科研")。再类比说明:为什么"闭环/任务驱动评估"比"开环 minADE"更难被 game?(提示:从"指标离真实目标有多近"思考。) 7. (口径侦探) 你读到一篇论文宣称"在 nuScenes 上 minADE 远超所有方法"。在相信它之前,你会追问哪 4 个问题来排除"它其实只是换了个有利于自己的评估口径或测试集划分"?(提示:K 值、时间跨度、是否用了额外数据/预训练、marginal vs joint。)

4.5.6 评估的演进方向:从"几何相似"到"任务驱动"

把 §4.5 的所有张力收束成一个前瞻判断——预测评估正在从"几何相似度"向"任务有用性"迁移,这是理解评估这条线未来走向的钥匙,也是 §4.5 通向 §4.6 的桥。

三代评估范式(与方法演化平行的另一条演进线): - 第一代·几何相似(geometric):minADE/minFDE——比预测轨迹与真值的几何距离。简单、可微(能当损失)、但与"有用性"脱节(§4.5.3 广撒网原罪)。 - 第二代·概率校准(probabilistic):brier-minFDE/mAP——在几何之上加"概率给得准不准"。修补了一部分原罪,但仍是开环、仍不直接度量"对规划有没有用"。 - 第三代·任务驱动(task-driven / closed-loop):直接问"用这个预测,车开得好不好"——nuPlan CLS 是其制度化形态;研究层面的 task-driven 指标(如把预测喂给固定规划器、看规划质量/安全性)是其轻量形态。它最贴合"有用性",但实现复杂、不可微、依赖规划器。

本质洞察(评估范式的迁移,本质是 §4.7.8 那条"从拟合到决策"主线在评估上的投影):三代评估的迁移方向高度一致——从"预测得像不像"(拟合视角)走向"预测得有没有用"(决策视角)。几何相似度是纯拟合论的(把预测当回归任务评);任务驱动/闭环是决策论的(把预测当决策系统的一环评)。这与 §4.4 的耦合演化(解耦→联合)、§4.5.4 的开环→闭环、§4.7.8 的"拟合→决策"是同一场认识论迁移在评估维度的显形。所以"该用什么指标"这个看似技术性的问题,背后是"你把预测当成什么问题"的根本立场——而本章反复论证的答案是:当成决策问题,于是评估也该是决策导向(任务驱动/闭环)的。这个判断指引你:做研究时,与其在开环 minADE 上抠小数点,不如设计能反映任务有用性的评估——这才是与方向演进同频的努力。

理论-工程桥接(任务驱动评估的工程代价与折中):任务驱动评估虽好,但有现实代价——它需要一个规划器(评估结果会依赖于用哪个规划器)、不可微(不能直接当训练损失)、计算重(每个预测都要跑一遍闭环)。工程上的折中是分层使用:训练时用可微的几何/概率损失(minADE/NLL)做梯度优化,模型选择与最终验收用任务驱动/闭环指标把关。这与 §4.5.4 缓解 covariate shift 的思路一致——用易优化的代理目标训练、用贴近真实的目标验收。理解这个折中,你就不会陷入"非此即彼"(要么纯几何要么纯闭环),而能在管线的不同环节用对的指标。

过渡到 §4.6:前五节我们梳理了历史(§4.1)、全景(§4.2)、骨干(§4.3)、耦合(§4.4)、评估(§4.5)——你已经掌握了这个方向的"已知地图"。但任何一个活跃的方向,真正的魅力在于它"未知的边疆"。最后一节,我们直面这个方向悬而未决的硬骨头:多模态评估的失真、开环-闭环鸿沟的弥合、长尾与分布漂移、不确定性的严格量化、交互的因果性,以及那条贯穿全章的工程现实——"Python 研究→C++ 部署"的鸿沟。这些开放问题,正是你未来可能投身其中的地方。


§4.6 开放问题与未来方向 ⭐⭐⭐⭐

本节解决的问题:综述的价值不仅在于"梳理已知",更在于"标定未知边疆"——告诉你这个方向还有哪些硬骨头没啃下来,从而帮你判断"值得投身哪里"。本节列出六个贯穿全章、至今悬而未决的开放问题。它们不是孤立的技术细节,而是从前五节的张力中自然生长出来的——每个开放问题,我们都指明它的根源、当前的尝试、以及为什么"还没解决"。这是难度最高、也最能体现研究品味的一节。

4.6.1 开放问题一:多模态评估的失真——我们到底该怎么评一个"分布"?

问题的根。§4.5.3 已揭示 min-over-K 的原罪:用"一条真值"评判"K 个分布样本"是不良定义的,min-over-K 奖励"想到了"却纵容"广撒网"。brier-minFDE、mAP 是补丁,但没有任何一个指标真正解决了"如何评估一个预测分布与真实分布的接近程度"——因为我们手里永远只有真实分布的一个采样(实际发生的那个未来),拿不到真实分布本身。

当前尝试:① 分布层面的指标(如用核密度估计逼近、算分布散度),但需要假设或多次采样,实践中难用;② task-driven 评估(§4.5.4 练习 4)——把预测喂给固定规划器,用规划质量反推预测质量,本质是用闭环替代开环;③ 概率校准指标(看模型给对的模态的概率是否准)。

为什么没解决:根本矛盾是数据稀缺性——你永远只观测到多模态未来的一个实现,无法直接监督"分布对不对"。这是一个数据生成机制的固有限制,不是换个指标能绕过的。它与 §4.6.2 的开环-闭环鸿沟、§4.6.4 的不确定性量化都纠缠在一起。

多视角理解("评估一个分布"难在哪——一个思想实验):设想你训练了一个完美的多模态预测器,它对某路口正确输出"左转 0.5 / 直行 0.3 / 右转 0.2"。现在来了一个测试样本,真值是"右转"。请问:你的预测器对还是错? - 若用 minADE/minFDE 评:只要右转那条轨迹几何上接近,就算"对"——但这等于说"只要你想到了右转就行",完全不考核你给右转的概率只有 0.2(偏低)。 - 若用似然评:右转的预测概率 0.2,似然不高,看起来"不太对"——但这冤枉了模型,因为它的分布其实是对的(这个路口真的左转更多),只是这一次恰好抽到了小概率的右转。 - 症结:用单次实现评判分布,无论怎么评都会偏——要么纵容(min-over-K),要么冤枉(单点似然)。唯一公正的评法是"拿很多个相同初始条件的实现来估真实分布、再比分布",但现实里相同初始条件的场景几乎不会精确重复(每个交通场景都是独一无二的),所以拿不到这些重复实现。这个思想实验暴露了多模态评估的认识论死结——它不是工程难题,而是"从单次观测推断分布"这一统计学根本困难在评估上的显形。这也是为什么本质洞察说它与开环-闭环、不确定性、因果性同根(§4.6.5 本质洞察)。

4.6.2 开放问题二:开环-闭环鸿沟的弥合——如何让"评估"逼近"真实部署"?

问题的根。§4.5.4 详述了这条裂缝:开环指标度量"预测能力"、闭环度量"驾驶能力",二者弱相关(nuPlan 实证)。这意味着整个方向用开环榜单驱动了多年的"进步",其中相当部分对真实部署无效——这是一个令人不安、但越来越被正视的事实。

当前尝试:① 建闭环 benchmark(nuPlan 是里程碑);② 让闭环更真实——把学习式反应智能体(SMART)接入模拟(§4.5.4 前沿进展),但随之暴露"多数规划器在高密度交互下退化";③ 真实世界路测(工业界),但成本高、不可复现、有安全风险。

为什么没解决:闭环模拟面临一个鸡生蛋的困境——要逼真地模拟"他车如何反应 ego",本身就需要一个完美的交互预测模型,而这恰恰是我们要评估的东西!用一个不完美的反应模型去评估另一个预测模型,评估结果本身就带偏。此外,长尾场景(§4.6.3)在模拟里难以充分覆盖。这个困境使"评估的真实性"成为一个可能永远只能逼近、无法彻底闭合的目标。

本质洞察(开环-闭环鸿沟与多模态评估失真,本质是同一个"我们没有真值分布"问题的两副面孔):把 §4.6.1 和 §4.6.2 放一起看,会发现它们同根——我们能观测的只是真实世界的一次采样(一条真值轨迹、一段真实路测),而我们想评估的是一个分布/一个反事实空间(所有可能的未来、所有可能的 ego 决策会引发的所有场景)。多模态评估失真是"未来分布的真值缺失",开环-闭环鸿沟是"反事实场景的真值缺失"(ego 若那样开,他车会怎样?数据里没有)。两者都是反事实推断(counterfactual inference) 的难题在评估上的投影。这把我们直接引向 §4.6.5 的因果性——交互预测的深层困难,归根结底是因果与反事实的困难。

4.6.3 开放问题三:长尾分布与分布漂移——99% 的平凡掩盖了 1% 的致命

问题的根。回顾 §4.2.2 那个"恒速模型在 Argoverse 上接近深度网络"的尴尬现象——它的解释正是长尾:数据集里绝大多数样本是平凡的直行/匀速跟车,物理外推就够用;真正需要交互建模的强交互、罕见场景只占极小比例,被平均进总指标后被稀释了。于是平均指标(minADE)系统性地掩盖了长尾,而长尾恰恰是安全的命门——致命事故几乎都发生在长尾(罕见的抢行、突然横穿、施工改道、极端天气)。

两个相关但不同的子问题: - 长尾(long-tail):训练分布内的罕见但重要事件——模型见过类似的,但样本太少学不好。 - 分布漂移(distribution shift / OOD):部署时遇到训练分布之外的情况——换了城市、换了天气、换了车辆类型,模型从没见过。

当前尝试:① 数据增强、罕见场景挖掘与重采样;② 专门的长尾 benchmark(如 Shifts Challenge 专测分布漂移);③ 仿真生成罕见场景(但仿真到现实又有 sim2real 鸿沟);④ 用基础模型/大模型的常识泛化处理没见过的场景(§4.6.6)。

为什么没解决:长尾的本质是"重要性"与"频率"的错配——最重要的样本恰恰最罕见,而数据驱动方法天生偏向高频。你无法靠"收集更多数据"解决(长尾永远在尾部),也无法靠"加大模型"解决(模型仍按频率分配容量)。这是数据驱动范式的结构性软肋,也是工业界最头疼、与学术 benchmark 差距最大的地方。

本质洞察(一个量化直觉:为什么平均指标对长尾"无感"):设想数据集 99% 是平凡场景(模型 ADE=0.3)、1% 是危险长尾(模型 ADE=3.0,差十倍)。平均 ADE = \(0.99\times0.3 + 0.01\times3.0 = 0.297+0.03=0.327\)——长尾那 1% 把平均只抬高了不到 10%!换言之,一个在最危险场景上烂到十倍的模型,平均指标几乎看不出来。更糟的是:如果你把长尾的 ADE 从 3.0 改善到 1.5(巨大进步!),平均 ADE 只从 0.327 降到 0.312——在 leaderboard 上几乎不可见,于是没人有动力去做这件最该做的事。这就是平均指标的"长尾麻木症"——它在数学上系统性地奖励"在常见场景上抠小数点"、惩罚"在罕见场景上下苦功"。理解这个量化直觉,你就彻底看穿了为什么 §4.6.3 的长尾问题和 §4.5.3 的指标原罪是一体两面,也理解了工业界为何要抛开平均指标、专门构建"长尾场景库"来单独考核。

理论-工程桥接(工业界的"数据引擎"应对——以及它的局限):面对长尾,工业界的主流应对是数据引擎(data engine)闭环——部署车队持续回传数据,用自动化手段挖掘"模型表现差/不确定性高/与人类接管点相关"的罕见场景,标注后加进训练集,重训、再部署,循环往复(特斯拉、Waymo 等都有类似闭环)。这本质是 §4.5.4 讲的 DAgger 思想在数据规模上的工业化。但它有结构性局限:① 长尾"挖之不尽"——补了一批罕见场景,总有更罕见的在等着(重尾分布没有"尾巴尽头");② 真正致命的场景往往太罕见以至于车队多年都遇不到几次(如特定的多车连环异常博弈),靠遇到再学根本来不及;③ 这正是为什么 §4.6.6 寄望于基础模型的"零样本常识泛化"——人类不需要见过某个特定危险才会避险,靠的是常识外推,而这恰是数据引擎补不出来的。这条"数据引擎 vs 常识泛化"的张力,是长尾问题通向基础模型方向的桥。

对比性思维(学术 benchmark 的"平均思维" vs 工业部署的"最坏思维"):学术界优化的是平均指标(minADE、平均 CLS)——这奖励"在常见场景上锦上添花";工业界关心的是最坏情况(worst-case,长尾上的致命失败率)——这要求"在罕见场景上不出大事"。这是两种根本不同的价值函数。一个 minADE 极低但在某类罕见路口偶尔预测灾难性错误的模型,学术上是 SOTA,工业上是禁止上路的。理解这个"平均 vs 最坏"的价值错位,是理解 §4.1.6/§4.3.6'学术-工业割裂'最深层原因的钥匙——割裂不只在工具(Python vs C++),更在价值函数(平均 vs 最坏)。

4.6.4 开放问题四:不确定性的严格量化——模型说"我不确定"时,可信吗?

问题的根。安全关键系统需要的不只是"预测什么",更是"对这个预测有多确定、这个确定性可不可信"。如果模型能可靠地说"这个路口我没把握",下游规划就能更保守、更安全。但现实是:绝大多数预测模型要么不输出不确定性,要么输出的不确定性没有校准(calibration)——它说的 90% 置信,实际命中率可能只有 60%

两类不确定性(必须区分): - 偶然不确定性(aleatoric):来自世界本身的随机性(未来本就多模态、他人意图本就不可知)——这是不可消除的,再多数据也无法消除。 - 认知不确定性(epistemic):来自模型知识的不足(训练数据没覆盖、模型容量不够)——这是可以靠更多数据/更好模型消除的,且它正是检测分布漂移(§4.6.3)的关键信号。

当前尝试:① 直接建模分布(输出高斯/GMM 参数);② 集成(ensemble,多个模型的分歧度作为不确定性);③ 保形预测(conformal prediction)——一个有严格统计保证的框架,能给出"包含真值概率 ≥ 1−α"的预测集合。2024–2025 的前沿工作(如 CUQDS, AAAI 2025)把保形预测与分布漂移结合,在线校准不确定性。

为什么没解决:① 区分偶然与认知不确定性本身就难(二者在数据上纠缠);② 校准在分布漂移下会失效(训练时校准好的,部署到新分布就不准了);③ 严格的统计保证(如保形预测)往往以"预测集合过大"为代价,对实时决策不友好。不确定性量化是连接"预测"与"安全规划"的关键桥,也是当前最活跃的研究子方向之一。

本质洞察(区分两类不确定性,为什么对规划是"生死攸关"的):偶然与认知不确定性的区分不是学术洁癖,它直接决定下游规划该如何反应——而这两种反应截然相反: - 面对高偶然不确定性("这个路口本来就难说,他车可能左也可能右"):规划的正确反应是为多种可能都留出安全裕度(如降速、保持更大间距、准备好应对任一分支)——这是"世界本就难料,我谨慎应对"。 - 面对高认知不确定性("这个场景模型从没见过,我的预测可能完全是瞎猜"):规划的正确反应是触发降级/接管/极端保守——因为此时模型的输出根本不可信,不能基于它做精细决策,而应退到"最小风险策略"(如靠边停车、请求人类接管)。这是"我不知道我不知道什么,赶紧退出自动驾驶"。 致命的错误是把两者搞混:若把"模型没见过"(认知)误当成"世界本就随机"(偶然),规划会以为"留点裕度就行",继续基于瞎猜的预测开下去——这正是分布漂移下事故的典型成因。所以不确定性量化的终极价值,不在于报一个数字,而在于让系统能区分"难"与"不会",从而在'谨慎应对'与'退出兜底'之间做出正确选择。这把不确定性量化与 §4.6.6 的安全兜底、§4.5.4 的人类接管点直接连了起来——它是安全决策的认知前提。

4.6.5 开放问题五:交互预测的因果性——是真懂交互,还是记住了相关?

问题的根。§4.5.4 的"刹车灯"例子已点破:数据驱动模型容易学到虚假相关而非因果。在交互预测里这尤其危险——模型可能学到"A 车减速时 B 车也减速"的相关,但不知道是"A 让 B"还是"B 让 A"还是"二者都在让第三方 C"。一旦部署到因果结构不同的新场景,相关性失效,预测崩坏。这与 §4.4 的 frozen robot/self-fulfilling prophecy 深层同源——它们都是"没搞懂谁导致谁"的恶果。

当前尝试:① M2I 式的 influencer/reactor 关系预测(§4.4.3)显式建因果序;② 因果表示学习、反事实数据增强;③ 博弈论的结构化建模(§4.4.7)——博弈均衡天然刻画"谁响应谁"的因果耦合,这是求解派相对纯学习派的一个潜在优势。

为什么没解决:因果推断需要干预(intervention)或反事实数据——"如果 ego 那样开,他车会怎样",但观测数据里只有"ego 实际那样开、他车实际那样反应"的一条,没有反事实。这又回到 §4.6.2 的反事实困境。从纯观测数据学因果,在一般情况下是不可识别的(除非有强假设或干预数据)。这是交互预测最深、最哲学的开放问题。

多视角理解(一个交互因果混淆的具体场景,看清"相关 ≠ 因果"在预测里多致命):设想数据里反复出现这样的模式——"路口处,A 车减速的同时 B 车也减速"。一个纯相关的模型会学到"A 减速 ⟺ B 减速",但这背后可能有三种因果结构完全不同的解释: - (甲) A 让 B:A 看到 B 要抢行,A 减速避让 → 因果方向是 B 影响 A。 - (乙) B 让 A:B 看到 A 先到,B 减速避让 → 因果方向是 A 影响 B。 - (丙) 共同原因:前方有行人横穿,A、B 都为行人减速 → A、B 之间无直接因果,是行人这个"共同原因"导致二者都减速。 三种结构在观测数据里长得一模一样(都是"A、B 同时减速"),但部署到新场景时行为天差地别:若真相是(丙)而模型误学成(甲),那么在一个没有行人、A 主动减速的新场景里,模型会错误预测"B 也会减速让 A"——而实际上 B 没有理由让(因为原来让的是行人不是 A)。这个例子钉死了为什么纯观测学习在交互预测里危险:同样的相关数据兼容多种因果结构,模型学到哪个全凭运气与归纳偏置,而错误的因果在分布漂移时直接致命。这也正是 §4.4 frozen robot/self-fulfilling prophecy 的因果根——它们都是"没搞懂谁导致谁",把"我退让导致对方通过"误读成"对方本来就要通过"。

本质洞察(六个开放问题里,有四个的共同根是"反事实/因果的真值缺失"):纵观本节——多模态评估失真(§4.6.1)、开环-闭环鸿沟(§4.6.2)、不确定性量化里的认知不确定性(§4.6.4)、交互因果性(§4.6.5)——它们看似不同,根却相通:我们只能观测到现实的一次实现,却想推断它背后的分布、反事实和因果结构。这是统计学习的根本边界在自动驾驶这个安全关键场景里的集中爆发。理解这一点,你会对这个方向产生一种"敬畏"——它的难,不是工程难度,而是认识论难度:我们想让机器理解一个它(和我们)都只能片面观测的世界。这也解释了为什么 §4.6.6 的"基础模型/常识"被寄予厚望——人类靠的正是超越当前观测的常识与因果直觉,而非纯粹的数据拟合。

4.6.6 开放问题六:基础模型与 VLA——语义常识能否补上数据驱动的短板?

问题的根。前五个开放问题的很多困难(长尾、分布漂移、因果、反事实),人类司机却能轻松应对——因为人有常识与因果直觉:看到球滚出来会预判有小孩追出来(即便从没见过这个特定场景),看到施工标志知道改道(即便地图没更新)。这种"超越当前观测的泛化",正是纯数据驱动模型最缺的。能否把大语言模型/视觉-语言模型的常识注入预测与规划?

当前尝试(§4.1.6 已点名,此处定位其在"补短板"中的角色): - 驾驶侧 VLM/VLA:DriveVLM、LMDrive、DriveGPT4、Senna——用语言模型的常识推理处理罕见场景、并输出可解释的决策理由("我减速是因为前方有儿童")。这直接瞄准长尾(§4.6.3)和可解释性。 - 机器人侧 VLA:RT-2、OpenVLA、π0/π0.5(flow matching, 50 Hz)、Groot N1、Helix——把"像素/语言→动作"压进一个网络,试图获得跨任务、跨场景的泛化。 - 世界模型(§4.1.6 世界模型线):用生成式世界模型"想象"反事实未来——这直接瞄准 §4.6.1/§4.6.2/§4.6.5 那个"反事实真值缺失"的共同根:既然观测数据里没有反事实,那就学一个能生成反事实的模型("如果 ego 那样开,未来观测会怎样")。这是用"生成想象"绕过"数据里没有反事实"困境的一条潜在路径,但前提是世界模型本身得够准、够一致——否则想象出的反事实是错的,反而误导决策。

本质洞察(基础模型/世界模型的吸引力,恰好对准了 §4.6 那个"反事实真值缺失"的共同根):回看 §4.6.5 的本质洞察——六个开放问题里四个同根于"我们只能观测一次实现,却想推断分布/反事实/因果"。而基础模型与世界模型的诱人之处,正是它们提供了两条可能绕过这个根的路:① 基础模型用"预训练得来的世界常识"补足"观测数据没覆盖"的部分——人类不靠见过某个特定危险才会避险,靠的是常识外推,基础模型试图复制这种能力;② 世界模型用"生成式想象"补足"数据里没有反事实"的部分——直接学一个能回答"如果……会怎样"的生成器。换言之,这两条前沿不是随便赶时髦,而是精准地瞄准了本章诊断出的最深病根。这也是为什么尽管它们充满争议(黑箱、幻觉、算力),整个领域仍对它们投入巨大——因为传统数据驱动范式在那个认识论病根面前确实碰了壁,而这两条路至少在原理上提供了绕过的可能。能否真正兑现,是这个方向未来五到十年最大的悬念。

为什么没解决(也充满争议):① 黑箱更深——大模型的可验证性比传统预测器更差,安全关键场景不敢轻易信;② 幻觉与可靠性——语言模型会"一本正经地胡说",在安全场景是致命的;③ 算力与实时性——大模型推理慢,车载实时是巨大挑战;④ 常识是否真的被用对——模型可能只是在"复述训练语料里的驾驶常识文本",而非真正理解物理因果。这是最前沿、也最不确定的方向,乐观者视之为 AGI 级别的突破口,怀疑者视之为又一轮过度炒作。

对比性思维(基础模型路线的希望与陷阱——它可能补短板,也可能引入更深的黑箱):不是"大模型一来就解决一切",而是一场用一种短板换另一种短板的豪赌。传统数据驱动预测器的短板是"长尾、因果、泛化",但它可单独评估、相对可控;基础模型/VLA 可能补上常识泛化,但引入了幻觉、黑箱、算力、不可验证的新短板。这呼应 §4.1.6 那条"显式预测 vs 隐式端到端"的哲学分野——本方向的未来很可能不是某一派单赢,而是融合:用 VLA 的语义常识做高层意图推断与长尾处理,用显式轨迹预测 + 博弈/优化(§4.4.7 求解派)做底层安全验证与兜底。这个"语义层 + 安全层"的双层架构判断,是本章对未来最具体的展望,也与博弈综述"求解+学习融合"的结论在更高层会合。

4.6.7 贯穿全章的工程现实:Python 研究与 C++ 部署的鸿沟

最后,把 §4.1.6、§4.3.6 反复强调的那条工程现实,作为本节的收束——因为它不只是一个"现状",更是一个对你(C++ 母语的机器人工程师)最具行动指导意义的开放问题

现状复述:本方向几乎全部研究前沿在 Python/PyTorch(UniAD、VAD、MTR、DIPP、GameFormer、PLUTO、Diffusion-Planner 无一例外),唯一的大规模生产级 C++ 预测栈是 Apollo 的 modules/prediction,且它刻意轻量、保守。学术 SOTA 与工业生产之间,隔着一条"Python 研究→C++ 部署"的鸿沟。

这条鸿沟的三重根源(综合全章):① 工具鸿沟——PyTorch 的灵活算子 vs C++ 实时栈的有限算子支持,模型导出(ONNX/TensorRT)常卡在不支持的算子上;② 算力鸿沟——Transformer/扩散的平方复杂度与多步去噪 vs 车载芯片的算力与时延预算(§4.3.4、§4.3.5);③ 价值鸿沟(最深)——学术优化平均开环指标 vs 工业要求最坏情况闭环安全与可验证性(§4.6.3 对比性思维)。

算力鸿沟值得单独深挖——它本身就是一个一等开放问题:实时性约束。车载预测必须在严格的时延预算内完成(典型 10–100 ms,对应 10–100 Hz 的决策频率),且要同时预测场景里几十个智能体、覆盖多模态。这给学术 SOTA 出了几道硬题: - Transformer 的平方复杂度:token 数 = 智能体数 × 时刻数 × 地图段数,全注意力随其平方增长。一个城区路口几十个智能体 + 上百条车道段,token 轻松上千,全注意力的计算与显存都吃紧。缓解手段(§4.3.4):因子化注意力、latent query(把多 token 压成少量 latent)、稀疏/局部注意力、查询中心的可复用编码(§4.3.4-bis 的 QCNet)。 - 扩散的多步去噪:标准扩散要迭代几十上百步,每步一次网络前向,时延难以接受。缓解手段(§4.3.5):DDIM 减步、consistency models 一步生成、flow matching(π0 用它做到 50 Hz)。 - 多智能体的重复计算:智能体中心表示要为每个智能体重编码一次场景(§4.3.4-bis),\(N\) 个智能体 \(N\) 倍算力。缓解手段:查询中心的共享编码、批量并行。

本质洞察(实时性不是"工程细节",而是塑造了整个 SOTA 演化方向的隐形之手):很多学术工作把实时性当成"部署时再优化的工程细节",但回看 §4.3 的演化,会发现实时性其实一直在暗中塑造架构设计——Wayformer 的"做减法"、QCNet 的查询中心可复用编码、flow matching 对扩散的加速,本质上都是"在不太损精度的前提下把算力压下来"的努力。换句话说,这个方向的架构演化,除了'精度'这条明线,还有'算力/实时'这条与之拉锯的暗线。一个只盯着 leaderboard 精度、无视算力的研究者,会错过半部演化史;而对你这个要把东西真正跑在车上的工程师,算力这条暗线甚至比精度明线更重要。这也是为什么 §4.7.4 选型表把"算力预算"与"精度"并列为两个一等约束。

一个具体的"把 MTR 搬上车"会撞到什么的清单(让鸿沟从抽象变具体)。假设你要把一个 PyTorch 的 MTR 部署到车载 C++ 实时栈,会依次撞到: - 算子鸿沟:MTR 用了大量灵活的 PyTorch 操作(动态索引、自定义注意力、可变长度的智能体/地图集合)。导出到 ONNX/TensorRT 时,总有几个算子不被支持或不被优化——你得手写 CUDA 算子、或改模型结构来规避,每一个都是耗时的硬骨头。 - 动态 shape 鸿沟:场景里智能体数、车道数每帧都在变(动态 shape),但车载推理引擎偏爱固定 shape(为了预分配显存、优化 kernel)。你得做 padding + masking,或分桶(bucketing),既增加复杂度又浪费算力。 - 平方复杂度鸿沟:拥挤路口 token 数激增,全注意力的平方算力与显存可能直接超出车载芯片预算。你得换因子化/稀疏注意力,但这可能掉精度,又得重新验证。 - 数值一致性鸿沟:PyTorch(float32/训练)与车载推理(常用 float16/int8 量化)的数值不完全一致,量化后精度可能掉、甚至偶发异常输出——安全关键场景必须逐一排查。 - 可验证性鸿沟(最难):即便上述都解决了、模型在车上实时跑起来了,安全团队会问"你怎么证明它在长尾场景不会输出灾难性预测"——而这正是 §4.6.3 的开放问题,没有现成答案。这往往是整个部署里最卡的一关。

理论-工程桥接(这条鸿沟对你意味着什么——危机即机会):对绝大多数追 SOTA 的研究者,这条鸿沟是"别人的事";但对你——一个以 C++ 为母语、立志做机器人与 AI 交叉的工程师——这条鸿沟恰恰是最稀缺、最有价值的战场。把一个学术 SOTA(如 MTR、Diffusion-Planner)真正工程化、C++ 化、实时化、可验证化,需要同时懂:预测的算法本质(本章)、规控的工程约束(本教程其余章节)、深度学习的部署技术(量化、剪枝、算子优化、TensorRT)、以及安全验证方法。这种"全栈交叉"的能力,正是当前工业界最缺、最贵的。 本教程把"交互预测"放进规控体系而非纯 DL 体系,正是为了培养这种能力——不让你停留在"会调 PyTorch 刷榜",而是让你能"把研究前沿落到能上车的 C++ 实时栈"。这是本章留给你的最具行动性的结语。

4.6.8 开放问题速查表

开放问题 根源 当前尝试 为何没解决
多模态评估失真 一条真值评 K 个样本(§4.5.3) brier/mAP/task-driven 真值分布不可得
开环-闭环鸿沟 预测能力≠驾驶能力(§4.5.4) nuPlan/反应式闭环 反事实真值缺失、鸡生蛋
长尾与分布漂移 重要性与频率错配(§4.2.2) 重采样/仿真/OOD benchmark 长尾永在尾部、数据驱动偏高频
不确定性量化 校准在漂移下失效 集成/保形预测(CUQDS) 偶然/认知难分、保证vs可用
交互因果性 学到相关非因果(§4.5.4) 关系预测/博弈结构/反事实增强 观测数据因果不可识别
基础模型/VLA 数据驱动缺常识泛化 DriveVLM/π0/OpenVLA 黑箱/幻觉/算力/不可验证
Python→C++ 鸿沟 工具+算力+价值三重鸿沟 Apollo 轻量栈/模型导出 学术-工业价值函数错位

本节常见陷阱(覆盖研究品味类、过度乐观类、价值错位类):

陷阱一:把"刷低开环指标"当成科研进步的全部。 现象:把研究精力全投在 minADE 涨点。根本原因:没看清开环-闭环鸿沟与长尾掩盖(§4.6.2、§4.6.3)。后果:发了论文却对真实部署无贡献。正确做法:关注闭环、长尾、不确定性、可验证性这些"真问题"。

陷阱二:对基础模型/VLA 过度乐观或过度悲观。 现象:要么神化大模型能解决一切,要么斥之为纯炒作。根本原因:没看清它"用一种短板换另一种短板"的本质(§4.6.6 对比性思维)。正确做法:理解它的希望(常识泛化)与陷阱(黑箱幻觉)并存,未来在融合。

陷阱三:忽视"平均 vs 最坏"的价值错位。 现象:用学术平均指标评判一个安全关键系统。根本原因:不懂工业界的最坏情况思维(§4.6.3 对比性思维)。后果:一个平均优秀但长尾偶尔致命的系统被误判为合格。正确做法:安全系统必须看 worst-case 与长尾失败率。

陷阱四:把"会用 Python 跑通 SOTA"当成"能部署"。 现象:跑通了开源 SOTA 就以为能上车。根本原因:低估 Python→C++ 鸿沟的三重根源(§4.6.7)。正确做法:把工程化/C++化/可验证化的成本认真算进项目。

本节练习: 1. (反事实困境) 用自己的话解释:为什么"多模态评估失真"和"开环-闭环鸿沟"和"交互因果性"这三个看似不同的开放问题,根上是同一个"反事实/分布真值缺失"问题?(这道题考察你是否真正吃透了 §4.6.5 的本质洞察。) 2. (长尾选题) 假设你要做一个交互预测的研究课题,且想做"真问题"而非"刷榜"。从本节六个开放问题里选一个,描述你会怎么设计一个能体现真实进步(而非开环涨点)的实验。 3. (不确定性应用) 解释:如果一个预测模型能可靠地区分偶然不确定性和认知不确定性,下游规划能分别如何利用这两种信息做出更安全的决策?(提示:偶然不确定性→该保守多少;认知不确定性→是否进入了没见过的危险区。) 4. (VLA 双层架构) 把 §4.6.6 末尾的"语义层 + 安全层"双层架构画成一个数据流图:VLM/VLA 在哪一层、显式预测器在哪一层、博弈/优化在哪一层、它们如何接口、谁有最终否决权。说明为什么"安全层有否决权"对安全关键系统至关重要。 5. (开放·职业) 结合 §4.6.7,写下你认为"把一个具体的学术 SOTA 预测器部署到 C++ 实时栈"这件事,需要补齐哪些知识/技能(至少列 4 项),以及本教程的哪些章节可能帮到你。这道题是为你自己的学习路径做规划。 6. (因果结构辨析) 沿用 §4.6.5 的"A、B 同时减速"三种因果结构(A 让 B / B 让 A / 共同原因)。请各设计一个"探针动作"——如果你能让 ego 主动做一个动作来观察反应,你会怎么做才能区分这三种结构?(提示:这正是"干预/实验"为何能识别因果而"纯观测"不能的直觉。) 7. (世界模型的双刃) §4.6.6 说世界模型能"想象反事实"来绕过"数据无反事实"的困境。但反过来想:如果世界模型本身不够准,它想象出的反事实会怎样误导下游决策?请举一个"基于错误想象做出危险决策"的具体场景,说明为什么"用世界模型做规划"必须配一个对世界模型可信度的判断。 8. (综合·六问归一) 用你自己的话,把 §4.6 的六个开放问题归并到尽可能少的"元问题"上(提示:本节本质洞察指出四个同根于'反事实/真值缺失')。哪些是认识论困难(原理上难)、哪些是工程困难(原理可解但难做)?这个区分对"该把研究精力投向哪里"有什么启示?

过渡到 §4.7:六个开放问题标定了边疆,也呼应了全章的每一处张力。最后一节,我们用一组速查表把整个方向"压缩"成可随时回看的框架——发展脉络、三层全景、四脉骨干、三种耦合、评估体系、开放问题——让你合上这一章时,脑中留下一张完整的、可复述的"交互意图预测全景图"。


§4.7 本章小结与速查 ⭐

本节定位:综述章的"地图册"。前六节是详细的"游记",本节把它们压缩成几张可随时翻回的"地图"。如果你只想快速回忆这个方向的骨架,读本节即可;如果某张表勾起了细节疑问,回到对应小节深读。

4.7.1 一句话总纲:整个方向在解决什么

本质洞察(用一句话概括交互意图预测)交互意图预测,就是"用数据学习他人的未来轨迹分布,并让这个预测与自己的规划深度耦合,从而在多智能体相互影响的世界里安全决策"的技术方向。 它的十年史,是"表示—交互—耦合"三级跳(§4.1);它的方法谱,是"物理/意图/交互"三层野心(§4.2)× "LSTM/GNN/Transformer/扩散"四脉工具(§4.3);它的灵魂,是"解耦→条件→联合"的耦合演化(§4.4),并在终点与博弈规划会师为"求解派与学习派攀登同一座山";它的标尺,是充满陷阱的开环/闭环评估(§4.5);它的边疆,是反事实真值缺失带来的六大开放问题(§4.6)。记住这一句,你就握住了全章主轴。

多视角理解(如果只能带走三句话):若把全章再压缩,给不同人各留一句—— - 给初学者的一句:"别记缩写,记主轴——表示、交互、耦合三级跳,每个新方法都是这三级跳上的一步。" - 给工程师的一句:"按交互强度和算力预算选层选骨干选耦合,而非追 SOTA;安全关键处用显式结构兜底黑箱。" - 给研究者的一句:"开环 minADE 涨点多半是 Goodhart 式假进步;真问题在闭环、长尾、因果、耦合——它们同根于'反事实真值缺失',而这个方向的归宿是决策论而非监督学习。"

4.7.2 六维全景速查表(把全章压成一张表)

维度 核心框架 关键节点 一句话本质
史(§4.1) 六个时代 Social LSTM→VectorNet→MTR→UniAD→扩散→VLA 表示—交互—耦合"三级跳"
景(§4.2) 三层全景 物理 / 机动意图 / 交互感知 承认几种不确定性,就在第几层
器(§4.3) 四脉骨干 LSTM / GNN / Transformer / 生成 编码脉 × 生成脉的笛卡尔积
耦(§4.4) 三种耦合 解耦 / 条件 / 联合 治 frozen robot 靠耦合深度,非精度
测(§4.5) 评估体系 minADE家族 / 四数据集 / 开环-闭环 指标即激励,开环会骗人
问(§4.6) 六大开放 评估失真/开闭环/长尾/不确定性/因果/VLA 根在反事实真值缺失

4.7.3 关键人物-论文-年代脉络图(文字版时间线)

把全章出现的标志性工作按时间和"三级跳"位置串成一条线,便于建立"论文坐标系":

2016  Social LSTM ────────── 交互引入网络(手工 social pooling)   [交互·萌芽]
2017  DESIRE ──────────────── CVAE 多模态(IOC ranking)          [多模态]
2018  Social GAN ──────────── 生成式多模态(承认未来是分布)       [多模态]
      CS-LSTM ──────────────── 卷积社交池化 + 6类机动             [交互+意图]
2019  MultiPath ────────────── anchor 范式(稳定多模态)           [多模态·锚定]
      PRECOG ──────────────── 条件预测概念萌芽                    [耦合·条件]
2020  VectorNet ───────────── 向量化革命(栅格→向量)             [表示·革命]
      LaneGCN ──────────────── 精细车道图建模                     [表示+交互]
      Trajectron++ ─────────── LSTM×CVAE×动力学积分(三层集成)    [全栈集成]
      PiP / TNT ────────────── 条件预测 / 目标驱动                [耦合 / 意图]
2021  DenseTNT ─────────────── dense goal(弥合生成vs锚定)        [意图]
      Argoverse2/WOMD/nuPlan ─ 数据集与闭环 benchmark 成熟         [评估]
2022  Scene Transformer ───── Transformer 统一 marginal/joint     [交互·注意力]
      MTR ─────────────────── motion query(Waymo 冠军)          [交互·注意力]
      Wayformer ────────────── 注意力做减法(容量>先验)          [交互·注意力]
      M2I ─────────────────── influencer/reactor 因果序           [耦合·条件]
2023  QCNet ────────────────── query-centric 流式编码             [交互·注意力]
      DIPP ─────────────────── 可微联合预测-规划                  [耦合·联合]
      GameFormer ───────────── level-k 博弈 Transformer           [耦合·联合·会师]
      UniAD ────────────────── 端到端(CVPR Best Paper)          [耦合·端到端]
      VAD/VADv2 ────────────── 全向量化端到端                     [耦合·端到端]
      Diffusion Policy ─────── 扩散动作生成 baseline               [多模态·扩散]
2024- DriveVLM/LMDrive/Senna ─ 驾驶侧 VLM 注入常识                 [范式·VLA]
2025  Diffusion-Planner ────── 扩散闭环规划(nuPlan)              [多模态·扩散]
      DiffusionDrive ───────── 扩散端到端                         [多模态·扩散]
      PLUTO/CaRL ───────────── nuPlan 闭环 SOTA                   [耦合·闭环]
      π0/π0.5/OpenVLA ──────── 机器人 VLA(flow matching, 50Hz)   [范式·VLA]
      GAIA 类世界模型 ───────── 生成式世界模型(想象反事实未来)     [范式·世界模型]

多视角理解(如何使用这条时间线): - 纵向读(按年代):看到方向"加速演化"的节奏——2016–2020 一年一个里程碑,2022 后一年涌现多个,反映领域热度与投入的指数增长。 - 横向读(按"三级跳"标签):把同一标签的工作连起来,看某条主线如何独立演化——如把所有 [多模态] 标签连起来,就是 GAN→CVAE→anchor→dense goal→扩散 这条"如何表达多模态"的完整副线。 - 会师点([会师]标签):GameFormer 是与博弈综述的正式焊点,建议读完本章后回到 30_博弈规划.md 对照其流派六。

4.7.4 选型决策速查:给定场景,怎么选

把 §4.2.5、§4.3.7、§4.4.8 的选型逻辑汇总成一张"决策速查表"——这是本章最具工程行动性的产出:

场景特征 建模层(§4.2) 骨干(§4.3) 耦合(§4.4) 理由
仓储 AGV、稀疏、低速 物理层 卡尔曼滤波 解耦 交互弱,杀鸡不用牛刀,易 C++ 部署
高速公路 ADAS、跟车变道 意图层 LSTM/小 GNN 解耦/条件 模态少、可解释、易验证
城区路口、人车混行、强交互 交互层 Transformer/GNN 条件/联合 必须建交互,否则 frozen robot
无保护左转、汇入、谈判 交互层 Transformer + 博弈 联合 强博弈,需均衡求解
安全关键、需认证 意图/交互层 轻量 + 可微优化 联合(DIPP式) 可验证性优先,保留显式优化器
长尾、罕见、需常识 交互层 + 语义 VLA + 显式兜底 联合(双层) 用语义补长尾,用显式保安全

理论-工程桥接(这张表比追 SOTA 更重要):初学者的通病是"哪个网络 minADE 最低就用哪个"。本表传递的核心工程理性是——先按交互强度、算力预算、可验证性要求定位需求,再选最匹配的组合,而非盲目追榜单 SOTA。一个仓储 AGV 用卡尔曼滤波,比硬上 MTR 更专业;一个需认证的系统用 DIPP 式可微优化保留显式 cost,比上 UniAD 黑箱更负责。这正是 R6 工具 D(理论-工程桥接)贯穿本章的落点。

4.7.5 与博弈规划综述的关系速查(孪生章对照)

维度 交互预测(本章) 博弈规划(30_博弈规划.md 关系
路线 学习派(从数据学行为分布) 求解派(数值求解博弈均衡) 互补
核心工具 LSTM/GNN/Transformer/扩散 iLQGames/ALGAMES/迭代最佳响应 不同手段
处理 frozen robot 条件/联合耦合(§4.4) 博弈均衡内生反应 同一病灶
条件预测 学网络得他车反应 Stackelberg 求解 follower 反应 会师点1
联合范式 GameFormer/DIPP Nash 均衡求解 会师点2
可学习 cost DIPP 学规划 cost 逆博弈/逆最优控制 会师点3
优势 吃感知、处理复杂场景 严格、可解释、有保证 互补
劣势 黑箱、长尾脆弱、难验证 对模型假设敏感、可能不实时 互补
未来 融合:学习+博弈/优化 融合:学习+博弈/优化 殊途同归

本质洞察(读完本章,请务必回看博弈综述的会师段):本章与 30_博弈规划.md 是刻意编写的一对孪生综述——它们从"学习"和"求解"两侧攀登"交互决策"这同一座山。单读任一章只见半壁,合读才见全貌。建议的阅读闭环是:读完本章 §4.4.7,回到博弈综述 §3.3 流派六(可微博弈/学习混合)与 §3.6(预测-规划耦合),对照 GameFormer/DIPP 在两章里的不同切入,你会对"求解与学习如何融合"获得立体的理解。这个"孪生对照"本身就是本教程在方法论上的一个设计——避免你掉进"唯学习论"或"唯优化论"的单一视角。

4.7.6 知识点总表(带难度与出处)

知识点 难度 出处 一句话
表示—交互—耦合三级跳 ⭐⭐ §4.1.1 全章演化主轴
六个时代因果链 ⭐⭐ §4.1.2–4.1.6 每代补前代漏洞
物理/意图/交互三层 ⭐⭐⭐ §4.2 承认几种不确定性
mode averaging 病 ⭐⭐ §4.2.3 MSE 把多模态平均成无效轨迹
边缘 vs 联合预测 ⭐⭐⭐ §4.2.4 独立准≠组合一致
编码脉 × 生成脉笛卡尔积 ⭐⭐⭐ §4.3.1/4.3.5 双坐标定位模型血统
social pooling 的手工本质 ⭐⭐ §4.3.2 写死的交互假设
消息传递 = 可学习池化 ⭐⭐⭐ §4.3.3 GNN 解放 pooling 的写死假设
自注意力 = 全连接学习图 ⭐⭐⭐ §4.3.4 Transformer 解放 GNN 的稀疏固定图
容量 vs 先验 ⭐⭐⭐ §4.3.4 Transformer vs GNN 之争
向量化革命 ⭐⭐⭐ §4.1.3/4.3.3 栅格→向量,分辨率革命
GAN→CVAE→扩散 ⭐⭐⭐ §4.3.5 稳定表达多峰分布的进步史
frozen robot ⭐⭐⭐⭐ §4.4.2 预测假装 ego 不存在
self-fulfilling prophecy ⭐⭐⭐⭐ §4.4.2 退让使悲观预测自证
解耦/条件/联合 ⭐⭐⭐⭐ §4.4 耦合深度治病,非精度
条件预测 ≈ Stackelberg ⭐⭐⭐⭐ §4.4.3 学习派 vs 求解派会师1
联合 ≈ Nash 均衡 ⭐⭐⭐⭐ §4.4.4 会师2,GameFormer
min-over-K 原罪 ⭐⭐⭐ §4.5.3 奖励"想到了"纵容"广撒网"
四数据集定位 ⭐⭐⭐ §4.5.2 开环预测台 vs 闭环规划台
开环-闭环鸿沟 ⭐⭐⭐ §4.5.4 预测能力≠驾驶能力
长尾掩盖 ⭐⭐⭐⭐ §4.6.3 平均指标稀释长尾
反事实真值缺失 ⭐⭐⭐⭐ §4.6.5 四大开放问题共同根
Python→C++ 鸿沟 ⭐⭐⭐ §4.6.7 工具+算力+价值三重

4.7.7 给不同读者的阅读建议

多视角理解(同一章,不同读法): - 想建立方向感的初学者:精读 §4.1(史)+ §4.7(速查),通览 §4.2(景),其余按需。目标是脑中有一张演化地图和三层/四脉框架。 - 要选型做项目的工程师:直奔 §4.2.5、§4.3.6、§4.4.8、§4.7.4(选型决策表),重点是"按需求选组合,而非追 SOTA"。 - 要做研究的准博士生:精读 §4.4(耦合)+ §4.6(开放问题),这两节是"真问题"的富矿;再回看博弈综述会师段,思考"求解+学习融合"的课题。 - 关心部署落地的人:§4.3.6(Apollo C++ 栈)+ §4.5.4(闭环)+ §4.6.7(鸿沟)是你的主线,理解"为什么学术 SOTA 难上车"。 - 要评审论文/判断 SOTA 真伪的人:§4.5(评估,尤其 §4.5.3 原罪、§4.5.4 开闭环、§4.5.6 任务驱动)+ §4.5.1 的 Goodhart 定律是你的"测谎仪",配合"本章常见误解汇总"四类认知病,能让你对一切'刷榜 SOTA'保持恰当的怀疑。

使用本章的元建议:无论哪种读者,第一遍都先把 §4.1 的"三级跳"主轴和 §4.7 的速查表读熟,搭好地图;之后每读一篇新论文/接触一个新方法,都回到本章用"六时代 × 三层 × 四脉(编码×生成)× 三耦合 × 评估口径"这套坐标系给它定位。坚持这样做,本章就从一篇"读过的综述"变成一张"终身使用、越填越密的方向地图"——这正是方向级综述区别于普通论文笔记的价值所在。

4.7.8 一条贯穿全章的认识论主线:从"拟合"到"决策"

合上全章前,最后串一条把所有 ⭐⭐⭐⭐ 本质洞察都穿起来的主线——它比任何速查表都更接近这个方向的"内核"。

回看全章散落的本质洞察,会发现它们指向同一个深层判断。这个方向十年的所有进步与所有未解难题,本质都是一场从"把预测当静态拟合问题"到"把预测当序贯决策问题"的认识论迁移,而这场迁移尚未完成。

把证据串起来: - §4.2 的三层野心,按"承认几种不确定性"递进——而最深的交互层不确定性(博弈耦合),本质是决策论的,不是拟合论的。 - §4.3 的四脉骨干演化,明线是"如何拟合得更好",但 §4.3.6 揭示真正的瓶颈不在拟合精度,而在"拟合出来能否支撑可验证的决策"。 - §4.4 的耦合三范式,整节就是在论证"预测不能孤立于决策"——frozen robot 之所以治不了,正因为把它当成了"拟合不够准"(拟合论)而非"决策架构不对"(决策论)。 - §4.5 的开环-闭环鸿沟,§4.5.4 的终极本质洞察一针见血:鸿沟的根是"任务本质是序贯决策,而开环评估把它当成静态 i.i.d. 监督学习"。 - §4.6 的六大开放问题,§4.6.5 揭示其中四个同根于"反事实真值缺失"——而反事实正是决策("如果我那样做会怎样")的语言,不是拟合("数据长什么样")的语言。

本质洞察(这个方向正确的母框架是决策论/博弈论,而非监督学习——这是全章的最高判断):交互意图预测看起来像一个监督学习问题(给历史、拟合未来),整个领域早期也确实是这么做的(刷 minADE)。但它本质上是一个序贯决策问题——预测服务于决策、决策改变未来、未来又是要预测的对象,这是一个闭环的、有反馈的、博弈耦合的决策系统。领域十年的演化,正是逐步认清"我们一直用拟合的框架在做一件本质是决策的事"的过程:从解耦到联合(§4.4)是认清"预测必须耦合决策",从开环到闭环(§4.5)是认清"必须在决策反馈里评估",从纯学习到学习+博弈融合(§4.4.7)是认清"决策的结构(博弈)不能丢"。这场认识论迁移远未完成——绝大多数论文仍在用拟合的框架(开环 minADE)做决策的事,这正是 §4.6 那些开放问题久拖不决的元原因。看清这条主线,你就站到了比"会调哪个网络""刷哪个榜"高得多的位置——你理解了这个方向该往哪个框架收敛。而这,恰恰是本教程把"交互预测"放进"规控(决策)"体系、与"博弈规划"结对编写的最根本理由:因为预测的归宿是决策,而决策的语言是规控与博弈,不是监督学习。

对比性思维("感知派"读法 vs "决策派"读法):同一个交互预测方向,两类读者会读出两种东西。感知派(从深度学习/CV 来)倾向把它读成"又一个序列建模任务",关注网络结构、数据集、刷榜——这是把它归入"拟合"。决策派(从规控/机器人来,本教程的视角)把它读成"决策系统的一个耦合环节",关注它如何接入规划、如何在闭环里表现、如何保证安全——这是把它归入"决策"。本章自始至终采用决策派读法——这不是任意选择,而是 §4.7.8 论证的"方向本质是决策问题"的必然要求。如果你之前用感知派的眼光看预测,本章最大的价值或许就是帮你完成这次视角切换:别再问"这个预测器准不准",要问"这个预测器能不能让整个决策系统更安全"。

4.7.9 合上本章前的自测清单

读完全章,用以下 8 问自测——若每问都能不看书答出,你就真正建立了这个方向的"方向感"(答不出的指向对应小节复习):

  1. 不看表,复述"表示—交互—耦合"三级跳,并各举一个代表性跃迁(→ §4.1)。
  2. 给一个预测方法,能否用"三层野心 × 四脉骨干(编码×生成)× 输入输出接口"给它定位?(→ §4.2、§4.3)
  3. 说清 frozen robot 与 self-fulfilling prophecy 的区别,以及为什么"提升预测精度"治不了它们(→ §4.4.2)。
  4. 论证"条件预测 ≈ Stackelberg、联合 ≈ Nash",说清本章与博弈综述的会师(→ §4.4.7)。
  5. 解释 min-over-K 的原罪(奖励什么、纵容什么),以及 brier/mAP 怎么打补丁(→ §4.5.3)。
  6. 说清开环-闭环鸿沟的三个原因,以及为什么它本质是"序贯决策被当成静态拟合"(→ §4.5.4、§4.7.8)。
  7. 列出 §4.6 六大开放问题,指出哪四个同根于"反事实真值缺失"(→ §4.6)。
  8. 用一句话说清"为什么这个方向的归宿是决策论而非监督学习",以及它对你(C++ 工程师)意味着什么机会(→ §4.7.8、§4.6.7)。

本质洞察(自测清单的真正用途):这 8 问不是考记忆,而是考结构——它们恰好对应本章六段(史/景/器/耦/测/问)的主轴与最高判断。如果你能流畅答出,说明你脑中已不是一堆零散缩写,而是一张有主轴、有坐标系、有最高判断的"方向地图"。带着这张地图,你读任何一篇交互预测的新论文都不会迷路——这正是方向级综述存在的全部意义。


本章常见误解汇总

下表汇总全章散落各节的高频误解,集中呈现以便复习。每条给出"误解—真相—出处",是合上书前的最后一遍校准。

# 常见误解 真相 出处
1 预测就是"输出一条最可能的未来轨迹" 未来是多模态分布,输出一条会触发 mode averaging(平均成无效轨迹) §4.1.2 / §4.2.3
2 用了 Transformer/GNN 就等于"建模了交互" 交互层与否看信息是否在智能体间流动,而非用了什么算子;可以用 Transformer 只编码单体历史 §4.2.7 陷阱一
3 建模层次越高越好,永远该上交互层 高层模型吃数据、吃算力、难部署;弱交互场景卡尔曼滤波就够,且更易 C++ 化 §4.2.7 陷阱二
4 每辆车都预测准 = 场景预测准 边缘预测独立准,组合起来可能互相碰撞;联合预测才保证场景级一致 §4.2.4 / §4.2.7 陷阱三
5 一个模型要么是 LSTM 系要么是生成系,二选一 编码脉与生成脉正交,是笛卡尔积;Trajectron++ = LSTM × CVAE §4.3.1 / §4.3.5
6 Transformer 永远优于 GNN/LSTM 小数据上 Transformer 易过拟合,GNN 强先验更稳;车载算力下平方复杂度是硬伤(容量 vs 先验) §4.3.4 / §4.3.8 陷阱二
7 开源 SOTA 代码 = 可部署方案 PyTorch SOTA 距 C++ 实时、可验证生产栈隔着巨大工程量(Apollo 哲学截然不同) §4.3.6 / §4.3.8 陷阱三
8 把预测做得更准就能解决 frozen robot 病在架构单向性不在精度;开环完美的预测器照样冻死。药在耦合深度 §4.4.2 教学警示 / §4.4.5
9 frozen robot 和 self-fulfilling prophecy 是一回事 同源但一谈行为(不敢动)、一谈认知闭环(悲观自证) §4.4.2 对比性思维
10 实现了 condition on ego 就是"联合规划-预测" 条件范式仍是迭代两段式,不是同一优化里共生 §4.4.3 / §4.4.8 陷阱三
11 minADE 低 = 预测好/有用 min-over-K 纵容"广撒网";撒一堆无用轨迹也能刷低 minADE,反而加剧 frozen robot §4.5.3 本质洞察
12 跨论文可以直接比 minADE 数字 K 值、跨度、数据集、marginal/joint 口径不同则不可比 §4.5.5 陷阱二
13 开环高分 = 闭环安全 二者弱相关(nuPlan 实证);开环结构性地无法暴露 frozen robot 与因果错误 §4.5.4 本质洞察
14 平均指标好 = 系统安全 长尾被平均稀释;致命事故都在长尾。工业看 worst-case,学术看 average §4.6.3 对比性思维
15 大模型/VLA 一来就解决一切(或纯属炒作) 它用一种短板(长尾/因果)换另一种短板(黑箱/幻觉/算力);未来在融合 §4.6.6 对比性思维
16 博弈规划和学习预测是互斥对立的两派 是攀登同一座山的两条互补路线(求解 vs 学习),前沿在融合 §4.4.7 / §4.7.5

本质洞察(这 16 条误解,可归为四类"认知病"):回看上表,会发现它们不是随机的 16 个错误,而是聚成四簇:① 多模态认知病(#1、#4、#11——不理解"未来是分布、要联合一致、不能广撒网");② 工具崇拜病(#2、#3、#5、#6、#7——把"用了什么网络/SOTA"当成能力本身,忽视层次、先验、部署);③ 精度迷信病(#8、#10、#13、#14——以为"更准"能解决一切,忽视耦合、闭环、长尾);④ 范式站队病(#15、#16——非此即彼地站队,看不到融合)。这四类病,恰好对应本章想根治的四种认知偏差。如果你能对每一类说出"为什么是病、药在哪",就真正读懂了这一章。


2024–2026 前沿深化:交互预测的最新演化 ⭐⭐⭐⭐

本节定位:§4.1–§4.6 的脉络截至约 2023 年末。本节系统补录 2024–2026 年交互意图预测方向的关键进展,按四条前沿线展开,并把每个进展插入既有的"史—景—器—耦—测—问"坐标系。

前沿线一:扩散模型全面接管轨迹生成

2024–2025 年,扩散模型(Diffusion Model)从"新兴替代方案"变成了轨迹预测和联合规划的主流生成骨干,几乎取代了此前 CVAE/GAN 的地位。关键进展包括:

Diffusion-Planner(ICLR 2025 Oral) 把 ego 和多个他车的轨迹联合建模为一个条件去噪过程——用一个扩散模型同时生成 ego 的规划轨迹和他车的预测轨迹,天然保证了"场景级一致性"(§4.2.4 指出的 marginal vs joint 问题)。这直接回应了 §4.4 的"联合一体化"范式——在扩散框架下,预测和规划不再是两个模块,而是同一个去噪过程的不同通道。

CaRL(2025) 在 nuPlan 闭环挑战上用课程强化学习(curriculum RL)训练扩散规划器,解决了此前扩散规划器在闭环中"误差累积导致漂移"的问题。它的核心思想是——在训练时逐步增大"闭环扰动"的强度:先在干净的开环数据上学,然后逐渐引入自身预测误差导致的 state perturbation,让模型学会在"被自己的预测误差扰动后的状态"上继续做出合理预测。这直接攻击了 §4.5.4 "开环-闭环鸿沟"这个核心开放问题。

本质洞察(扩散模型为什么在交互预测中特别成功):扩散模型在轨迹预测中的成功,并非只是因为"它是最新的生成模型"——而是因为它的数学结构与轨迹规划的需求高度匹配:(1) 扩散天然表达多模态(路口左转/直行两条轨迹都是数据流形上的高概率区域,去噪会自动发现它们)——解决了 §4.2.3 的 mode averaging 顽疾;(2) 扩散可以通过 classifier guidance 注入任意可微的代价/约束——这让"联合规划"(注入 ego 的代价)变成了"加一项 guidance"的简单操作;(3) 扩散的多步去噪可以看作"对轨迹的迭代精化"——这与经典的迭代优化(TEB、iLQR)在精神上同构(§RL 贯穿综述 §2.2 已详述这个同构)。三重匹配解释了为什么扩散不只是"另一个深度学习方法",而是轨迹预测/规划的"天然语言"。

前沿线二:基础模型与 VLA 的冲击

2024–2026 年最大的范式冲击来自基础模型(Foundation Model)VLA(Vision-Language-Action)对交互预测方向的渗透。这不是简单的"用更大的模型",而是一次预测范式的重新定义

从"预测轨迹"到"理解场景语义"。传统预测模型输出的是"他车未来 \(T\) 秒的 \((x,y)\) 坐标序列"——一个纯几何量。VLA 式的方法(如 DriveVLM、Senna、LMDrive)开始把预测问题重新定义为"理解这个场景里即将发生什么,并用自然语言描述"——比如"前方卡车正在减速准备右转,你应该保持当前车道减速等待"。这不是抛弃了轨迹预测,而是在轨迹预测的上游加了一层语义理解——语义理解提供"抽象意图",轨迹预测把意图翻译为具体坐标。

反事实推理(如果 VLA 完全取代了显式轨迹预测会怎样):假设未来某天 VLA 强到直接从视觉和语言描述输出 ego 的控制信号,不再需要中间的轨迹表示。这会导致什么问题?可验证性彻底丧失——你无法检查"VLA 理解的'卡车要右转'是否正确"(语义是黑箱的);你也无法给出"ego 轨迹与他车轨迹的最近距离是否 > 安全阈值"这类几何安全保证(没有显式轨迹就无法做碰撞检测)。所以显式轨迹预测不会消亡——它会变成"VLA 高层语义"与"底层安全检查"之间的翻译层,正如 §4.6.6 预判的"语义层 + 预测层 + 安全层"三层架构。这个反事实推理验证了一个更普遍的原则:中间表示(intermediate representation)的价值不在于它帮助学习,而在于它让系统可检查、可调试、可约束

基础模型作为预训练骨干。更实际的趋势不是"VLA 取代一切",而是用大模型的预训练表示来初始化轨迹预测器的编码器——就像 NLP 里用 BERT 预训练初始化下游任务一样。2025 年出现了"用大规模驾驶视频预训练一个 BEV 表示编码器,再用少量标注数据微调轨迹预测头"的路线,在小数据集上显著提升了预测性能。这对 §4.6.1(泛化性不足)是一个有力回应——大模型的价值不在于它直接做预测,而在于它给预测器提供了更好的"初始化知识"

前沿线三:闭环评估的成熟化

§4.5.4 反复强调的"开环-闭环鸿沟"在 2025 年终于获得了系统性的工程回应:

反应式智能体(Reactive Agent)。nuPlan 2.0 和 Waymo 的新一代闭环评估平台引入了不再只回放真实轨迹、而是会对 ego 行为做出反应的仿真他车——如果 ego 减速,仿真他车也会相应调整(而非继续按回放轨迹走)。这彻底消灭了"开环假装闭环"的可能——因为反应式智能体让 frozen robot 和 self-fulfilling prophecy 在评估中无处遁形。

2025 年的实证研究 "When Planners Meet Reality: How Learned, Reactive Traffic Agents Shift nuPlan Benchmarks" 量化了这个冲击:很多在开环排行榜上 SOTA 的方法,在反应式闭环评估中排名大幅下滑——因为它们"学会了"开环评估的捷径(比如"紧跟真值轨迹"),但面对会响应的他车时策略崩溃。

对比性思维(开环评估 vs 反应式闭环评估的关系,不是"替代"而是"补充"):这并不意味着开环评估毫无价值——开环评估仍然是快速筛选和调参的有效工具(跑一次闭环仿真的成本是开环的 10-100 倍)。正确的用法是"开环做初筛,闭环做终检"——用开环 minADE/minFDE 快速淘汰明显差的模型(它们在闭环里也不会好),但不用开环排名决定最终选型(开环高分可能是刷出来的)。这个"初筛-终检"两级流程,和芯片制造中的"wafer-level 快速检测 + package-level 全面验证"是同一个质量控制范式。

前沿线四:不确定性量化的工程化

§4.6.4 指出"预测的不确定性量化"是开放问题。2024–2025 年出现了两个把不确定性量化从理论推向工程的关键进展:

CUQDS(AAAI 2025)——保形预测 + 分布漂移检测的联合框架。它在保形预测的基础上加了一个分布漂移检测器——当检测到测试分布偏离校准分布时,自动扩大预测区间,保持概率保证的有效性。这直接攻击了保形预测的核心假设(可交换性/i.i.d.)在非平稳驾驶环境中的脆弱性。

集成预测器的轻量化。集成方法(多个模型各自预测、用预测间的方差量化 epistemic 不确定性)一直被认为"太贵"——训练和推理成本是单模型的 \(N\) 倍。2025 年的轻量集成(如 hypernetwork-based ensemble、snapshot ensemble)把成本降到 \(\sim\)1.5 倍,使得工业级部署的不确定性量化成为可能。

本质洞察(不确定性量化为什么对下游规划如此重要——一个具体的数字故事):假设预测器输出"前车 3 秒后减速到停"的概率是 70%。如果没有不确定性量化,规划器只看到一条"减速到停"的预测轨迹,别无选择地据此减速——30% 的情况下前车没停,ego 白刹了(保守)。如果有不确定性量化,规划器看到的是"70% 减速到停、30% 继续匀速",可以据此做条件规划:备两手(分支规划 §3),或者用 CVaR 重点管"撞上还在开的前车"这个尾部。不确定性量化把"单点预测→二元决策"升级为"分布预测→概率决策"——这不是精度的提升,而是决策质量的范式升级。这也解释了为什么 §4.6.4 把"不确定性量化"列为开放问题而非"可选的精度提升"——没有它,下游规划只能在"过度保守(假设最坏)"和"盲目冒险(只看最可能)"之间二选一,永远做不出风险感知的细腻决策。

⚠️ 前沿陷阱专栏

🧠 思维陷阱:以为"扩散模型 = 银弹,解决了多模态"
   新手想法:"扩散天然多模态,用了扩散就不用担心 mode averaging 了"
   实际上:扩散的多模态是隐式的(通过采样不同噪声种子得到不同模式),
          但你无法直接控制"采到哪些模式"——可能 100 次采样都落在同一个模式
          (高概率模式被过采样),而小概率但危险的模式(如"突然横穿")
          被严重欠采样
   根本原因:扩散的采样分布由训练数据决定——训练数据中大部分是"正常驾驶",
          长尾的"异常行为"占比极小,扩散会忠实地反映这个偏斜
   正确做法:对安全关键应用,不能只靠扩散的隐式采样——需要显式的"重要性采样"
          机制,把采样分布偏向低概率高风险区域(与 CVaR 的"管尾部"思想一致)
💡 概念误区:以为"闭环评估好 = 安全"
   新手想法:"我的方法在 nuPlan 反应式闭环上排名第一,所以它是安全的"
   实际上:闭环评估的"反应式他车"仍是简化的仿真模型,不是真实人类驾驶员——
          真人的反应比仿真他车更不可预测、更情绪化、更可能做出仿真中没有的行为
   根本原因:所有仿真评估都有 sim-to-real gap。闭环仿真消灭了"开环假装闭环"
          的 gap,但引入了"仿真他车 vs 真实人类"的新 gap
   正确做法:闭环仿真是"必要但不充分"的安全验证——它能筛掉"开环看起来好
          但实际不行"的方法,但通过闭环仿真不等于通过安全认证。真正的安全
          认证需要"统计安全论证"(如 ISO 21448 SOTIF)+ 实路测试
💡 概念误区:以为 VLA/大模型能替代结构化预测
   新手想法:"有了 VLA,不需要 VectorNet/MTR 这些结构化预测模型了"
   实际上:VLA 擅长**语义理解**("那辆车在犹豫要不要让"),但它输出的
          是语言/动作 token,不是精确的 $(x,y,t)$ 坐标——而下游的碰撞检测、
          约束优化、安全验证全部需要精确的几何轨迹
   根本原因:VLA 和结构化预测**管不同粒度的问题**:VLA 管"理解意图"(抽象),
          结构化预测管"轨迹在哪"(具体)。让 VLA 直接输出精确坐标是"用锤子拧螺丝"
   正确做法:分层——VLA 在上游做意图理解和场景描述,结构化预测在下游把意图
          翻译为可量化的轨迹分布,安全层在最底层做几何碰撞检查

前沿进展在既有坐标系中的定位

把四条前沿线放回 §4.1 的六时代框架和 §4.3 的四脉血统:

前沿进展 属于哪个时代 编码脉 生成脉 耦合范式
Diffusion-Planner 第六时代(扩散+联合) Transformer Diffusion 联合一体化
CaRL 第六时代(RL 训练扩散) Transformer Diffusion+RL 联合一体化
VLA/DriveVLM 跨时代(重定义问题) VLM 骨干 Token 生成 条件/联合
CUQDS 保形预测 正交(评估/量化层) 任意 任意 不涉及(正交于耦合)
反应式闭环评估 正交(评估层)

本质洞察(前沿不是替代坐标系,而是在坐标系上"开新维度"):四条前沿线中,扩散和 VLA 是在"史—景—器"三个既有坐标轴上推进的(新时代、新工具、新骨干);而保形预测和反应式评估是在坐标系之外开了新维度——"不确定性量化的严格性"和"评估的闭环程度"。这说明交互预测方向在 2024–2026 年不仅在"做预测做得更准"(内部演进),更在重新审视"怎么量化'准'"和"准了之后怎么安全地用"(外部反思)。这个"从内部演进到外部反思"的转变,是一个方向走向成熟的标志——不再只关心"SOTA 是谁",而开始关心"SOTA 怎么衡量""SOTA 怎么部署"——这正是 §4.6 开放问题清单的主旋律。


跨章综合练习

本章是综述,练习侧重"打通"与"判断",不要求推导或编码。以下题目跨越本章多节并连接前置章节(博弈规划、不确定性规划、深度学习基础),是检验"方向感"是否建立的综合考题。建议至少完成 3 道,其中第 5、6 题为研究级开放题。

  1. (贯通史—景—器) 给定三篇论文的一句话描述:(a)"用 LSTM 编码行人历史 + social pooling 聚合邻居 + MSE 回归一条轨迹";(b)"向量化地图与轨迹 + 两级 GNN + 预测 6 个目标点再回归打分";(c)"Transformer 编码全场景 token + motion query 解码 + 输出 6 条带概率轨迹"。请为每篇定位:属于哪个时代(§4.1)、哪个建模层(§4.2)、编码脉×生成脉血统(§4.3)、有无 mode averaging 风险。

  2. (贯通耦合—评估) 一个团队报告:"我们的预测器在 Argoverse 2 上 brier-minFDE 达到 SOTA,但接入闭环规划后,在密集汇入场景仍频繁 frozen。" 请用本章知识诊断:问题最可能出在哪?(提示:从耦合范式 §4.4 和开环-闭环鸿沟 §4.5.4 两个角度,论证"开环 SOTA 与闭环 frozen 并不矛盾"。)并给出至少两条改进方向。

  3. (连接博弈综述) 回到 30_博弈规划.md,找到它讲 Stackelberg 博弈与"预测即均衡"的段落。请论证:本章的 M2I(influencer/reactor 条件预测)与博弈综述的 Stackelberg leader-follower,在数学结构上是同一件事。明确指出:谁是 leader、谁是 follower、求解派如何得到 follower 反应、学习派如何得到、二者各自的优劣。

  4. (连接不确定性规划) 回顾 20_不确定性规划.md 关于不确定性的处理。请对照本章 §4.6.4,论证:为什么"区分偶然不确定性与认知不确定性"对下游规划至关重要?设计一个决策规则——给定预测的两类不确定性,规划器分别应如何调整保守程度?

  5. (研究级·选题) 从 §4.6 六个开放问题中选一个,写一份半页的"研究提案草图":问题是什么、为什么现有方法没解决、你的切入角度、你会用什么数据集和闭环评估(而非只刷开环 minADE)来验证真实进步。要求体现你对"开环涨点≠真进步"的理解。

  6. (研究级·融合架构) 综合 §4.4.7(求解+学习融合)与 §4.6.6(VLA 双层架构),设计一个"语义层(VLA)+ 预测层(显式轨迹)+ 安全层(博弈/优化兜底)"的三层决策系统。画出数据流、指明每层用什么技术、它们如何接口、谁有最终安全否决权。讨论:这个架构如何同时利用学习的泛化、显式预测的可评估、优化的可验证?它的主要工程风险是什么?


延伸阅读

综述章的延伸阅读按"主题分组",而非简单罗列。每组给出代表性工作与一句话定位,便于按兴趣深入。注意:本章涉及的所有具体算法,未来会在 04_移动机器人规控/40_交互意图预测/ 的正文里逐一精读,此处仅作方向导览。

A. 综述与分类框架(先读这些建立全局) - Lefèvre, Vasquez, Laugier, A survey on motion prediction and risk assessment for intelligent vehicles, ROBOMECH Journal, 2014 —— 物理/机动/交互三层分类法的源头,本章 §4.2 的框架来源。 - 近年(2024–2025)多篇 arXiv 综述系统梳理了深度学习轨迹预测的"表示—建模—学习"三视角,以及涵盖扩散与大模型的多维分类框架,可作为本章的延展与更新。 - Deployable and Generalizable Motion Prediction: Taxonomy, Open Challenges and Future Directions(2025)—— 聚焦"可部署、可泛化",与本章 §4.6 开放问题高度呼应。

B. 四脉骨干的奠基作(按 §4.3 血统选读) - LSTM 系:Social LSTM(CVPR 2016)、Convolutional Social Pooling/CS-LSTM(CVPRW 2018)、Trajectron++(ECCV 2020)。 - GNN 系:VectorNet(CVPR 2020)、LaneGCN(ECCV 2020)。 - Transformer 系:Scene Transformer(ICLR 2022)、MTR(NeurIPS 2022)、Wayformer(2022)、QCNet(CVPR 2023)。 - 生成系:Social GAN(CVPR 2018)、DESIRE(CVPR 2017)、MotionDiffuser、Diffusion Policy(RSS 2023)。

C. 预测-规划耦合与端到端(§4.4 的核心文献) - 条件预测:PRECOG(ICCV 2019)、PiP(ECCV 2020)、M2I(CVPR 2022)。 - 联合一体化:DIPP(TNNLS 2023)、GameFormer(ICCV 2023)。 - 端到端:UniAD(CVPR 2023 Best Paper)、VAD/VADv2(ICCV 2023)。 - 闭环规划 SOTA:PLUTO、Diffusion-Planner(ICLR 2025)、CaRL(2025)。

D. 评估与 benchmark(§4.5 的支撑) - 数据集:nuScenes(2019)、Argoverse 1/2(2019/2021)、Waymo Open Motion(2021)、nuPlan(2021)。 - 闭环评估的反思:nuPlan 原始论文(arXiv 2106.11810)关于"开环弱相关闭环"的实证;When Planners Meet Reality: How Learned, Reactive Traffic Agents Shift nuPlan Benchmarks(2025)关于反应式智能体抬高门槛。 - 强基线反思:Schöller et al., What the Constant Velocity Model Can Teach Us About Pedestrian Motion Prediction(2020)—— 理解 §4.2.2 与 §4.6.3 长尾问题的必读。

E. 开放问题前沿(§4.6 的延展) - 不确定性:CUQDS(AAAI 2025,保形预测 + 分布漂移);NeurIPS Shifts Challenge(分布漂移 benchmark)。 - 基础模型/VLA:DriveVLM、LMDrive、Senna(驾驶侧);RT-2、OpenVLA、π0/π0.5、Groot N1(机器人侧)。

F. 工程落地(§4.3.6、§4.6.7 的实战) - 百度 Apollo modules/prediction 源码 —— 唯一的大规模生产级 C++ 预测栈,是理解"学术-工业鸿沟"的活教材,也是 C++ 工程师最该读的代码。

本质洞察(读文献的顺序建议):不要按时间顺序硬啃所有论文。先读 A 组(综述)建立地图,再按你的目标选读:建立方向感读 B 组奠基作各一篇;做研究读 C 组(耦合是真问题富矿)+ E 组(开放问题);做部署读 D 组(评估反思)+ F 组(Apollo)。读每一篇时,用本章的坐标系给它定位——它在六个时代的哪一格、三层的哪一层、四脉的哪一脉、三种耦合的哪一种、用什么数据集什么指标。有了坐标系,读论文就从"记忆缩写"变成"填充地图"。


累积项目衔接

本章是方向级综述,不含可运行代码,因此不直接产出累积项目模块。但它为后续 04_移动机器人规控/40_交互意图预测/ 正文里的累积项目奠定了选型与评估的认知地基。这里说明衔接关系,让你知道"读完综述后,动手时该带着什么框架"。

交互意图预测方向的累积项目(将在正文章节展开)大致会沿这样一条路径推进,而本综述为每一步预装了"判断力":

  1. 基线搭建(物理层):先实现一个卡尔曼滤波/恒速预测器作为基线——本章 §4.2.2 已让你理解"为什么这个'简单'基线其实是个被低估的强对手",动手时你就不会轻视它,而会把它当作衡量后续复杂模型增量价值的标尺。
  2. 意图层升级:加入机动分类/目标点预测——本章 §4.2.3 的"意图三副面孔"和 mode averaging 病,让你动手时清楚"为什么要离散化、离散化解决了什么"。
  3. 交互层骨干:实现一个 GNN 或轻量 Transformer 编码器——本章 §4.3 的四脉剖析和"编码脉×生成脉"框架,让你能有意识地选择骨干、而非照抄某篇论文。
  4. 耦合实验:把预测接入一个简单规划器,亲手复现 frozen robot,再用条件预测缓解它——本章 §4.4 的三范式与两病灶,是这一步的理论剧本。
  5. 评估闭环:用 minADE/minFDE 做开环评估,再搭一个微型闭环测试观察开环-闭环差异——本章 §4.5 让你预先知道"开环高分可能骗人",从而主动设计闭环验证。

理论-工程桥接(综述与累积项目的分工):综述给"判断力"(该选什么、为什么、坑在哪),正文累积项目给"动手力"(怎么实现、怎么调、怎么验证)。先有判断力再动手,能避免"照着论文复现却不知道为什么、一遇到 frozen robot 就懵"的困境。 这正是本教程把方向级综述独立成章、置于正文之前的设计意图——让你带着地图进山,而非进山后才发现没带地图。


后续章节关系

本章在整个 04_移动机器人规控 体系中的位置与连接:

向上承接(本章依赖的前置): - 30_博弈规划.md(孪生综述)—— 本章的"求解派对照系"。frozen robot 病灶、Stackelberg/Nash 会师点、"求解+学习融合"的最高结论,都建立在与博弈综述的对照之上。强烈建议两章合读。 - 20_不确定性规划.md —— 本章"多模态/不确定性"诉求的前置。§4.6.4 不确定性量化直接延续其讨论。 - 深度学习基础(序列建模、GNN、生成模型、Transformer)—— 本章 §4.3 四脉的数学地基,前置知识桥接已做预热。

向下铺垫(本章为之奠基的后续): - 04_移动机器人规控/40_交互意图预测/(正文系列)—— 本章是其"导览图"。正文会逐一精读本章点名的算法(Social LSTM、VectorNet、Trajectron++、MTR、GameFormer、UniAD 等),并配可运行代码与逐行源码走读。本章建立的"六时代/三层/四脉/三耦合/评估/开放问题"坐标系,是阅读那些正文的索引。 - 端到端自动驾驶相关章节 —— 本章 §4.1.5、§4.4.4 的端到端线(UniAD/VAD)会在那里深入。 - 部署与工程化章节 —— 本章 §4.3.6、§4.6.7 反复强调的"Python→C++ 鸿沟",是部署章节要正面攻克的工程课题(模型导出、量化、TensorRT、实时化、可验证化)。

横向关联(平行的兄弟方向): - 经典规控(MPC、最优控制、采样规划)—— 本章 §4.4 的"联合范式"里,规划侧仍可能用 MPC/可微优化,与经典规控章节互通。 - 强化学习决策 —— 本章 §4.6.6 的 VLA、§4.5.4 的闭环训练,与 RL 方向有交叉。

本质洞察(综述章的"枢纽"地位):本章不是一个孤立的知识点章,而是一个枢纽(hub)——它向上把博弈、不确定性、深度学习三股前置知识汇流,向下把交互预测正文系列、端到端、部署三条后续路径分发。读懂这个枢纽,你就拿到了在 04_移动机器人规控 体系里"学习派决策"这一大片版图的导航总图。


🔧 故障排查手册

综述章无代码,故"故障"对应的是认知/选型/评估/读论文环节最常见的"判断失误"——它们在工程实践中造成的代价(选错方案、误判进展、部署翻车)不亚于代码 bug。下表把全章的高频判断失误整理成"症状→可能原因→排查步骤→相关章节"的结构化排查表,是你日后做预测相关决策时的"诊断手册"。

症状 可能原因 排查步骤 相关章节
机器人在汇入/路口"不敢动"(frozen) 预测-规划解耦,预测无视 ego 影响、输出悲观分支 1.确认架构是否解耦(信息是否单向)2.检查预测是否 condition on ego 计划 3.评估升级到条件/联合范式的成本 4.亲手在闭环里复现以确认非随机现象 §4.4.2 / §4.4.3
死磕预测精度但 frozen 不改善 误把"精度问题"当病根,实为"架构单向性" 1.明确病在耦合深度不在精度(即便 minADE→0 也治不了)2.停止单纯刷开环精度 3.转向条件/联合耦合 §4.4.2 教学警示 / §4.4.5
开环 minADE SOTA,闭环却很差 开环-闭环鸿沟:误差累积、因果混淆、交互在回放里被冻结 1.检查是否只用开环指标 2.搭闭环测试(nuPlan 风格)3.排查 covariate shift 与虚假因果(如刹车灯)4.关注长尾场景表现 §4.5.4
跨论文比 minADE 得出矛盾结论 K 值/预测跨度/数据集/marginal-joint 口径不一致 1.核对两者的 benchmark 设定是否完全相同 2.对齐 K、跨度、数据集、赛道 3.不同设定下拒绝直接比较 §4.5.2 / §4.5.5
多车预测各自准但组合起来碰撞 用了边缘预测(marginal),缺联合一致性 1.确认是 marginal 还是 joint 预测 2.强交互场景改用联合预测/联合指标 3.检查下游规划是否被矛盾预测误导 §4.2.4
选了复杂模型但精度不升、部署困难 场景交互弱却硬上交互层/大模型(杀鸡用牛刀) 1.评估场景真实交互强度 2.按 §4.7.4 选型表降维到合适层 3.弱交互场景退回卡尔曼/轻量模型 §4.2.5 / §4.7.4
开源 SOTA 跑通了却无法上车 低估 Python→C++ 鸿沟(算子/算力/可验证) 1.列出模型依赖的算子,检查 C++/TensorRT 支持 2.评估平方复杂度/去噪步数的时延 3.对标 Apollo 轻量化哲学 4.把工程化成本计入排期 §4.3.6 / §4.6.7
模型给的置信度不可信(说 90% 实际 60%) 不确定性未校准,或分布漂移使校准失效 1.做校准曲线检查 2.区分偶然/认知不确定性 3.引入集成或保形预测(CUQDS)4.监控 OOD 信号 §4.6.4
系统平均表现好但偶发致命错误 长尾被平均指标稀释,用了"平均思维"评安全系统 1.改用 worst-case/长尾失败率评估 2.挖掘并重采样罕见场景 3.对安全关键路径加显式兜底 §4.6.3
误判 VLA/大模型能否解决问题 过度乐观(神化)或过度悲观(斥为炒作) 1.认清"用一种短板换另一种短板"2.评估黑箱/幻觉/算力对安全的影响 3.考虑"语义层+安全层"融合而非单押 §4.6.6

本质洞察(这些"故障"的共性诊断法):上表十个"判断失误",绝大多数的根治第一步都是同一个动作——先分清自己站在"开环/解耦/平均/精度"的旧思维里,还是"闭环/耦合/最坏/架构"的新思维里。本章从头到尾在做的,就是把你的默认思维从前者升级到后者。所以这张排查表的"元排查步骤"是:遇到任何预测相关的困惑,先问自己四个问题——(1) 我是在开环还是闭环里评判?(2) 我的预测和规划耦合了吗?(3) 我看的是平均还是最坏?(4) 我的瓶颈在精度还是在架构? 答对这四问,大多数判断失误会自动现形。这是本章留给你的、可迁移到任何新方法新论文的"诊断元能力"。



累积项目衔接

本章是方向级综述,不含可运行代码。但它为 04_移动机器人规控/40_交互意图预测/ 正文的累积项目奠定了"选型、评估、诊断"三重认知地基。

综述为累积项目提供的三重判断力

第一重:选型判断力。 累积项目的核心决策是"用什么网络骨干"——LSTM、GNN 还是 Transformer?§4.3 的四脉剖析告诉你:小数据用 GNN(强先验)、大数据用 Transformer(高容量)、序列结构强用 LSTM、多模态用扩散。这不是"哪个最先进"的问题,而是"你的数据量和算力匹配哪个"的问题。

第二重:评估判断力。 累积项目的结果怎么评估?§4.5 告诉你:开环 minADE 是必要但不充分的初筛,闭环测试才是真考验。你在累积项目中应该同时搭开环和(微型)闭环评估,亲手体验"开环高分但闭环 frozen"的落差——这是用文字读一百遍都不如亲手做一次的认知跃迁。

第三重:诊断判断力。 累积项目遇到问题时怎么定位?故障排查手册给了十个"症状→病根→排查步骤"的诊断路径。最常见的三个问题是:(1) frozen robot(检查预测-规划是否解耦了),(2) 开闭环不一致(检查是否只用了开环评估),(3) 模型复杂但精度不升(检查是否场景交互本就弱、不需要复杂模型)。

推荐的累积项目阶段

阶段 任务 本综述为其提供什么
1 实现恒速基线 §4.2.2 理解"为什么简单基线被低估"
2 实现 Social LSTM / 轻量 GNN §4.3 四脉血统让你有意识地选择骨干
3 加入意图分类(目标点预测) §4.2.3 的"意图三副面孔"提供理论背景
4 接入简单规划器,复现 frozen robot §4.4 的三范式与两病灶提供理论预期
5 实现条件预测缓解 frozen §4.4.3 条件范式的设计要点
6 搭闭环微测试,对比开环/闭环指标 §4.5.4 开环-闭环鸿沟的实证背景

本质洞察(综述是累积项目的"预习",不是"复习"):大多数学生的错误是"先做再看综述"——写完代码发现 frozen robot 了才翻回来找原因。正确顺序是"先看综述建立预期,再做项目验证预期"——你带着"我预期会在阶段 4 看到 frozen robot,因为§4.4 说解耦架构必然产生这个病"的认知去做,当 frozen robot 如期出现时,你不是慌张而是确认;当它没出现时,你会去深挖"为什么我的场景交互弱到连 frozen robot 都没出来"——两种情况都是学习。这就是"预期驱动的学习"比"后知后觉的学习"高效的原因。


⚠️ 综合陷阱专栏(全篇汇总补充)

陷阱:把"注意力权重"当作"交互强度"的证据

💡 概念误区:用 Transformer 的注意力权重来解释"谁和谁在交互"
   新手想法:"attention weight 高的两个 agent 就是在强交互"
   实际上:注意力权重是模型为了自己的预测准确而学出的"信息汇聚系数",
          不是"交互强度"的因果度量。两个 agent 的 attention 高,
          可能只是因为它们物理距离近(模型需要关注近邻的位置信息),
          不代表它们之间有策略性的交互
   根本原因:attention 是一种**关联**信号(correlation),不是**因果**信号
          (causation)。要度量真正的交互强度,需要做反事实实验
          ("如果 agent A 不在,agent B 的轨迹会怎样变化?")
   正确做法:(1) 不把 attention 当可解释性工具用于安全决策;
          (2) 要度量交互,用 counterfactual perturbation(去掉某 agent
          看预测变化多大);(3) 理解 attention 的价值在于"帮模型做准预测",
          不在于"帮人类理解交互"

陷阱:以为"联合预测"解决了所有问题

🧠 思维陷阱:认为从 marginal 升级到 joint 预测就万事大吉
   新手想法:"marginal 预测各车独立,组合起来互相碰撞(§4.2.4 的问题);
          换成 joint 预测就场景一致了,问题解决"
   实际上:joint 预测保证了场景级一致性(不互相碰撞),但引入了新问题:
          (1) 联合空间维度爆炸($N$ 个 agent × $T$ 步 × 2D = $2NT$ 维),
          需要分解或近似;(2) 联合分布的多模态更复杂($K$ 种独立模式的笛卡尔
          积是 $K^N$ 种联合模式),表达和采样都更困难;(3) 训练数据只有一条
          真实联合轨迹(无反事实),学联合分布比学边缘分布更欠定
   根本原因:从 marginal 到 joint 不是"修一个 bug",而是"换一类问题"——
          marginal 的 bug 是"不一致",joint 的 bug 是"维度高、数据欠定"
   正确做法:根据场景需求选择:弱交互场景 marginal 够用(且更稳定),
          强交互场景值得付 joint 的代价(§4.2.7 陷阱三已提及)

陷阱:用"数据越多越好"的心态堆数据

🧠 思维陷阱:以为 Waymo Open Motion Dataset 比 nuScenes 大 10 倍就一定更好
   新手想法:"数据越多模型越好,用最大的数据集就对了"
   实际上:(1) 数据集的**分布差异**比**规模差异**更重要——Waymo 数据全来自
          美国几个城市的晴天白天,nuScenes 有新加坡和波士顿的雨天夜间;
          (2) 大数据集的**长尾事件仍然不够**——即使 100 万条轨迹里,
          "行人突然冲出"的样本可能只有几十条,统计上不可靠;
          (3) 数据集之间的**标注口径不一致**——Waymo 的 object type 分类
          和 nuScenes 的不同,混训可能引入噪声
   根本原因:预测模型的瓶颈不是"数据太少"而是"长尾太少 + 分布不匹配"。
          拿 1000 万条高速跟车数据也学不好"路口行人横穿"
   正确做法:(1) 关注数据的**场景多样性**而非总量;
          (2) 对长尾场景做重采样或合成增强;
          (3) 混用多数据集时做域对齐(domain adaptation)

陷阱:以为"实时推理 = 可部署"

💡 概念误区:模型推理速度达到 30fps 就认为可以部署
   新手想法:"我的 Transformer 预测模型在 GPU 上跑 50ms/帧,满足实时要求"
   实际上:部署涉及的远不止推理速度——还有:
          (1) **算力平台**:车载芯片(Orin/TDA4)的算力是桌面 GPU 的 1/10;
          (2) **模型导出**:PyTorch→ONNX→TensorRT 的转换不是无损的
              (某些 PyTorch 算子不被 TensorRT 支持);
          (3) **延迟预算**:50ms 只是预测模块的延迟,整个栈
              (感知+预测+规划+控制)的总延迟预算可能只有 100ms;
          (4) **确定性**:GPU 上同一输入的推理时间可能有 2x 波动(调度抖动),
              而实时控制要求确定性延迟
   根本原因:§4.3.6 / §4.6.7 反复强调的"Python→C++ 鸿沟"不只是语言差异,
          而是"研究环境 vs 部署环境"的全栈差异
   正确做法:从第一天就在目标硬件上 benchmark;把"可部署"定义为
          "在目标芯片上、在延迟预算内、确定性地、正确地运行"

版本信息

  • 文档类型:方向级综述(综述/对比类,重在脉络梳理与对比综合,几乎无代码)。
  • 定位:交互意图预测方向的方向级综述,是移动机器人规控综述层(Part-S)的第四篇。
  • 覆盖范围:六个时代的演化脉络、三层建模全景、四脉深度模型剖析、三种预测-规划耦合范式、主流数据集与评估指标、六大开放问题、2024–2026 前沿(扩散规划器、VLA 冲击、反应式闭环评估、不确定性量化工程化)。
  • 与正文的关系:本综述做"定位、分类、比较、诊断",40_交互意图预测/ 正文做"精读、实现、走读、动手"。
  • 前沿截止:纳入 2025–2026 年 Diffusion-Planner(ICLR 2025 Oral)、CaRL、CUQDS(AAAI 2025)、反应式闭环评估等关键进展。

缩写表

缩写 全称 首次出现
LSTM Long Short-Term Memory §4.3
GNN Graph Neural Network §4.3
GAN Generative Adversarial Network §4.3
CVAE Conditional Variational Autoencoder §4.3
VLA Vision-Language-Action §4.6
VLM Vision-Language Model §4.6
minADE minimum Average Displacement Error §4.5
minFDE minimum Final Displacement Error §4.5
mAP mean Average Precision §4.5
MPC Model Predictive Control §4.4
CBF Control Barrier Function §4.4
POMDP Partially Observable Markov Decision Process §4.4
OOD Out-of-Distribution §4.6
CP Conformal Prediction 前沿深化
DRL Deep Reinforcement Learning 前沿深化
AEB Autonomous Emergency Braking 故障排查
BEV Bird's Eye View 前沿深化
ONNX Open Neural Network Exchange 附录 B
TensorRT NVIDIA TensorRT 附录 B
MSE Mean Squared Error §4.2
KL Kullback-Leibler divergence §4.3
ELBO Evidence Lower Bound §4.3
BCE Binary Cross-Entropy §4.5
NMS Non-Maximum Suppression §4.3
IoU Intersection over Union §4.5

数据集速查表

数据集 发布年 场景 标注智能体数 预测跨度 特色
ETH/UCY 2007/2009 行人 ~10/帧 4.8s 行人预测经典 benchmark
nuScenes 2019 城市驾驶(新加坡/波士顿) ~40/帧 6s 多传感器、有雨天夜间
Argoverse 1 2019 城市驾驶(匹兹堡/迈阿密) ~50/帧 3s 向量化地图质量高
Argoverse 2 2021 城市驾驶(6 城市) ~50/帧 6s 更大规模、focal agent
Waymo Open Motion 2021 城市/郊区(凤凰城等) ~128/帧 8s 最大规模、交互标注
nuPlan 2021 城市驾驶(拉斯维加斯等) ~50/帧 8s 唯一支持闭环评估
INTERACTION 2019 路口/环岛 ~30/帧 3-5s 高度交互场景
KITTI 2012 城市驾驶(卡尔斯鲁厄) ~15/帧 感知 benchmark 经典,预测非主流
Lyft Level5 2020 城市驾驶(帕洛阿尔托) ~40/帧 5s 数据量大但社区活跃度↓
SDD 2016 行人(校园鸟瞰) ~20/帧 4.8s 行人 top-down 经典

开源代码推荐路径

阶段 推荐代码 学到什么
入门 Apollo modules/prediction(C++) 工业级预测栈长什么样
基础 Trajectron++(PyTorch) LSTM+CVAE 的多模态预测
进阶 MTR(PyTorch) Transformer+目标点的 SOTA 架构
前沿 UniAD(mmdet3d) 端到端感知-预测-规划融合
最新 Diffusion-Planner(PyTorch) 扩散联合规划的前沿实现

本质洞察(按这个顺序读代码的理由):Apollo 先读是因为它是唯一的 C++ 产品栈,能让你理解"工业界要什么样的预测"(实时、确定、可维护、轻量)。Trajectron++ 给你"学术预测器的标准形态"(encoder-decoder + 生成模型)。MTR 给你"Transformer 时代的 SOTA 是什么样"。UniAD 让你看到"预测不是孤立模块,而是端到端链条的一环"。Diffusion-Planner 让你看到"预测和规划怎么融合成一个去噪过程"。五个代码库覆盖了 §4.1 六时代中的第 2–6 代,按时间顺序读就像看一部"交互预测方法演化纪录片"。

本质洞察(数据集的选择不是"哪个最大",而是"你的场景和它的分布匹配吗"):Waymo 最大但全是美国干燥城市,nuScenes 有雨天夜间但规模小,nuPlan 唯一支持闭环但场景有限。没有一个数据集是"通用 benchmark"——选数据集时问"我的目标部署场景和它的数据分布有多大重叠",比问"哪个排行榜最权威"更实际。

评估指标的"陷阱-正解"速查

指标 计算方式 奖励什么 纵容什么(陷阱) 正解/替代
ADE 预测与真值的平均位移误差 整体准确 单模态回归(mode averaging) 用多模态 minADE
FDE 终点位移误差 终点准确 忽略中间过程 用全程 ADE + FDE 联合
minADE\(_K\) \(K\) 条预测中最好那条的 ADE 至少有一条接近真值 广撒网(撒 \(K\) 条无用轨迹也能刷低) 用 brier-minFDE(惩罚低概率的好预测)
Miss Rate 所有 \(K\) 条是否有一条在阈值内 至少有一条"命中" 和 minADE 一样纵容广撒网 用 MR + 概率校准联合
mAP 多模态预测的精度-召回 又准又全 计算复杂、不同 K 下不可比 Waymo 官方,相对最严
brier-minFDE minFDE × (1-概率) 准的那条概率还要高 \(K\) 仍有依赖 目前最好的折中

反事实推理(如果所有排行榜都用 brier-minFDE + 闭环评估会怎样):很多当前 SOTA 的排名会大幅变化——因为它们学会了"用大 \(K\) 广撒网刷 minADE"的捷径(§4.5.3 已分析),而 brier-minFDE 惩罚"概率分配给了错误的模式",闭环评估惩罚"预测准但规划冻结"。一个方法在这两个严格指标下仍排名靠前,才是真正的进步——这也是为什么 §4.5 反复强调"指标选择决定了你优化的是什么"。

一个评估指标的完整走查:同一个预测器在不同指标下的"变脸"

考虑一个预测器,对路口场景输出 6 条候选轨迹:

  • 轨迹 1–4:都是"直行"的微小变体(几乎重合),各 20% 概率
  • 轨迹 5:"左转",10% 概率
  • 轨迹 6:"右转",10% 概率
  • 真值:车辆左转
指标 得分 评价
minADE\(_6\) 低(轨迹 5 是左转,接近真值) "好"——至少有一条对了
ADE(单轨迹最高概率) 高(最高概率是直行,远离真值) "差"——最有可能的那条完全错
brier-minFDE 中偏高(轨迹 5 虽对但只有 10% 概率) "中"——对了但不自信
Miss Rate (\(d=2\)m) 0(轨迹 5 在 2m 内) "好"——但只因为撒了 6 条
闭环表现 可能 frozen(80% 概率给了直行 → 规划器按直行规划 → 车辆左转时 frozen) "差"

本质洞察(同一个预测器,在不同指标下可以从"好"到"差"翻脸):这个例子精确展示了 §4.5.3 的"指标选择决定了你看到什么"——minADE 说"好"(因为广撒网),brier-minFDE 说"中"(因为概率分配不好),闭环说"差"(因为最高概率的模式是错的、规划器按错的走了)。开环指标和闭环表现之间的这种"翻脸",是 §4.5.4 "开环-闭环鸿沟"的最具体的数字化呈现。 - 活文档:后续教学讨论中产生的新论文定位、新陷阱、新诊断场景应回写本篇(R12)。


附录 C:交互预测与博弈规划的会师点详解 ⭐⭐⭐

本附录展开 §4.4 提到但未详细剖析的"交互预测与博弈规划的会师"——即"学习式预测"和"显式博弈求解"这两条技术路线在终点如何汇聚到同一个目标。

两条路线的出发点与汇聚点

      学习式预测(本章主线)              显式博弈(30_博弈规划.md 主线)
      ─────────────────                 ─────────────────────
出发点:从数据中学他车轨迹分布           出发点:用代价函数建模每个玩家的目标
工具:  LSTM / GNN / Transformer / 扩散  工具:  iLQGames / ALGAMES / 逆博弈
假设:  有大规模标注数据                 假设:  代价函数已知(或可推断)
        ↓                                       ↓
弱点:  不建模 ego 对他车的影响           弱点:  需要精确的代价函数
        (frozen robot)                         (代价怎么来?)
        ↓                                       ↓
改进:  条件预测 → 联合预测-规划          改进:  逆博弈 → 从数据学代价
        (ego plan 注入预测)                    (数据驱动参数)
        ↓                                       ↓
        ╰──────── 会 师 点 ────────────╯
           "联合建模 ego+他车的交互,
            同时利用数据和结构先验"

会师点的三种具体形态

形态 代表工作 怎么融合
博弈结构注入学习 GameFormer(Huang 2023) 把 Level-k 博弈的"我猜你猜我"结构嵌入 Transformer 的 attention 层
学习驱动博弈参数 逆博弈(Peters 2021) 用观测数据反推博弈的代价参数,让博弈求解器有了"从数据来的代价"
可微博弈嵌入损失 Auto-Encoding Bayesian Inverse Games(2024) 把可微 Nash 求解器作为 VAE 的 decoder,端到端训练

本质洞察(两条路线的汇聚是"结构 vs 数据"二元性的消解):学习式预测有数据但没有交互结构(不知道"谁在影响谁"),博弈规划有结构但没有数据(不知道"代价到底是多少")。两条路线在终点汇聚,恰恰是因为各自把对方缺的那块补上了——GameFormer 给数据驱动的 Transformer 补上了博弈的"交互结构",逆博弈给博弈求解器补上了"数据驱动的代价"。这与整个机器学习领域的大趋势一致:最前沿的方法不再是"纯数据"或"纯结构",而是"结构化的学习"——用领域知识(博弈结构)约束学习的搜索空间,用数据填充结构中不确定的参数。理解了这个会师的深层原因,你就能判断未来的新方法大概率会沿这条"结构+数据"的路线继续前进,而不是回到"纯数据"(如早期 Social LSTM 的无结构学习)或"纯结构"(如传统 iLQGames 的手工代价)。

对工程师的实践含义

如果你正在搭建一个交互预测+规划系统,这个"会师"意味着你有三个选择:

  1. 如果你的场景交互弱(高速跟车、稀疏行人):纯学习式预测(解耦范式)即可,不需要博弈结构——性能足够且实现简单。
  2. 如果你的场景交互强但数据充足(城市驾驶、大规模数据集训练):考虑 GameFormer 类方法,用博弈结构约束 Transformer 的学习。
  3. 如果你的场景交互强但数据有限(特殊工业场景、新机器人形态):考虑逆博弈类方法,用少量交互轨迹推断代价函数,然后用博弈求解器做在线规划。

关键判断标准:不是"哪个方法更先进",而是"你的数据量和你的结构先验哪个更强"——数据充足时让数据说话(学习主导),结构先验强时让结构约束(博弈主导),两者都有时融合(会师点方法)。


附录:交互预测方法定位速查工作表

本附录提供一张空白的"方法定位工作表"——当你遇到任何新预测方法(论文、开源库),用这张表的六行填空就能快速定位它在本章坐标系里的位置。

使用方法

拿到一个新的交互预测方法后,逐行填写:

方法名:_____________

1. 时代定位(§4.1 六时代):物理感知 / 社交池化 / 向量化 / Transformer / 端到端 / 扩散+VLA
   判断依据:它的核心技术创新属于哪个阶段?
   → 我的填写:_______________

2. 建模层次(§4.2 三层):物理感知 / 机动意图感知 / 交互感知
   判断依据:它是否显式建模智能体间的信息传递?
   → 我的填写:_______________

3. 编码脉(§4.3):LSTM 系 / GNN 系 / Transformer 系 / 其他
   判断依据:它用什么网络骨干编码场景/历史?
   → 我的填写:_______________

4. 生成脉(§4.3):确定性回归 / CVAE / GAN / 扩散 / 目标点+回归
   判断依据:它用什么机制生成多模态预测?
   → 我的填写:_______________

5. 耦合范式(§4.4):解耦 / 条件预测 / 联合一体化 / 端到端
   判断依据:它的预测是否 condition on ego 的规划?
   → 我的填写:_______________

6. mode averaging 风险(§4.2.3):有 / 无 / 部分缓解
   判断依据:它的输出是单条轨迹(有风险)还是多条带概率(无风险)?
   → 我的填写:_______________

定位结论:它和 §4.3 的哪条脉最接近?_______________
它在 frozen robot 问题上(§4.4.2)会怎么表现?_______________
它用什么指标评估过?这些指标的口径可靠吗(§4.5)?_______________

填写示范

方法名:MTR(Motion Transformer, Waymo, NeurIPS 2022)

1. 时代定位:第五时代(Transformer 统一)
2. 建模层次:交互感知(全场景 polyline + agent 的交叉注意力)
3. 编码脉:Transformer(PointNet-style polyline encoding + 自注意力)
4. 生成脉:目标点+回归(motion query 对应固定的 intention points,再回归轨迹)
5. 耦合范式:解耦(纯预测模块,不 condition on ego plan)
6. mode averaging 风险:无(多条带概率的候选轨迹,intention points 避免了 mode collapse)

定位结论:Transformer 编码脉 × 目标点生成脉的交叉——"地图感知的多模态预测"
frozen robot 表现:因为是解耦的,预测不考虑 ego 动作,可能产生悲观分支→frozen
评估:Waymo Open Motion 排行榜 minADE/minFDE/mAP,闭环未评估

本质洞察(这张工作表让你"读论文的速度提升 3 倍"):拿到一篇新的预测论文,不需要逐字读完方法章——先扫 abstract 和 figure 1(通常画了方法架构),填完六行,你就知道"这篇论文在本章地图的哪个位置、它解决了什么前辈的什么问题、它的盲区可能在哪"。六行定位完成后,你只需精读"它和地图上最近的前辈有什么不同"那一段——这通常是 contribution 段的 2-3 句话。对于大量涌入的 arXiv 预印本,这种"先定位再精读"的策略比"从头读到尾"高效得多。


附录 B:交互预测方向的工程生态总评 ⭐⭐

本附录汇总交互意图预测方向的工程生态现状,聚焦 §4.6.7 反复提到的"Python→C++ 鸿沟"。

生态现状总表

项目/代码库 语言 Stars 定位 C++ 可用性
Apollo modules/prediction C++ (apollo 26k+) 唯一的量产级 C++ 预测栈
Trajectron++ Python (PyTorch) ~900 学术 CVAE 预测
LaneGCN / VectorNet Python 学术 GNN 预测
MTR Python (PyTorch) ~200 Waymo SOTA
UniAD Python (mmdet3d) ~1.2k 端到端 SOTA
GameFormer Python (PyTorch) 博弈+Transformer 预测
Diffusion-Planner Python (PyTorch) 扩散联合规划

三个关键观察

观察一:这是整个移动规控方向里 C++ 代码最少的子方向。 除了 Apollo 的 prediction 模块(基于 LSTM + semantic map 的轻量实现,而非 SOTA),没有任何学术前沿的预测方法有 C++ 实现。这不是疏忽,而是结构性原因——交互预测的核心工具(Transformer、GNN、扩散)的训练和推理全依赖 PyTorch/JAX 生态,C++ 侧缺乏等价的高效算子。

观察二:Apollo 的预测模块和学术 SOTA 之间隔着一个代差。 Apollo 用的是 LSTM + semantic map + 规则后处理的架构(约 2019 年水平),远落后于 MTR/GameFormer/UniAD 这类 2022–2023 的 Transformer 方法。但 Apollo 的方法已在量产车上运行多年且经过实路验证——这说明"学术 SOTA"和"工程可靠"之间确实存在一条鸿沟,而且这条鸿沟不能简单地通过"把 SOTA 转成 C++"来跨越——安全认证、确定性推理、边缘算力、可调试性都是学术 benchmark 不考核的维度。

观察三:TensorRT/ONNX 是当前唯一的"桥"。 要把 PyTorch 的预测模型部署到 C++ 运行时,当前唯一可行的路径是 PyTorch → ONNX → TensorRT/OpenVINO → C++ 推理。但这条路有多个"陷坑"——某些 PyTorch 算子(如 dynamic shape 的 scatter/gather、自定义的 attention mask)不被 TensorRT 支持,需要手动重写或替代。

本质洞察("Python→C++ 鸿沟"不是暂时的,而是结构性的):交互预测方向的核心研究范式是"在 Python 里快速迭代模型架构、在大数据集上训练、在开环 benchmark 上刷分"——这个范式的每一步都天然偏好 Python/PyTorch(灵活的动态图、丰富的预训练权重、便利的数据加载)。C++ 的优势(确定性、低延迟、可嵌入)在研究阶段几乎不被需要。所以这条鸿沟不是"研究者懒得写 C++",而是"研究范式和部署范式在语言选择上的结构性不匹配"。弥合它需要的不是"把每篇论文的代码翻译成 C++"(成本太高且翻译后即过时),而是"构建通用的 PyTorch→C++ 部署管线"(TensorRT 路线)或"在 C++ 侧构建等价的推理引擎"(如 ONNX Runtime C++ API)。对 C++ 工程师而言,你的最大价值不在于"用 C++ 复现某个 SOTA",而在于"构建一条让任何 PyTorch 预测模型都能可靠部署到 C++ 的管线"——这是一个一劳永逸的基础设施投资

部署管线的具体技术选型

对于决定投入"PyTorch→C++ 部署管线"建设的工程师,以下是当前(2024–2026)三条可行路线的对比,帮助你判断哪条路线最适合你的项目约束:

路线 技术栈 延迟(典型 Transformer 预测模型) 算子覆盖率 维护成本 适合谁
TensorRT PyTorch → ONNX → TensorRT engine 2–5 ms(FP16, NVIDIA GPU) 中高(90%+ 常用算子,自定义 plugin 需手写 CUDA) 中(每次模型更新需重新 export+build) 有 NVIDIA 硬件且追求极致延迟的量产项目
ONNX Runtime PyTorch → ONNX → ORT C++ API 5–15 ms(CPU/GPU 均支持) 高(95%+ ONNX 标准算子) 低(ONNX 是标准格式,模型更新只需重新 export) 跨平台部署、不绑定 NVIDIA、或资源受限的嵌入式
TorchScript/LibTorch torch.jit.trace / torch.jit.script → LibTorch C++ 8–20 ms(依赖 PyTorch 运行时) 最高(直接用 PyTorch 引擎) 高(需打包 PyTorch 运行时,体积大,版本耦合强) 快速原型验证、不需极致优化的研究项目

三条路线共同的"陷坑"清单

  1. 动态 shape:预测模型的输入智能体数量是变化的(路口可能有 3–20 个 agent),但 TensorRT 偏好固定 shape。解法:用 padding 到固定上限 + attention mask 忽略 padding 位,或用 TensorRT 的 dynamic shape profile(设 min/opt/max 三档)。
  2. 自定义注意力算子:学术代码常用自定义的 attention mask(如 agent-lane、agent-agent 的稀疏 mask),这些算子在 ONNX export 时可能失败。解法:在训练阶段就用 ONNX 友好的标准化注意力实现(如 torch.nn.MultiheadAttention),或用 ONNX opset 18+ 的 ScaledDotProductAttention
  3. 后处理逻辑:预测模型的输出通常需要后处理(NMS 去重、概率归一化、坐标系变换),这些逻辑在 Python 里几行搞定,但在 C++ 侧需要手写。建议:把后处理逻辑从模型外部移到模型内部(作为网络的最后几层),这样 export 时一并带走。

理论-工程桥接:附录 B 的"三个关键观察"指出了"Python→C++ 鸿沟"的结构性原因,本节把它落实到"你今天就可以开始做的事"。一个务实的工程建议是:不要等"完美的通用管线"出现再开始——先挑你当前项目里性能最关键的一个预测模型,用 ONNX Runtime 路线跑通端到端部署(从 PyTorch 权重到 C++ 推理输出),积累经验后再考虑切 TensorRT 追延迟。这条"先跑通再优化"的路径,比"一开始就追求 TensorRT 极致优化"更容易成功——因为前者让你在第一天就有一个可运行的 C++ 推理基线,而后者可能让你在 ONNX export 的算子兼容性问题上卡两周。


全章结语:交互意图预测,是过去十年机器人与自动驾驶领域范式更迭最快、论文最密、也最能体现"学习"与"求解"两种哲学碰撞的方向。本章用"史—景—器—耦—测—问"六段,把这条湍急的演化河流梳理成了一张可复述的地图:它的主轴是"表示—交互—耦合"三级跳,它的方法谱是"三层野心 × 四脉工具",它的灵魂是"解耦→条件→联合"并与博弈规划会师,它的标尺充满"开环会骗人"的陷阱,它的边疆扎根于"反事实真值缺失"的认识论难题,它的工程现实是一条"Python 研究→C++ 部署"的鸿沟——而这条鸿沟,恰恰是你这样的 C++ 母语机器人工程师最值得投身的战场。合上这一章时,愿你脑中留下的不是一锅论文缩写的字母汤,而是一张能给任何新论文、新方法定位的坐标系,和一套能识破"SOTA 宣称"水分的诊断元能力。带着这张地图,去 40_交互意图预测/ 的正文里动手吧。