跳转至

ACT模型

ACT(Action Chunking with Transformers)是具身智能里一个非常有代表性的模型:它不是最大、最新的 foundation model,但它把 action chunking 这条路线做成了清晰范式,因此在理解后续 VLA 动作头、生成式策略和低成本双臂操作时都很关键。

这篇笔记关注的不是“ACT 在模仿学习里出现过”,而是把它当成一个模型级里程碑来看:它解决了什么问题、为什么在 2023 年重要、它和 Diffusion Policy / OpenVLA / pi0 之间是什么关系。

相关笔记:模型发展路线图 | 模仿学习 | VLA模型 | 开源模型汇总 | 遥操作与数据收集


1. ACT 是什么,为什么值得单独看

ACT 的一句话定义是:

给定当前观测,不是只预测一步动作,而是一次预测未来一个短动作块,再通过时间集成平滑执行。

形式上,它把经典行为克隆中的

\[ \pi(o_t) \rightarrow a_t \]

改写成

\[ \pi(o_t, s_t) \rightarrow \hat{\mathbf{a}}_{t:t+H-1} \]

其中:

  • \(o_t\) 是视觉观测
  • \(s_t\) 是机器人本体状态
  • \(H\) 是 chunk horizon
  • 输出是未来 \(H\) 步动作,而不是单步动作

它值得单独看的原因有三个:

  1. 历史位置特殊:它是从经典模仿学习走向 chunk-based policy 的关键桥梁。
  2. 工程意义很强:少量示教、低成本硬件、双臂精细操作这些关键词,让它至今仍有复现价值。
  3. 影响后续模型设计:很多后来的 VLA、tokenized action、快速推理工作都延续了“动作块而不是单步动作”的思路。

2. 问题背景

ACT 出现时,要解决的是一类很具体、但很难的问题:

  • 精细双臂操作:例如开半透明杯盖、插电池、整理绳线、对准插槽
  • 少量示教:目标不是几十万 episode,而是几十条高质量演示
  • 低成本硬件:依托 ALOHA 这样的低成本双臂遥操作系统
  • 高频控制与时间一致性:逐步输出动作容易抖动,尤其在接触和协调操作中

传统单步 BC 的主要问题是:

问题 表现
单步回归抖动 每一步都独立预测,动作序列容易不平滑
多模态动作 同一观测下可能有多种合理操作路径,MSE 容易平均掉
长时序误差累积 每一步小误差都会在后续放大
双臂协调难 两只手之间需要时间上连续、空间上同步

ACT 给出的回答是:

  • CVAE 处理多模态性
  • action chunking 预测短时未来动作块
  • temporal ensembling 融合重叠预测,减少抖动

3. 核心思想

3.1 Action Chunking

不再直接预测单步动作 \(a_t\),而是预测一个短时序动作块:

\[ \hat{\mathbf{a}}_{t:t+H-1} = \left(\hat{a}_t, \hat{a}_{t+1}, \ldots, \hat{a}_{t+H-1}\right) \]

这样做有三个直接好处:

  1. 模型显式学习短期时间结构
  2. 推理调用次数减少
  3. 动作在时间维上更连贯

3.2 Temporal Ensembling

模型会在连续多个时刻反复预测未来 chunk,因此某个时间步 \(t\) 的执行动作,通常对应多个 chunk 的重叠预测。ACT 用指数衰减加权平均来融合它们:

\[ a_t^{\text{exec}} = \frac{\sum_i w_i \hat{a}_t^{(i)}}{\sum_i w_i}, \quad w_i = \exp(-m \Delta t_i) \]

越新的预测权重越高,越旧的预测权重越低。

3.3 CVAE Latent

ACT 不是只做确定性回归,而是引入潜变量 \(z\) 来表示“这次动作风格/模式”:

\[ z \sim q_\phi(z \mid o_t, s_t, \mathbf{a}_{t:t+H-1}) \]

在训练时,编码器看到观测和真实未来动作,学习把动作风格压缩到 latent 里;在推理时,不再依赖真实未来动作,而是使用固定先验来生成一个稳定的 chunk 输出。


4. 模型结构

4.1 总体结构

graph LR
    subgraph Inputs["输入"]
        IMG[多视角图像] --> ENC
        STATE[机器人状态] --> ENC
    end

    subgraph TrainEncoder["训练时的 CVAE 编码器"]
        GT[未来动作块] --> LAT
        ENC --> LAT
        LAT[推断 q(z|obs, actions)] --> Z[z]
    end

    subgraph Decoder["Transformer 解码器"]
        ENC[视觉+状态编码] --> TF[Transformer]
        Z --> TF
        TF --> CHUNK[预测动作块]
    end

    style Inputs fill:#e3f2fd
    style TrainEncoder fill:#fff3e0
    style Decoder fill:#e8f5e9

