技术拆解(十七)具身智能:机器人动作生成为何走向Diffusion Policy? 📅 2026/8/17 21:48:09 前言读研的时候研究的是增量学习这也是梁文峰近期说的通往AGI之路让机器可以自主学习。在不了解NLP领域前CV领域模型的泛化能力很弱增量学习的灾难性遗忘很严重。所以很好奇大模型是怎么做到强泛化能力的这也是学习的动力。后面才了解到原来是大力出奇迹但这并不是真正的增量学习。简单的说增量学习的定义是模型在复杂的环境中像人一样持续学习学习新知识更新权重的同时不会丢弃旧知识。但是人在实际环境中对记忆也不是一直都保持也会遗忘例如你上周三中午吃了什么可能大多数人都不记得了。对于大模型来说模型参数没变对所有知识都会牢牢掌握但当参数更新后会对旧知识造成灾难性的遗忘。从根本上来说人脑的学习记忆和现在基于反向传播学习出来的模型范式可能不会相同但可以互相借鉴。没想到之前学的VAE也在Diffusion中应用了看来只要学知识就是有用的迟早会用上的。总结大模型已经解决了知识获取和泛化的一部分问题但仍没有解决如何在真实环境中持续学习、选择性遗忘并稳定地把新经验写回自身。目录一、Diffusion Policy的提出背景与模型定位1.1 为什么普通动作回归容易产生“平均动作”1.2 ACT解决了动作分块但仍然是一次解码1.3 Diffusion Policy是什么1.4 Diffusion Policy不是图像扩散1.5 模型定位二、数据组织与动作表示2.1 一条示范Episode是什么2.2 单步观察 ot 和观察窗口 Ot2.3 单步动作 at 和动作块 At2.4 预测长度与执行长度不是同一个概念2.5 一条训练样本和一个训练批次2.6 Diffusion Policy输出连续动作不是动作Token三、模型结构与条件融合3.1 Diffusion Policy整体结构3.2 观察编码器负责什么3.3 为什么图像只需要编码一次3.4 噪声预测网络输入和输出什么3.5 CNN版本的Diffusion Policy3.6 Transformer版本的Diffusion Policy【Decoder结构】3.7 扩散模型中的 Transformer 架构四、Diffusion Policy的训练过程4.1 必须区分两种“时间”4.2 训练时从数据中取出什么4.3 给真实动作块加噪4.4 加噪会不会让真实机器人随机乱动4.5 网络训练时输入输出是什么4.6 训练损失是什么4.7 为什么预测噪声能够学会动作4.8 完整训练流程五、推理与滚动时域控制5.1 推理时为什么从随机噪声开始5.2 为什么不能像ACT一样直接把噪声设为05.3 多轮去噪过程5.4 为什么去噪需要多次网络前向5.5 为什么预测16步却只执行8步5.6 Receding Horizon Control是什么5.7 Receding Horizon Control不等于Temporal Ensembling5.8 Diffusion Policy是不是世界模型5.9 Diffusion Policy与ACT的定义区别六、Diffusion Policy的能力与意义6.1 表达多模态动作分布6.2 保持时间动作一致性和适合高维连续动作6.3 对人类示范中的停顿更加鲁棒6.4 适合复杂接触和操作任务七、核心贡献、局限与技术演进7.1 Diffusion Policy的核心贡献7.2 Diffusion Policy的主要局限7.3 ACT、Diffusion Policy与π0对比7.4 三者的技术关系7.5 Diffusion Policy完整训练流程7.6 Diffusion Policy完整推理流程7.7 Diffusion Policy需要重点记住的十点7.8 具身智能VLA的动作生成范式选择哲学思考一、Diffusion Policy的提出背景与模型定位1.1 为什么普通动作回归容易产生“平均动作”传统行为克隆通常直接学习从当前观察到当前动作的映射其中ot表示机器人在时刻t的观察at表示专家在该时刻执行的动作。训练时通常使用L1或MSE损失让模型输出接近专家动作。这种方法隐含了一个假设对于一个观察状态存在一个相对明确的正确动作。但机器人操作中经常存在“一种状态对应多种合理动作”的情况。例如机械臂需要绕过一个障碍物时既可以从左侧绕行也可以从右侧绕行普通回归模型可能将两种动作进行平均结果既不明显向左也不明显向右反而可能直接撞向障碍物。Diffusion Policy正是针对机器人动作中的多模态分布、高维输出、时序相关性和高精度要求提出的。1.2 ACT解决了动作分块但仍然是一次解码ACT已经把传统单步动作预测改成了动作块预测ACT通过CVAE潜变量建模示范风格再由Transformer一次前向直接输出完整动作块。它解决了长任务中的误差累积、停顿处理和双臂动作协调问题但其核心仍然是观察条件→一次网络前向→动作块Diffusion Policy保留了“预测动作序列”的思路但将动作块的生成方式改成了条件扩散过程观察条件随机动作噪声→多轮去噪→连续动作块因此Diffusion Policy相较于ACT最关键的变化不是“是否使用动作块”而是从直接解码动作块→从噪声中生成动作块1.3 Diffusion Policy是什么Diffusion Policy由Cheng Chi等人于2023年提出。它将机器人视觉运动策略表示为一个条件去噪扩散模型在给定视觉和机器人状态条件的情况下从随机噪声开始经过多轮去噪生成未来连续动作序列。Diffusion Policy不是简单预测一个确定动作而是学习在当前观察条件下哪些未来动作序列是合理的。1.4 Diffusion Policy不是图像扩散普通图像扩散模型执行随机图像噪声→清晰图像Diffusion Policy执行随机动作噪声→连续动作序列图像只是动作生成的条件不参与被扩散和还原的过程。原论文明确将输出变量从图像替换为机器人动作并将扩散过程条件化在机器人观察上。因此Diffusion Policy扩散的是动作不是图像1.5 模型定位Diffusion Policy可以概括为条件扩散模型连续动作块生成滚动时域控制它主要是一种视觉—动作或状态—动作生成策略。原始Diffusion Policy因此它不是VLA也不是显式世界模型而是一种生成式机器人动作策略。二、数据组织与动作表示2.1 一条示范Episode是什么一条完整机器人示范Episode可以表示为机器人观察通常可以进一步写成与ACT中的ALOHA不同Diffusion Policy适用于多种机器人和任务因此不能统一认为D14。论文评估覆盖了2DoF至6DoF动作空间以及单任务、多任务和不同机器人平台。2.2 单步观察 ot 和观察窗口 OtDiffusion Policy通常不只使用当前一步观察而是使用最近To步观察其中ToObservation Horizon观察窗口长度需要区分如果To2那么最近多个观察能够帮助模型判断运动趋势。例如单张图像只能显示夹爪位于物体左侧而两步观察还可以判断夹爪正在靠近物体还是正在远离物体。2.3 单步动作 at 和动作块 At从完整专家轨迹中在时刻t截取未来Tp步动作其中动作块的形状为未来动作数量×每个动作的维度2.4 预测长度与执行长度不是同一个概念Diffusion Policy还定义模型预测未来Tp步动作但机器人只执行前Ta步通常满足原论文将To、Tp和Ta分别定义为观察长度、动作预测长度和动作执行长度并通过这种设计在轨迹连续性与环境响应能力之间取得平衡。官方Push-T图像配置中采用了一个典型配置示例不是所有任务固定使用的参数。2.5 一条训练样本和一个训练批次一条训练样本可以写成如果批次大小为B64,未来动作Tp16,动作维度D7动作标签张量为代表64条训练样本×每条16个未来动作×每个动作7维2.6 Diffusion Policy输出连续动作不是动作TokenDiffusion Policy最终生成它不需要像RT-1或RT-2那样连续动作→离散量化→动作Token→反量化。扩散网络内部会将动作、观察和扩散时间转换成连续隐藏特征但这些特征Token只是神经网络中的浮点向量不是离散动作词表。三、模型结构与条件融合3.1 Diffusion Policy整体结构Diffusion Policy的完整结构可以概括为观察编码器图像→ResNet18机器人状态→MLP噪声网络Conditional 1D U-Net或Time-Series Diffusion Transformer扩散调度器调度器根据网络预测的噪声计算下一步动作流程可以概括为3.2 观察编码器负责什么观察窗口可能同时包含图像和低维机器人状态视觉图像先经过视觉编码器例如ResNet机器人状态通过线性层或MLP编码然后组合成观察条件其中ct用于描述目标物体和障碍物的位置机器人当前姿态最近几个时间步的运动趋势当前场景中与动作生成有关的信息。原始视觉版Diffusion Policy使用经过修改的ResNet-18并将全局平均池化替换为空间Softmax以保留空间信息同时将BatchNorm替换为GroupNorm以提高训练稳定性。不同摄像头使用独立编码器各时间步图像分别编码后再组合。3.3 为什么图像只需要编码一次一次动作生成要经过多轮去噪。如果每次去噪都重新编码图像计算成本会很高。因此系统先计算一次在整个去噪过程中复用同一个观察条件重复更新动作块而不是观察图像。论文将视觉观察作为动作扩散的条件而不是将观察和动作一起扩散这样既不需要生成未来状态也可以明显降低推理成本。注例T_o2的图像编码本质上是将多帧图像在通道维度上“堆叠”形成一个更高维度的输入然后由统一的编码器提取融合了时序信息的视觉特征。视觉编码器在整个推理过程中只需执行一次后续的扩散去噪过程都基于这个固定的特征进行从而提升了推理效率。3.4 噪声预测网络输入和输出什么噪声预测网络接收网络输出预测噪声模型根据该预测将Atk更新为噪声更少的Atk−1反复迭代后才得到最终动作。需要注意噪声预测网络此时输出的不是机器人最终执行动作而是当前动作块中噪声或修正方向的估计。3.5 CNN版本的Diffusion PolicyCNN版本使用一维时序卷积网络处理动作块一维卷积沿未来动作的时间维度滑动联合建模相邻时间动作之间的关系。观察条件和扩散时间步通过FiLM等方式调制卷积层特征。CNN版本的特点是结构稳定通常较容易训练对新任务所需超参数调整较少偏向生成平滑、低频的动作变化。原论文建议在新任务中优先尝试CNN版本当任务复杂或动作变化非常快速时再考虑Transformer版本。3.6 Transformer版本的Diffusion Policy【Decoder结构】Transformer版本将整个带噪动作块作为一段时序数据处理。假设一个带噪动作块为动作块中的每一个带噪动作向量对应一个连续Action Token。Transformer结合完整动作序列、观察条件ct和扩散时间步k一次预测与动作块同形状的噪声块可以理解为对应关系为例如一个k时刻包含16个未来动作的带噪动作块经过Time-Series Diffusion Transformer后输出一个k时刻对应的噪声预测块Transformer版本能够更灵活地建模动作块内的长距离关系并减弱时序CNN可能产生的过度平滑但通常对模型规模、学习率和其他超参数更加敏感。因此Diffusion Policy不是一种固定网络结构更准确地说Diffusion Policy条件动作扩散方法CNN或Transformer噪声预测网络3.7 扩散模型中的 Transformer 架构Diffusion 在机器人动作预测与图像生成中的区别不在于必须使用 Transformer Encoder 或 Decoder而在于数据结构及其注意力关系。具体采用哪种架构和 Mask属于模型设计选择并非由扩散方法决定。①Transformer Diffusion Policy【动作快使用因果自注意力】原始 Diffusion Policy 采用以 Transformer Decoder 为核心的条件去噪网络带噪动作块通过因果自注意力建模每个动作位置只能读取自身及之前的带噪动作观测信息通过交叉注意力输入动作网络。因果 Mask 在这里是一种时间序列归纳偏置但并不是扩散策略的必要条件。②π₀等 Diffusion/Flow Policy【动作快使用全双向注意力】π₀使用 Flow Matching 生成动作块并采用全双向注意力动作块中的所有位置可以相互读取整个动作块被同时、联合建模有利于形成连续、协调的动作轨迹。因此Diffusion/Flow Policy 的动作块既可以采用因果注意力也可以采用双向注意力。③图像扩散中的 Transformer【图像使用全双向注意力】在 Pixel-space Diffusion、LDM和 Stable Diffusion 等图像生成方法中去噪网络可以使用 U-Net也可以使用 DiT。采用 DiT 时通常使用 Encoder-style Transformer图像被划分为多个 Patch Token各个 Patch 之间采用双向注意力每个位置都能读取整幅图像的其他位置以建模全局空间关系。总结原始 Transformer Diffusion PolicyDecoder 结构动作块采用因果注意力。π₀等 Diffusion/Flow Policy动作块可以采用全双向注意力。Transformer 图像扩散模型通常采用 Encoder-style DiT和双向注意力。Encoder、Decoder及注意力 Mask 都是针对数据结构的设计选择并非扩散方法的固定要求。四、Diffusion Policy的训练过程4.1 必须区分两种“时间”Diffusion Policy中同时存在两种时间变量。第一种是真实机器人控制时间它表示机器人在真实Episode中的时间位置。第二种是扩散时间它表示动作块目前被加入了多少噪声。例如表示该动作块处于第50级噪声状态。扩散时间k只是一次网络生成过程内部的变量并不代表机器人在真实环境中又运动了一步。4.2 训练时从数据中取出什么从离线专家示范数据中采样为了与扩散符号统一将干净专家动作块记为其中它是人类或专家真正执行过的未来动作序列。4.3 给真实动作块加噪训练时随机采样高斯噪声其形状与动作块一致再随机采样一个扩散步骤然后构造带噪动作块其中当k较小时动作仍然比较接近专家轨迹。当k较大时动作逐渐接近随机高斯噪声。4.4 加噪会不会让真实机器人随机乱动答案是不会。加噪发生在离线训练数据中的数字动作张量上专家动作文件→软件中加入高斯噪声机器人在训练扩散模型时不需要真的执行带噪动作。也就是说训练过程是离线动作数据→人工构造带噪样本→神经网络学习去噪而不是让真实机器人随机运动观察是否成功。Diffusion Policy仍然属于基于示范的离线模仿学习框架。论文的训练和评估均采用行为克隆设定。4.5 网络训练时输入输出是什么①网络输入为或者先编码观察后写成含义分别是目前被污染的动作块当前机器人观察条件当前噪声程度。②网络输出模型认为动作块中被加入的噪声。4.6 训练损失是什么真实加入的噪声是网络预测的是因此训练损失为也可以写成原论文采用噪声预测损失来学习条件动作分布的Score或梯度场。训练目标不是让网络直接输出At0动作快而是让它学会当前带噪动作中哪一部分是噪声以及应该朝哪个方向修正。4.7 为什么预测噪声能够学会动作假设当前带噪动作位于动作分布中的某个位置。噪声预测模型近似提供一个方向该方向指向在当前观察条件下概率更高的动作区域。因此多次修正可以理解为这也是Diffusion Policy能够表示多个动作模式的重要原因。它不是只记住一个平均动作点而是学习整个动作概率分布的结构。4.8 完整训练流程Diffusion Policy的训练过程可以压缩为一句话理解给模型一段被噪声污染的专家动作同时告诉它当前观察和噪声程度让它学习预测噪声来还原合理动作。五、推理与滚动时域控制5.1 推理时为什么从随机噪声开始推理阶段只有当前观察没有未来真实专家动作因此系统首先采样随机动作噪声其形状为表示为先初始化一个未来Tp步的随机动作块然后逐渐把它修正成可执行动作。5.2 为什么不能像ACT一样直接把噪声设为0ACT中的潜变量z是一个低维动作风格条件。即使令z0,Policy仍然可以根据图像和机器人状态直接解码动作块。而Diffusion Policy中的z,即不是附加风格变量而是最终动作块的初始版本需要一步步去噪得到本身因此二者作用不同5.3 多轮去噪过程推理时模型不断预测噪声并更新动作每一步都调用一个简化更新可以表示为最终得到也就是原论文将该过程描述为从高斯噪声出发经过多轮随机Langevin Dynamics或DDPM反向过程生成动作序列。5.4 为什么去噪需要多次网络前向普通回归策略只需要一次网络前向Diffusion Policy需要多次调用预测噪声网络它以更多计算成本换取更强的多模态分布表示更高维的动作序列建模更稳定的训练更连贯的动作生成。原论文还使用DDIM减少推理去噪次数。在实机实验中采用100步训练扩散过程和10步推理过程在NVIDIA 3080 GPU上实现约0.1秒推理延迟。5.5 为什么预测16步却只执行8步假设模型生成但实际只执行后面的不一定真正执行。预测较长动作的作用是让模型能够看到更完整的未来轨迹使前半段动作具有方向和连续性只执行前一部分则可以避免机器人长期依赖旧观察。可以理解为预测长度较长→轨迹更连贯执行长度较短→反馈更加及时5.6 Receding Horizon Control是什么执行前Ta步后机器人获得新的观察窗口然后重新采样噪声并生成新的动作块完整循环为这就是Receding Horizon Control通常翻译为滚动时域控制滚动预测控制滚动重规划。Diffusion Policy通过动作序列预测和滚动时域控制兼顾长期动作一致性和对新观察的响应能力。5.7 Receding Horizon Control不等于Temporal Ensembling①ACT的Temporal Ensembling是不同时间生成的重叠动作块→对同一执行时刻的多个预测加权平均②Diffusion Policy的Receding Horizon Control是生成未来Tp步→执行前Ta步→丢弃剩余部分→根据新观察重新生成所以二者都使用动作块但闭环执行方法不同疑问每次执行的Ta的步下一次执行刚好和这一次顺接上吗回答是的时间上绝对完美顺接不会出现断裂或重叠。举例如下5.8 Diffusion Policy是不是世界模型不是世界模型Diffusion Policy学习策略根据观察状态生成未来动作世界模型通常学习根据观察状态和动作生成未来状态Diffusion Policy只学习当前观察下什么动作序列比较合理。论文明确选择只扩散动作而不联合生成未来观察以提高实时性和动作预测精度。5.9 Diffusion Policy与ACT的定义区别Diffusion Policy结构类似于Pixel-space Diffusion像素空间扩散ACT则不是Latent Diffusion潜在空间扩散而是基于CVAE的动作块生成策略其潜变量z用于表示动作风格推理时取先验均值 z0并由Policy一次前向生成动作块。而LDM推理需要一直对潜在变量z减噪六、Diffusion Policy的能力与意义6.1 表达多模态动作分布假设在当前状态下存在两条合理轨迹直接回归可能产生而Diffusion Policy可以学习两个不同的高概率区域。不同初始噪声可能收敛到不同模式这并不意味着每次更换噪声一定生成完全不同动作而是意味着模型有能力表示多个合理解。论文在Push-T任务中展示了策略能够学习左右两种绕行方式并在一次完整Rollout中保持其中一种模式。6.2 保持时间动作一致性和适合高维连续动作如果每一个未来动作都独立采样机器人会在两种合理轨迹之间反复摇摆。Diffusion Policy联合生成整个动作块At动作块中的多个时间步会共同收敛到一条一致轨迹因此更容易避免动作抖动和模式切换。论文将Temporal Action Consistency列为动作序列预测的重要优势。此外动作块整体是一个高维变量即使每个动作维度不高乘上多个未来时间步后整体输出维度也会明显增加。扩散模型原本就擅长在高维空间中生成复杂样本因此适合联合生成多时间步、多关节连续动作。论文将高维输出空间作为Diffusion Policy的核心优势之一。6.3 对人类示范中的停顿更加鲁棒遥操作数据中常出现停顿或者速度动作接近0。单步策略容易把停顿误认为当前状态下最安全的动作部署时可能卡住。Diffusion Policy生成完整动作序列能够同时看到移动→短暂停顿→继续移动因而更容易把停顿理解为轨迹中的一个局部阶段而不是任务终点。论文指出动作序列预测提高了策略对Idle Actions的鲁棒性。6.4 适合复杂接触和操作任务Diffusion Policy在仿真和真实机器人任务中评估了精确推动、杯子翻转、酱料倾倒和涂抹等操作并在12个任务、4个机器人操作基准上取得相对于已有方法平均46.9%的成功率提升。这些任务包含多种可行轨迹高维连续动作接触和摩擦周期性动作长时间连续控制。因此Diffusion Policy的价值不只是“把扩散模型用到机器人”而是证明生成式动作分布能够有效改善复杂机器人模仿学习。七、核心贡献、局限与技术演进7.1 Diffusion Policy的核心贡献第一将机器人策略表示为条件去噪扩散过程而不是单点动作回归。第二将未来动作块作为一个整体高维变量生成提高时间一致性和连续性。第三通过随机初始化和迭代去噪表达多模态动作分布。第四将视觉观察作为固定条件只对动作进行扩散避免生成未来状态带来的额外计算。第五将动作序列预测与Receding Horizon Control结合实现闭环滚动执行。第六提出CNN和Time-Series Transformer两类动作噪声预测网络并针对实际机器人控制优化推理过程。7.2 Diffusion Policy的主要局限第一推理需要多次运行噪声预测网络一次动作生成多次神经网络前向因此延迟和计算成本高于普通回归或ACT。第二扩散步数、观察长度、预测长度和执行长度都需要根据任务调节。第三模型仍然依赖专家示范进入训练数据没有覆盖的状态后可能失败。第四原始Diffusion Policy通常针对单任务或有限多任务训练没有互联网VLM提供的开放语义知识。第五模型不显式预测环境未来因此不具备完整世界模型或长期规划能力。第六随机采样可以表达多种动作模式但也可能带来输出变化安全关键场景仍需底层约束和稳定控制。7.3 ACT、Diffusion Policy与π0对比对比项ACTDiffusion Policyπ0模型定位动作分块模仿学习策略生成式动作策略通用VLA机器人基础策略主要输入图像、关节状态、z观察窗口、带噪动作、扩散步图像、语言、机器人状态、带噪动作动作输出连续动作块连续动作块连续动作块生成方式CVAETransformer一次解码多轮扩散去噪Flow Matching Action Expert随机变量低维风格变量z与动作块同形状的初始噪声与动作块相关的Flow噪声推理次数一次前向多次去噪前向多次Flow积分闭环方式Temporal EnsemblingReceding Horizon Control动作块滚动执行语言能力原始版本通常没有原始版本通常没有使用预训练VLM世界模型否否否跨机器人预训练通常没有通常没有重点能力π0建立在预训练VLM之上并使用Action Expert和Flow Matching生成连续动作块目标是形成跨任务、跨机器人本体的通用机器人策略。7.4 三者的技术关系三者不能简单理解为完全替代关系①ACT重点回答如何一次预测一段连续动作并减少动作抖动②Diffusion Policy重点回答如何生成包含多种合理模式的连续动作分布③π0进一步回答如何将互联网视觉语言知识、跨机器人数据和连续生成式动作策略组合成通用机器人基础模型7.5 Diffusion Policy完整训练流程7.6 Diffusion Policy完整推理流程7.7 Diffusion Policy需要重点记住的十点① Diffusion Policy不是直接回归单个动作而是从随机噪声中生成未来动作块。② 小写ot是单步观察大写Ot是最近多个时间步组成的观察窗口。③ 小写at是单步动作大写At是未来连续动作块④ Diffusion Policy输出连续浮点动作不使用离散动作Token也没有动作词表。⑤ 训练时只对离线专家动作数据加噪不会让真实机器人随机乱动。⑥ 噪声预测网络输出的是噪声或修正方向不是最终执行动作。⑦ 真实机器人时间t表示机器人实际控制过程扩散时间k表示神经网络内部的噪声等级二者完全不同。⑧ 推理时从与动作块同形状的随机噪声开始多轮去噪后得到未来连续动作序列。⑨ 模型预测Tp步但只执行前Ta步然后根据新观察重新生成这就是Receding Horizon Control。⑩ ACT使用重叠动作块和Temporal EnsemblingDiffusion Policy使用扩散动作生成和滚动重规划π0则在VLM旁加入Flow Matching Action Expert形成更通用的连续动作VLA策略。7.8 具身智能VLA的动作生成范式选择扩散模型是当前构建通用、高性能VLA模型的首选和主流技术而ACT则在需要应对高频、长时序精细操作的特定场景下凭借其独特的“动作分块”思路扮演着不可或缺的补充角色。同时将两者融合也正成为前沿趋势。哲学思考“机器人真正学会的不是一个动作而是一组可能。”——当观察窗口、随机动作噪声、连续动作块和多轮去噪被放进同一条控制链路机械臂便不再把左绕与右绕平均成一次撞墙Tp负责看得更远Ta负责只走眼前几步Receding Horizon Control再用新观察不断修正方向。Diffusion Policy表面上是在用扩散生成动作本质上是在把“唯一正确答案”改写为“多种合理轨迹”在滚动时域中将选择权持续交给最新的观察。ACT解决动作如何成块π0把语言与跨机器人知识接进策略而真正改变具身智能边界的不是模型能输出多少动作而是它能否在噪声、反馈与变化中保留选择。结尾语如果本文对您有帮助请点赞鼓励一下这对我真的很重要。您的每一次鼓励都是我继续创作的动力谢谢啦下次见。