T05 · 模仿学习的动作分布建模(Diffusion Policy 谱系)
核心问题:怎么从人类演示学一个策略,绕开 reward 设计,同时处理多模态动作分布和协变量偏移?
状态:🟢 活跃(2024 末已与 VLA 范式合流,但动作分布建模本身仍是开放问题)
🎯 你将学到什么
- 理解朴素 BC 的两个数学先天缺陷:协变量偏移(导致 $O(\epsilon T^2)$ 累积误差)与多模态动作分布(MSE 回归会把多模态平均成无效动作)
- 掌握 Diffusion Policy 的双重创新(条件去噪扩散 + action chunking)为何必须一起用才成立
- 分清 ACT 与 Diffusion Policy 这对平行解(CVAE latent vs 迭代去噪;推理快表达弱 vs 推理慢表达强)的 trade-off
- 能解释推理加速三条路线(consistency distillation / flow matching / 历史动作作起点)的原理与适用场景
- 看懂 π0 为何用 flow matching action head 取代 diffusion,成为 IL 思想被 VLA 吸收的合流点
本页内容
基础解释
一句话直觉
从人类演示学动作,不设计打分。
难点是同一个情境,常有多种都对的动作。
好比问路时岔口有两条都到家的路。
朴素办法会把两条平均成一条穿墙的废路。
从基础理解
要解决的问题
模仿学习很诱人:给一堆人类演示,学一个策略,不用设计打分。
但朴素的照抄每一步,有两个绕不开的先天病。
- 级联误差。训练时只见过人类走过的状态。部署时走出稍微偏离的一步,就掉进训练集没见过的状态。误差像滚雪球越滚越大。
- 多模态动作。同一个拧扳手,左转、右转都对,演示里两种都有。朴素回归会把两个答案,平均成一个什么也不做的中间值。
演进脉络(两次平行突破 + 四条岔路)
同一年里两个团队几乎同时给出答案,都不约而同塞进同一个招式。
- 条件扩散。把动作序列当图像一样,从纯噪声一步步去噪出来。左转右转是去噪过程里两条不同的吸引子,不会互相平均 📎。
- 条件编码器。塞一个低维风格变量,推理时随机抽一个模式。单次前向、更快,但表达力弱些 📎。
两边共同招式叫动作分块:一次预测一整段动作,而不是一步。
这同时把级联误差也缓解了。原本要错几十次的活,现在只错几次。
后来分四条岔路。
把二维像素换成三维点云提升泛化 📎。
把几十步去噪压到一两步提升速度。
把动作头扩到十亿参数当基础模型 📎。
最后被视觉语言大模型吸收,当它的动作生成器 📎。
方法核心(大白话)
最巧的是动作分块和多模态生成,必须搭在一起用。
单用分块、还是朴素回归,多模态那关过不了。
一段十几步的动作序列,回归会把它塌缩成一个平均序列。
单用多模态生成、不分块,级联误差那关过不了。
真正的贡献是让一整段动作序列变得可生成。
扩散能在序列空间里采样出多个模式,而不是吐一个均值。
后来的流匹配,用几步直线积分取代几十步去噪。
更稳更快,正在取代原始扩散 📎。
一句话类比
动作分块配多模态生成,之于演示学习,就像合唱团唱和声之于多人独唱。
一次唱一整段和声。
而不是每人发一个音,再平均成一个怪声。
一、这条线索在解决什么
模仿学习(Imitation Learning, IL)想做的事情很朴素:给一堆人类演示轨迹 $\{(o_t, a_t)\}$,学一个映射 $\pi(a\mid o)$。它最吸引人的地方是不用设计 reward——在机器人操作领域,设计一个稳定、不 reward hacking、还能引导出精细操作的 reward 是出了名的难。理论上只要数据够多,监督学习就能把策略学出来。
但朴素的行为克隆(Behavioral Cloning, BC)——用 MSE 回归下一步动作——有两个数学上回避不掉的先天缺陷,这条线索的全部演进都围绕这两点展开:
- 协变量偏移(covariate shift)与级联误差(compounding error)。训练时策略只见过专家轨迹上的状态分布 $p_{\text{expert}}(o)$;部署时一旦做出一个稍微偏离的动作,机器人就会落到训练集没见过的状态上,误差雪球式放大。形式上,设单步误差 $\epsilon$,T 步后误差按 $O(\epsilon T^2)$ 累积([Ross 2011, arxiv:1011.0686] 的经典 bound)。这是 IL 区别于 RL 的根本痛点——RL 的策略是自己 roll-out 训练的,本身就在自己的状态分布上;BC 的策略是 off-distribution 训练的。
- 多模态动作分布(multimodal action distribution)。把一个扳手拧到目标位姿,左转、右转都是正确答案,演示数据里两种动作都出现。MSE 回归会把两个 mode 平均成一个 mode 之间的无效动作——数学上 $\arg\min_a \mathbb{E}[\|a - a_{\text{demo}}\|^2] = \mathbb{E}[a_{\text{demo}}]$,对两个对称的高斯分布就是均值零附近的「什么也不做」。这是为什么 LSTM + MSE BC 在稍微多模态一点的任务上就崩。
这两个缺陷各自催生了一条解法:DAgger 解决协变量偏移,Diffusion Policy / ACT 解决多模态。这条线索的故事,就是看这两个 trick 怎么被组合、被规模化、最终被吸收进 VLA 基础模型。
💡 核心洞察:朴素 BC 的两个数学病——$O(\epsilon T^2)$ 协变量偏移累积、MSE 回归把多模态动作平均成「什么也不做」——是这条线索全部演化的根问题,后续 DAgger / chunking / diffusion / ACT 的所有创新都在分别给这两个病打补丁。
术语澄清:这里的「多模态」指动作分布的多模态(action distribution multimodality),和「多模态输入」(视觉+语言,multimodal input)是完全不同的两个概念,二者只是共用同一个英文词。这条线索谈的是前者;VLA 线索(T06)谈的是后者。
二、时间线(关键转折点)
2011 年 DAgger 用在线学习把协变量偏移规约为 no-regret 问题,给出了第一个理论补丁——但要不停喊专家标注,工程上没人愿意长期部署。2013–2022 年 IL 在机器人上一直不温不火,因为这两个病都没真正治好。
转折发生在 2023 年 3–4 月的连续两个月:Columbia 的 [Chi 2023, arxiv:2303.04137](Diffusion Policy)和 Stanford 的 [Zhao 2023, arxiv:2304.13705](ACT / ALOHA)几乎同时给出了多模态动作分布的两种解法——一个用条件扩散,一个用 CVAE——而且两者都不约而同地塞进了 action chunking(一次预测一段动作序列),顺带把协变量偏移也缓解了。这是一次教科书级的「平行收敛」。
之后这条线索分四条支脉演化:(1) 3D 泛化——DP3 把 2D 像素换成点云;(2) 推理加速——Consistency Policy / FlowPolicy 把几十步去噪压到 1–2 步;(3) 大规模化——RDT-1B / CogACT 把 diffusion action head 推到 1B+;(4) 被 VLA 吸收——π0 把 flow matching action head 塞进 PaliGemma,IL 思想正式成为 VLA 的「动作生成器」。
三、关键转折的深度解析
转折 0:DAgger(2011)——协变量偏移的理论补丁
- 前作的缺陷:朴素 BC 的状态分布错配,前面讲过了。
- 核心 idea:不要只在专家分布上训练,而要让策略用自己诱导出的状态分布继续查询专家标签。具体做法是迭代:当前策略 $\pi_i$ 跑出一条轨迹 $\to$ 对轨迹上每个状态问专家要动作 $\to$ 把 $(o, a_{\text{expert}})$ 加进数据集 $\to$ 重新训练 $\pi_{i+1}$。[Ross, Gordon, Bagnell 2011] 把这规约为 no-regret online learning(每次迭代是一个「在线决策」),证明 $\epsilon$-suboptimal 专家能把总 regret 控制到 $O(T\epsilon + \sqrt{T})$,从理论上把 IL 误差拉到和专家同阶。
- 为什么是突破:第一个把协变量偏移说清楚、给出可证明 bound 的工作。
- 留下的新问题:要不停喊专家。在机器人上专家就是人,意味着要在线让人纠正机器人的错误——昂贵、危险、不可规模化。后来 HG-DAgger / Safe DAgger 都是工程上的妥协,但根本问题(需要持续人工介入)没解决。这正是后来 action chunking 之所以重要的原因:它不需要任何额外人工就能近似缓解协变量偏移。
转折 1:Diffusion Policy(2023.03)——双重创新
[Chi et al. 2023] 同时做了两件事,每件都单独是重要贡献,但必须一起用才成立。以下精确数字来自论文 PDF Sec.2–5 + Table 1(超参表),详见 P-DiffusionPolicy-2023.md。
创新一:用条件去噪扩散学动作分布。 策略不再回归一个动作,而是学一个条件生成模型 $\pi_\theta(A_t \mid O_t)$,把动作序列当成「图像」来去噪。训练时把演示动作 $A^0_t$ 加噪成 $A^k_t$(DDPM 前向过程,论文 Eq.3 loss = $\text{MSE}(\epsilon^k, \epsilon_\theta(O_t, A^0_t+\epsilon^k, k))$),模型学一个 $\epsilon_\theta$ 预测加的噪声;推理时从纯高斯噪声 $A^K_t \sim \mathcal{N}(0,I)$ 开始,按论文 Eq.4 迭代去噪得到动作 chunk:
$$A^{k-1}_t = \alpha\big(A^k_t - \gamma\,\epsilon_\theta(O_t, A^k_t, k) + \mathcal{N}(0, \sigma^2 I)\big)$$
扩散模型本身是生成式模型,天然能表达多模态分布——左转和右转在去噪轨迹里是两条不同的吸引子,不会互相平均。这是「为什么 MSE 处理不了」的直接解药。关键的 visual conditioning(Sec.2.3):观测 $O_t$ 只作为 conditioning、不参与去噪过程输出——视觉 encoder 只算一次(不论多少去噪步),大幅降低推理成本、让端到端视觉 encoder 训练可行。论文用 DDIM(Sec.3.4)把训练 100 步去耦到推理 16 步(仿真任务训练/推理一致用 100 步 iDDPM,真机任务 DDIM 减到 16 步,Tab.7 D-Iters Train=100 / Eval=16),单 NVIDIA 3080 上推理延迟约 0.1 秒。
创新二:action chunking + receding-horizon(论文 Sec.2.3,三个 horizon 精确值见 Table 1)。 每次推理不预测单步动作,而是预测未来 $T_p$ 步、只执行前 $T_a$ 步、观测过去 $T_o$ 步:
- 观测 horizon $T_o = 2$(视觉任务,Block Push 用 3)——论文消融(Fig.14)发现视觉 DP 对 $T_o$ 敏感,$T_o=2$ 是最佳折中,>1 即可,太长反而降性能。
- 预测 horizon $T_p = 16$(Block Push 12)——扩散在 16 维序列上去噪。
- 执行 horizon $T_a = 8$(Block Push 用 1)—— receding-horizon 每执行 8 步后重新规划。论文消融(Fig.5 左)确认 $T_a=8$ 是最佳,太短(=1)动作 jittery、太长反应慢。
这同时带来两个好处:(a) 缓解协变量偏移——一条长度 $T$ 的任务,原本要做 $T$ 次决策、误差雪球 $T$ 次,现在只做 $T/T_a$ 次决策,[Ross 2011] 的 $O(\epsilon T^2)$ bound 被开方;(b) 在序列层面做去噪,扩散能学到「这段动作是连贯的抓取轨迹」而不是「下一步往哪走」的细粒度噪声。论文 Sec.4.2 还有一个反直觉发现:位置控制(position control)大幅优于速度控制——这与之前 BC 文献主流(vel control)相反,原因是位置控制的多模态性更强、且 compounding error 更小,DP 能利用这一点而 MSE-based BC 不能。
为什么两个必须一起用:单独用 diffusion 学单步动作,仍受协变量偏移折磨;单独用 chunking + MSE 回归(后来的 naive chunked BC),还是被多模态分布打回原形。Diffusion Policy 的真正贡献是让 chunk 这个高维对象变得可生成——用 MSE 回归 16 步动作会塌缩成一个平均序列,而 diffusion 能在序列空间里采样出多个 mode。
💡 核心洞察:Diffusion Policy 的双重创新必须连用——扩散管多模态、chunking 管协变量偏移;单独使用都会被另一个病打回原形,两者合起来才把朴素 BC 的两条病根同时拔掉,这是整个谱系的真正起点。
网络架构(Sec.3.1):论文给了两种 backbone:
- (i) 1D temporal CNN(U-Net 式,论文 Fig.2b)——采用 Janner et al. 2022b 的 1D temporal CNN,3 处改造:(1) 用 FiLM(Feature-wise Linear Modulation, Perez 2018) 把观测特征 $O_t$ 和去噪步 $k$ 在每个卷积层 channel-wise 注入;(2) 只预测动作轨迹(不拼观测);(3) 移除 inpainting 式 goal conditioning(与 receding horizon 不兼容)。#D-Params:单臂任务(Lift/Can/Square/Push-T)= 22M,双臂 Transport(4 相机)= 45M(Table 1,待核:与 P-DiffusionPolicy-2023.md 未单独列出,仅 Table 1 引用);社区官方实现
diffusion_policy默认down_dims=[256, 512, 1024](U-Net 下采样通道)。 - (ii) Time-series Diffusion Transformer(Sec.3.1, Fig.2c)——基于 minGPT 架构,noisy action 作为 decoder input token、sinusoidal 步数 $k$ embedding prepend 为首 token、观测 $O_t$ 经 shared MLP 转 embedding 在 cross-attention 注入;action token 之间用 causal attention mask(只能 attend 自己和之前的 action embedding)。Transformer 在 state-based、高频动作变化的任务上更强,但对超参更敏感。
- 论文推荐(Sec.3.1 末):新任务首选 CNN 版本(out-of-the-box、几乎不需调参),若因任务复杂或高频动作变化性能不够,再换 Transformer 牺牲调参便利换性能。
- 视觉 encoder(Sec.3.2):ResNet-18(无预训练),2 处改造——(1) 用 spatial softmax pooling 替换 global average pooling 保空间信息;(2) 用 GroupNorm 替换 BatchNorm(与 DDPM 的 EMA 不兼容)。不同相机视角用独立 encoder,每帧独立编码再拼接。
- Noise schedule(Sec.3.3):iDDPM 的 Square Cosine Schedule 实测最佳(控制高低频特性的平衡)。
主流社区默认采用 CNN 版本,这也是后续 DP3/RDT 等改架构的起点。详见 P-DiffusionPolicy-2023.md。
转折 2:ACT / ALOHA(2023.04)——平行解
[Zhao, Kumar, Levine, Finn 2023] 走了完全另一条路解决同样两个问题:
- 协变量偏移:同样的 action chunking(一次预测 100 步动作),同样的「有效 horizon 缩短」机制。
- temporal ensemble:ACT 多了一个 trick——每次推理新 chunk 时,把多个重叠 chunk 在重叠步的预测做指数加权平均,进一步平滑误差。这是 ACT 比 naive chunked BC 更鲁棒的关键细节。
ALOHA 硬件范式:这篇论文一半篇幅是讲它的低成本双臂遥操平台——两个 leader 臂 + 两个 follower 臂,leader 臂没有电机只有编码器,人操作 leader,follower 同步跟随,直接记录关节空间动作。把双臂 teleop 成本从百万美元级(传统 leader-follower 工业臂)压到两万美元级,让精细双臂数据采集变成社区可复现的事。这是 ACT 这篇论文最大的产业影响——后续 Mobile ALOHA、HumanPlus、甚至 π0 的数据采集都沿用 ALOHA 范式。
💡 核心洞察:ACT 与 Diffusion Policy 是一对「教科书级平行收敛」——CVAE latent(推理快、表达弱)与迭代去噪(推理慢、表达强)是表示多模态动作的两种根本 trade-off,2023 年这两条路同时被走通,构成了后来所有 action head 设计的二选一地基。
转折 3:推理加速——把 50 步压到 1 步
Diffusion Policy 推理要 50–100 步去噪,在 10–20 Hz 控制频率上勉强够用,但灵巧操作(30 Hz+)根本跟不上。三条加速路线:
- Consistency Policy [Prasad 2024, arxiv:2405.07503]:用 consistency distillation,把训练好的 diffusion policy(teacher)蒸馏成一个 student,让 student 在任意噪声水平 $k$ 上都映射到去噪轨迹的同一个「固定点」。推理时 student 一步就能跳到近似最终结果,性能保持但速度快 1–2 个数量级,实时性接近 ACT。ManiCM [Lu 2024, arxiv:2406.01586] 把同一思想用到 3D 点云 DP 上。
- Crossway Diffusion [Li 2023, arxiv:2307.01849]:换个思路——不是减步数,而是让去噪潜空间同时重建观测,做自监督辅助损失「十字交叉」监督。它不直接加速,但让表征更紧、收敛更快、最终性能更高,间接降低同等性能下需要的去噪步数。
- FlowPolicy [Zhang 2024, arxiv:2412.04987]:换底层生成模型——从 DDPM 式迭代去噪换成 flow matching。flow matching 学一个把噪声 $a_0$ 连续传输到动作 $a_1$ 的向量场 $v_\theta$,推理时解一个 ODE $\mathrm{d}a/\mathrm{d}t = v_\theta(a_t, t, o)$。相比 diffusion,flow matching 的轨迹是近似直线,ODE 用少数几步 Euler 就能解,天然更快且训练更稳。这是 diffusion action head 被 flow matching 取代的拐点。
转折 4:3D 泛化支线——DP3 与 iDP3
Diffusion Policy 用 2D RGB 图像,泛化到新相机视角、新物体姿态就掉点。
- DP3 [Ze 2024, arxiv:2403.03954]:把 RGB 换成稀疏点云。关键是它发现不需要复杂的 3D backbone——一个超简单的 MLP + pooling 点云编码器(不是 PointNet++ 也不是 Transformer)配 diffusion policy,在 72 个任务上比 2D Diffusion Policy 平均提升 24.2%,且只要 10 条示教就行。直觉解释:3D 点云把「物体的几何位置」直接以欧式坐标喂给模型,模型不用从 2D 像素隐式学透视投影;只要几何对了,少量示教就能泛化到新视角/新物体姿态。
- iDP3 [Ze 2024, arxiv:2410.10803]:把 DP3 迁移到 Fourier GR1 人形,做了两个工程化改进:① 去掉对外部相机标定的依赖,直接在相机坐标系(camera frame)做 3D 表示——点云进网络前不做世界坐标系变换,头部 RealSense L515 LiDAR 跟着人形头/腰动;② 去掉点云分割(不像 DP3 要先分割出物体点云),直接喂场景级稠密点云(DP3 的 FPS 稀疏采样换成 voxel + uniform 级联)。这让人形上半身抓放任务无需相机标定、无需点云分割就能泛化。配套用 Apple Vision Pro 做数据采集(人戴 AVP,head/hands/wrists 位姿实时映射到 25-DoF 上半身),是 2024 年人形 IL 的工程典范。
转折 5:大规模化——RDT-1B 与 CogACT
到 2024 年底,diffusion action head 开始往基础模型走。
- RDT-1B [Liu 2024, arxiv:2410.07864](清华 TSAIL):把 diffusion 做到 1.2B 参数,用 MMDiT(Multimodal Diffusion Transformer)架构在 1M+ 多机器人轨迹上预训练,一次预测 64 步动作 chunk,开源权重(待核:1.2B / 1M+ / 64 步等数字未在站内深笔记中独立校核)。是目前最大的纯 diffusion 操作基础模型。意义:证明 diffusion action head 能从「单任务 policy」scale 到「跨本体基础模型」。
- CogACT [Li 2024, arxiv:2411.19650](MSR):换思路——不要把动作当语言 token(像 RT-2 那样离散化),而是认知(视觉/语言)与动作解耦。视觉/语言走标准 VLM,动作模块独立设计成 diffusion action head。在 OpenVLA 上注入 diffusion action head 后大幅超越离散 token 动作,是 VLA 架构「认知-动作解耦」的标志性工作。
转折 6:π0——VLA 吸收 IL 思想
[Black et al. 2024, arxiv:2410.24164](Physical Intelligence)是这条线索的合流点。π0 的本质是把 Diffusion Policy 的动作生成思想塞进 VLA:
- 基座是 PaliGemma 3B VLM,提供语言+视觉理解。
- 动作输出不用离散 token(RT-2 路线),而是用 flow matching action head 生成连续动作 chunk($H=50$ 步)。
- flow matching 训练目标:构造线性插值路径 $z_t = (1-t)x + t a$($x$ 是噪声,$a$ 是真值动作),学向量场 $v_\theta$ 去拟合目标 $u_t = a - x$(即 $\dot z_t = a - x$,从噪声指向真值动作)。推理时从 $t=0$(噪声)积分到 $t=1$(动作),用 10 步 Euler ODE(步长 $\delta=0.1$)求解。
- action expert 是一组独立参数,通过 shared attention(KV cache)和 PaliGemma 交互——语言/视觉 token 只算一次前向,动作去噪在 KV cache 上反复迭代。
为什么是 flow matching 而不是 diffusion:flow matching 更稳、更快、训练更容易 scale(直线 ODE 比 S 形去噪轨迹更友好)。π0 之后,flow matching 成为 VLA 动作生成的事实标准(π0.5、GR00T、Helix 都跟)。
💡 核心洞察:π0 把 IL 思想正式吸收进 VLA——「连续动作生成 + action expert」取代 RT-2 式「256 bin 离散 token」成为新骨架,flow matching 凭「路径直、训练稳、天然多模态」三项优势成为事实标准,Diffusion Policy 谱系的故事至此合流于 VLA。
2026 最新进展
2026 上半年 diffusion/flow policy 沿「实时化 / 次优数据 / 多帧坐标系 / 历史动作作起点」四条轴线深化——把 2023–24 留下的「推理慢、对数据质量敏感、单一坐标系僵硬、必须从噪声开始」四个痛点逐一下降:
- Reflex 把 flow-matching VLA 拉回实时(× T06/T10):Reflex [Guo & Liu, arxiv:2607.14695](THU)发现 perception encoders 在不同去噪步上函数近似不变(「时间步不变性」),据此为 flow-matching VLA 启用 streaming inference + KV-cache——实时控制率下仍保持精确连续控制。正面解决 flow-matching VLA 的根本痛点(迭代去噪 + 全局时间步注入使 KV-cache 失效,被迫 $O(N^2)$ 重算或错误缓存复用),把实时性还给 flow-matching 系 VLA,是部署侧关键一击,回应第六节列出的「推理延迟 vs 灵巧频率」最尖锐开放问题。
- Ambient Diffusion Policy:从次优数据安全学习:Ambient Diffusion Policy [Wei et al., arxiv:2606.12365](MIT Tedrake 组)用 noise-dependent data usage 让次优数据只在高/低 diffusion time 起作用;理论上证明机器人动作数据呈谱功率律,使最优 diffusion policy 具有 global-to-local hierarchy 和 locality;在 Open X-Embodiment 等混合数据上比 co-training 基线提升 33%。首次把扩散模型理论与机器人数据光谱特性结合,给出从次优/异质数据中安全学习的原则性框架——对利用 Open X-Embodiment 类异质大数据集意义重大。
- MoF:多帧同步去噪打破单一坐标系:Mixture of Frames Policy [Wang et al., arxiv:2607.11884](Stanford,Bohg 组)一个 diffusion policy 在多个坐标系(末端、base 等)下同步做动作去噪,并维持单一 canonical 动作表征,由 learned router 在每时刻选择最简洁表达的帧——专为双臂移动操作这种天然多坐标系的场景设计。打破现有 diffusion policy 锁定单一动作坐标系、使某些任务在该帧下变得复杂的僵局。
- A2A Flow Matching:挑战「必须从噪声开始」的前提:A2A Flow Matching [Jia et al., arxiv:2602.07322](HKUST Yang 组)以历史 proprioceptive action 序列编码为高维 latent 作为 flow matching 起点,替代标准 diffusion policy 的随机高斯噪声初始化;单步推理即可生成高质量动作,并把方法推广到视频生成。在原理上挑战 diffusion/flow policy 必须从随机噪声开始的前提,用历史动作做 informed initialization 大幅降低推理步数与延迟——为 action generation 的实时性与时间连续性提供新范式。
📌 关键要点
- 朴素 BC 有两个数学上回避不掉的缺陷:协变量偏移导致 $O(\epsilon T^2)$ 累积误差、MSE 回归会把多模态动作平均成「什么也不做」的无效动作
- DAgger 给出协变量偏移的第一个理论补丁,但要持续专家在线纠正,工程上不可规模化——这正是 action chunking 重要的根本原因
- Diffusion Policy 的双重创新(扩散建模多模态 + action chunking)必须一起用:单独用扩散仍受协变量偏移折磨,单独用 chunking + MSE 会被多模态打回原形
- ACT 是平行解:用 CVAE latent 隐式建模多模态(推理快、表达弱),ALOHA 同时把双臂 teleop 成本从百万级压到两万级,是产业级影响
- π0 把 flow matching action head 塞进 VLA,IL 思想正式被 VLA 吸收;flow matching 凭「路径直、训练稳、天然多模态」成为动作生成事实标准
四、相似概念辨析
| 概念 A | 概念 B | 区别 | 何时用哪个 |
|---|---|---|---|
| 多模态动作分布(multimodal action) | 多模态输入(multimodal input: V+L) | 一个指 $p(a\mid o)$ 有多个 mode;一个指输入有多个模态。完全不同的两个概念,共用英文 multimodal | 动作分布建模用前者;VLA 输入侧用后者 |
| action chunking(ACT / DP) | autoregressive(GPT 式) | chunking 一次并行预测 N 步,N 步之间无因果关系;autoregressive 逐步生成、步之间有因果。两种序列建模哲学 | 已知要预测固定长度序列用 chunking(动作);开放长度生成用 autoregressive(语言) |
| diffusion action head(π0 / RDT) | discrete action token(RT-2 / OpenVLA) | 前者在连续动作空间用 flow/diffusion 采样,天然多模态;后者把动作离散化成 token 像「一种新语言」生成。连续头表达力强但推理慢;离散头能复用 LLM 训练管线但量化损失大 | 灵巧操作、高精度用连续头;想最大化复用 VLM、任务偏语义用离散头 |
| DAgger(在线纠正) | action chunking(开环 chunk) | DAgger 在策略自己诱导的分布上重新查询专家,治本但要专家在线;chunking 不查询专家,靠缩短有效 horizon 近似缓解 | 能请到专家在线用 DAgger;只能离线数据用 chunking |
| Diffusion Policy(DDPM 去噪) | FlowPolicy / π0(flow matching) | DDPM 学噪声预测、S 形去噪轨迹、要几十步;flow matching 学向量场、直线 ODE、几步就够 | 新工作默认 flow matching;老 baseline 对比用 diffusion |
五、与其他线索的交叉点
- 与 T07(人形 teleop 栈):iDP3 / ALOHA / Apple Vision Pro 采集是这条线索的「数据入口」。teleop 提供数据,diffusion policy 消费数据——两者强耦合。
- 与 T06(VLA 五段论):π0 是这条线索的「终点」——diffusion/flow action head 被 VLA 吸收。CogACT / OpenVLA-OFT 是 IL 思想反向流入离散 token VLA 的代表。
- 与 T08(动作生成):diffusion 在动作空间去噪的数学,和动作生成(MDM / PhysDiff)是同一套。机器人操作的 action chunk = 短动作片段;动作生成长序列 = 长 chunk。两条线在 BeyondMimic / ReinDiffuse 合流。
- 与 T03(reward design):IL 这条线本质上是「绕开 reward 设计」。但 ReinFlow [2025] 用 online RL 微调 flow matching policy,标志 IL 和 RL 开始混合——IL 给冷启动,RL 给自我改进。
六、当前局限与开放问题
- 推理延迟 vs 灵巧控制频率的矛盾。diffusion 50 步、flow 10 步都还是太慢,灵巧手 30 Hz+ 闭环吃力。Consistency Policy / OneDP 把它压到 1 步,但 1 步学生有性能损失。真正实时、零损失的 diffusion action head 仍未出现。
- 长程任务的单 chunk 局限。Diffusion Policy chunk 长度 $N=16$,π0 是 $H=50$,都远不够家居级几十分钟任务。当前解法是分层 VLA——π0.5 让 VLM 当高层语义预测器,底层 flow policy 执行。但高层/底层接口(语言?latent?关节?)怎么设计是开放问题。
- 协变量偏移真的被解决了吗? action chunking 只是缩短有效 horizon、推迟协变量偏移的发生,不是消除。一旦 chunk 滚动累积的误差把策略推出训练分布,仍会崩。最近的 [Block 2025, arxiv:2507.09061](待核:未在
papers.jsonl中收录)给出了 chunking 防止 compounding error 的首个理论 bound,但前提是 chunk 内开环执行稳定——这本身就是假设。真正治本还是要 DAgger 式在线纠正,但工程上没人愿意做。 - 离散 vs 连续 action 表征的 trade-off 还没收敛。RT-2 / OpenVLA 押离散 token,π0 / RDT 押连续 flow,CogACT 干脆把两者解耦让用户选。哪条路会胜出仍不清楚——可能取决于 VLM backbone 的演化。
- 3D 表征的代价。DP3 / iDP3 证明点云大幅提升泛化,但点云采集(深度相机)比 RGB 贵、噪声大、室外失效。2D RGB + 大规模预训练(π0 路线)vs 3D 点云 + 小数据(DP3 路线)是两条平行赛道。
💡 核心洞察:chunking 只是「推迟」而非「消除」协变量偏移——真正治本仍需 DAgger 式在线纠正,但工程上没人愿意做;这是 IL 路线藏得最深的结构性开放问题,也是「数据闭环」方向必须直面的一道门。
七、涉及里程碑论文
- [Ross, Gordon, Bagnell 2011, arxiv:1011.0686] DAgger —— 协变量偏移的理论补丁,第一道。
- [Chi et al. 2023, arxiv:2303.04137] Diffusion Policy —— 双重创新(diffusion + chunking),本线索起点。详见 P-DiffusionPolicy-2023.md。
- [Zhao et al. 2023, arxiv:2304.13705] ACT / ALOHA —— 平行解(CVAE + chunking),另一半起点。详见 P-ACT-ALOHA-2023.md。
- [Ze et al. 2024, arxiv:2403.03954] DP3 —— 3D 点云支线起点。
- [Ze et al. 2024, arxiv:2410.10803] iDP3 —— 人形 + AVP 采集。
- [Prasad et al. 2024, arxiv:2405.07503] Consistency Policy —— 一致性蒸馏加速。
- [Zhang et al. 2024, arxiv:2412.04987] FlowPolicy —— flow matching 取代 diffusion 的拐点。
- [Liu et al. 2024, arxiv:2410.07864] RDT-1B —— diffusion action head scale 到 1.2B。
- [Li et al. 2024, arxiv:2411.19650] CogACT —— 认知-动作解耦。
- [Black et al. 2024, arxiv:2410.24164] π0 —— VLA 吸收 flow matching action head,本线索合流点。
八、参考文献与延伸阅读
- 本仓库内论文笔记:P-DiffusionPolicy-2023.md、P-ACT-ALOHA-2023.md、P-DP3-2024.md、P-iDP3-2024.md、P-pi0-2024.md
- 相关线索:T06 VLA 五段演进(VLA 五段论)、T07 人形 Teleop 栈(人形 teleop)、T08 动作生成(动作生成)
- 原始调研笔记:
research/data/raw/imitation_notes.md - 外部综述:[Zhang et al. 2025, arxiv:2504.08438] 扩散操作综述;[Xiao et al. 2025, arxiv:2507.01925] 从 action tokenization 视角的 VLA 综述
- 实现参考:HuggingFace LeRobot 的 ACT / Diffusion Policy 实现是最易上手的复现入口
可选复盘:常见误区
澄清:"多模态动作"就是"多模态输入(视觉加语言)" —— 混淆。前者指同一情境有多个都对的动作(左转、右转);后者指输入有多种感官。共用同一个英文词,是两回事。
"多模态动作"就是"多模态输入(视觉加语言)" —— 混淆。前者指同一情境有多个都对的动作(左转、右转);后者指输入有多种感官。共用同一个英文词,是两回事。
这条线谈的是动作分布的多模态。
澄清:"动作分块单独用就行" —— 错。分块配朴素回归,多模态那关过不了:一段十几步序列会被回归塌缩成均值。分块必须配多模态生成 。
"动作分块单独用就行" —— 错。分块配朴素回归,多模态那关过不了:一段十几步序列会被回归塌缩成均值。分块必须配多模态生成 📎。
分块和多模态生成是"必须搭在一起"的组合,不是单选。
澄清:"扩散太慢已经被淘汰" —— 过头。原始扩散几十步确实慢,但被流匹配(几步)和一致性蒸馏(一步)大幅加速;而且它被视觉语言大模型吸收当动作生成头,活得很好 。
"扩散太慢已经被淘汰" —— 过头。原始扩散几十步确实慢,但被流匹配(几步)和一致性蒸馏(一步)大幅加速;而且它被视觉语言大模型吸收当动作生成头,活得很好 📎。
扩散的"思想"赢了,只是底层生成模型换成了流匹配。
可选复盘:检查点
用"岔路两条都到家"或"合唱团"类比,向没学过机器人的朋友解释:为什么朴素回归处理不了"左转右转都对"这种情境?
查看参考答案
- 核心:朴素回归(最小化误差)会把多个正确答案平均成一个中间值;左转和右转一平均,变成一个'什么也不做'的无效动作。
- 类比锚(岔路):两条都到家的路,朴素办法把它们平均成一条穿墙的废路。
- 类比锚(合唱团):每人发一个音再平均成一个怪声,而不是一次唱一整段和声。
- 结论:多模态动作分布需要'采样'出多个模式,而不是回归一个均值。
级联误差是怎么来的?为什么训练时没问题、部署时才滚雪球?
查看参考答案
- 来源:训练时策略只见过人类走过的状态分布;部署时一旦走出稍微偏离的一步,就掉进训练集没见过的状态。
- 为什么训练时没事:训练数据全是人类轨迹上的状态,策略在这些状态上表现好。
- 为什么部署时滚雪球:一步偏离 → 落到没见过的状态 → 策略在那儿表现差 → 更偏离 → 误差像滚雪球越滚越大。
"动作分块"和"多模态生成"为什么必须搭在一起用?单用各会卡在哪一关?
查看参考答案
- 单用动作分块、还是朴素回归:多模态那关过不了——一段十几步的动作序列会被回归塌缩成一个'平均序列'。
- 单用多模态生成、不分块:级联误差那关过不了。
- 必须搭在一起:真正的贡献是让'一整段动作序列'这个高维对象变得可生成;分块提供序列对象,多模态生成让它不塌缩。
同一年的两个团队,分别用什么招式解决多模态?两招的代价各是什么?
查看参考答案
- 条件扩散:把动作序列当图像一样从纯噪声一步步去噪出来;左转右转是两条不同的吸引子,不会互相平均。代价:推理要几十步去噪,慢。
- 条件编码器:塞一个低维风格变量,推理时随机抽一个模式;代价:单次前向更快,但表达力弱些。
- 共同点:两边都不约而同塞进了'动作分块',顺带把级联误差也缓解了。
这条线最后被什么吸收了?"流匹配"相对原始扩散,赢在哪?
查看参考答案
- 被什么吸收:被视觉语言大模型吸收,当它的'动作生成器'(动作生成头)。
- 流匹配赢在哪:用几步直线积分,取代原始扩散的几十步去噪;更稳、更快、训练更容易放大。
- 结论:扩散的'思想'(在高维动作空间采样多模态分布)赢了,只是底层生成模型从扩散换成了流匹配。