4.2 输入与输出

ACT 的典型输入包括:

  • 多视角 RGB 图像
  • 机械臂关节状态 / 末端状态
  • 夹爪状态

输出则是:

  • 未来 \(H\) 步的动作块
  • 通常是双臂关节或末端控制命令

4.3 编码器和解码器分工

组件 作用
视觉编码器 提取多视角图像特征
状态编码 提取本体感觉信息
CVAE 编码器 训练时根据真实未来动作推断 latent 风格变量
Transformer 解码器 在观测和 latent 条件下输出未来动作块

5. 数学表达与训练目标

5.1 Chunk Prediction

ACT 学的是条件分布:

\[ p_\theta(\mathbf{a}_{t:t+H-1} \mid o_t, s_t, z) \]

而不是单步的:

\[ p_\theta(a_t \mid o_t) \]

5.2 Reconstruction Loss

解码器输出的 chunk 要尽量接近真实未来动作块:

\[ \mathcal{L}_{\text{recon}} = \sum_{j=0}^{H-1} \left\| \hat{a}_{t+j} - a^*_{t+j} \right\|_2^2 \]

5.3 KL Regularization

CVAE 需要让 posterior 不要偏离标准正态 prior 太远:

\[ \mathcal{L}_{\text{KL}} = D_{\text{KL}}\left(q_\phi(z \mid o_t, s_t, \mathbf{a}^*) \,\|\, \mathcal{N}(0, I)\right) \]

5.4 总损失

ACT 的训练目标通常写为:

\[ \mathcal{L}_{\text{ACT}} = \mathcal{L}_{\text{recon}} + \beta \mathcal{L}_{\text{KL}} \]

其中 \(\beta\) 控制多模态潜变量约束的强度。


6. 推理过程

ACT 的训练和推理并不完全对称,这是它容易被误解的地方。

graph TD
    T1[训练] --> T2[观测 + 真实未来动作]
    T2 --> T3[CVAE 编码器推断 z]
    T3 --> T4[Transformer 输出 chunk]
    T4 --> T5[计算重建损失 + KL]

    I1[推理] --> I2[只有当前观测]
    I2 --> I3[不再使用真实未来动作]
    I3 --> I4[使用 prior / 固定 latent]
    I4 --> I5[Transformer 输出 chunk]
    I5 --> I6[Temporal ensembling 平滑执行]

    style T1 fill:#fff3e0
    style I1 fill:#e8f5e9

6.1 为什么推理时常写成 z = 0

因为训练时 KL 项把 posterior 拉向标准正态先验,推理时可直接用先验均值作为稳定默认值:

\[ z_{\text{test}} = 0 \]

这意味着模型在部署时选择一种“默认动作风格”,减少随机采样带来的不稳定。

6.2 为什么还要 Temporal Ensembling

即使一次预测了一个 chunk,接触任务里仍可能因为视觉噪声、状态偏差或相机遮挡而出现不稳定。重叠 chunk 的加权融合能显著改善:

  • 抖动
  • 双臂不同步
  • 末端在接触边缘的细小震荡

7. 为什么 ACT 当时重要

7.1 它证明了“少量高质量示教 + 合适结构”可以做成精细操作

ACT 最让人印象深刻的不是参数量,而是它在 ALOHA 上用大约 50 条示教就完成了一批精细双臂任务,成功率相当高。

7.2 它让 chunk-based policy 成为清晰路线

ACT 之后,很多研究者不再把“逐步出动作”视为唯一默认选择。后续工作越来越自然地接受:

  • 一次预测未来多个动作
  • 让时间窗口成为显式设计维度
  • 把动作表示做成 chunk / token / diffusion trajectory

7.3 它和 ALOHA 一起构成了“低成本具身研究套件”

ACT 的影响力还来自它不是孤立论文,而是和 ALOHA 硬件、遥操作采集和复现代码一起形成了完整闭环。对很多研究者来说,它是第一套“真的能在实验室里复现”的双臂精细操作系统。


8. ACT 的局限

ACT 很重要,但也必须看清它的边界:

局限 说明
任务范围偏窄 更适合桌面、短时程、操作性强的任务
泛化边界有限 不属于 web-scale 预训练的 foundation model
数据分布敏感 相机布局、动作定义、遥操作习惯变化都会影响效果
语义能力较弱 不像 VLA 那样天然继承强语言和常识能力
频率与时序仍需工程调参 chunk 长度、重规划频率、衰减权重都很重要

9. 与邻近方法的关系

9.1 ACT vs BC

  • BC:通常单步回归动作
  • ACT:预测动作块,并通过 latent 建模多模态性

9.2 ACT vs Diffusion Policy

  • ACT:CVAE + Transformer,推理通常更轻
  • Diffusion Policy:生成分布能力更强,复杂接触任务更有优势,但推理更慢

9.3 ACT vs BeT / Tokenized Actions

  • ACT:chunk 是连续动作序列
  • BeT / action tokenizers:更强调把动作压成 token,便于 Transformer 统一处理

9.4 ACT vs VLA / OpenVLA / pi0 / FAST

维度 ACT Diffusion Policy OpenVLA pi0
主要定位 精细操作策略模型 生成式操作策略 开源 VLA flow-based VLA
输入模态 图像 + 状态 图像 + 状态 图像 + 语言 + 状态 图像 + 语言 + 状态
输出方式 连续 action chunk 扩散生成动作序列 离散动作 token 连续 chunk / flow
语言能力 很弱 很弱
典型数据规模 数十到数百演示 中等离线示教 近百万 episode 大规模多具身数据
核心价值 建立 chunked policy 范式 强多模态动作建模 社区可复现 VLA 主线 更强连续动作生成与跨具身

这里最重要的关系不是“谁替代谁”,而是:

  • ACT 让大家接受了 chunked action prediction
  • Diffusion Policy 把生成式动作分布做得更强
  • OpenVLA / pi0 把动作建模进一步放进更大的 vision-language-action 统一模型里

10. 工程落地

10.1 数据组织

ACT 很依赖高质量演示,数据通常需要严格对齐:

  • 多相机时间同步
  • 机器人状态与图像帧对齐
  • 双臂动作定义一致
  • 遥操作示教风格尽量稳定

10.2 关键超参数

超参数 作用 调大时的影响 调小时的影响
chunk_size / horizon 预测未来动作长度 更强短期规划,更依赖稳定性 更接近单步控制
beta KL 正则强度 latent 更规整,但可能欠拟合 更灵活,但可能过拟合
batch_size 训练稳定性 梯度更稳,但显存更高 噪声更大
camera_views 视觉覆盖范围 遮挡更少,工程更复杂 信息不足更明显
replan interval 多久重新预测一次 chunk 更稳但算力更高 更省算力但适应更差

10.3 训练资源

ACT 的一个现实优势是训练成本相对可控,尤其和 7B 级 VLA 相比更容易上手。它很适合作为:

  • 小实验室的双臂精细操作起点
  • LeRobot/ALOHA 风格数据管线的第一条基线
  • 判断“数据问题还是模型问题”的工程诊断工具

11. 适用场景与不适用场景

更适合

  • 双臂桌面精细操作
  • 中短时程任务
  • 演示数量不大但质量较高
  • 需要时间一致性、但不想承受扩散推理成本的任务

不太适合

  • 强语言理解和开放词汇指令
  • 跨大量机器人平台直接泛化
  • 很长时程任务的高层规划
  • 高度开放环境中的通用 foundation model 目标

12. 开源生态与复现入口

ACT 之所以今天还值得单独看,一个重要原因是它依然有清晰的开源入口:

  • ALOHA / 官方项目页:低成本双臂遥操作 + ACT
  • 官方代码仓库tonyzhaozh/act
  • LeRobot:把 ACT 当作统一训练框架中的重要基线策略

工程上很常见的一条路径是:

  1. 先用 LeRobot / 仿真数据管线验证流程
  2. 再迁移到真实 ALOHA 风格双臂采集
  3. 最后再决定是否升级到 Diffusion Policy 或更大的 VLA

13. 为什么它重要但又不是终局方案

ACT 的历史价值,主要在于它把“动作块”作为主要建模对象明确立住了;
但它并没有解决 foundation model 时代最核心的几个问题:大规模跨具身预训练、强语言泛化、开放环境长期规划。

所以最准确的定位是:

  • 不是终点
  • 不是过时基线
  • 而是承上启下的桥梁

如果你正在搭知识体系,ACT 应该和下面两类东西一起看:


14. 参考文献

  • Zhao et al., Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware, RSS 2023
  • ACT 官方仓库:https://github.com/tonyzhaozh/act
  • Tony Zhao / ALOHA + ACT 项目页:https://tonyzhaozh.github.io/
  • LeRobot ACT 文档:https://huggingface.co/docs/lerobot/act
  • Chi et al., Diffusion Policy: Visuomotor Policy Learning via Action Diffusion, RSS 2023
  • Kim et al., OpenVLA: An Open-Source Vision-Language-Action Model, 2024
  • Black et al., pi0: A Vision-Language-Action Flow Model for General Robot Control, 2024
  • Physical Intelligence, FAST: Efficient Robot Action Tokenization, 2025

评论 #