返回Blog

解释了ACT政策:使用机器人学习的变压器进行行动

对于2026年深入研究与变革器的行动:建筑,CVAE培训,超参数指导,与扩散政策的比较,推断基准以及如何使用RCSV数据培训ACT.

部分: [模仿学习指南]

通过Tony Zhao和斯坦福大学的合作者发表后, ACT 动作和变形器成为了最广泛采用的模仿学习算法之一.

什么是"行为"?

ACT是一个模仿学习算法,用于细粒度的操纵任务,机器人必须根据视觉观测进行流,协调的运动.在推断时,ACT从机器人的摄像头和当前的联合状态中取出一系列图像,并输出未来的行动,而不是单一下一步的行动. 机器人执行这个部分,然后重新查询下一个部分的政策. 这种预测多步骤的设计是ACT的定义特征,并且是其对简单的行为克隆的大部分优势的来源.

ACT是在ALOHA双手操作系统的背景下引入的,并且在以前被认为无法模仿学习的任务中取得成功:电池,打开门袋,针. 根据其核心见解, 断行动预测减少了组合错误,并使轨迹顺利, 自此已被许多后续算法采用,包括分散政策, pi0,和OpenVLA.

行动缩的作用

标准行为克隆 (BC) 训练一个政策预测下一个单一的行动,鉴于当前的观察.在推断时,预测错误积累:每一个小错误稍微改变机器人状态,将其放在一个没有训练的分布,导致下一个预测变得更糟,等等. 在200步操作轨迹上,即使每步错误率1%的化合物也会使得200步的示范分布偏差的可能性达到87%

动作分断通过预测一个连续的 k 未来的行动 通常50100步骤在 50 Hz,相应于12秒的运动.政策承诺这个计划并执行它之前重新查询.由于该计划是由单个一致的观察产生,轨迹是平稳的和内部一致的. 政策只需要处理每集的"决策点"k,而不是200,从而将合并因子从200降至200/k (例如,为k=50进行4次重复查询).

暂时组装

在实践中,ACT在重新查询之前不会执行全部的部分.相反,它重新查询每m步骤 (m < k),产生重叠的行动块.对于每一个未来的时间步骤,多个块提供预测,这些预测均有指数分解的权重 (最近的块权重更高). 这种时间组合进一步使执行顺利,

组装权重表使用指数式衰变:在一个T步前生成的部分的预测中,重量为T2,温度控制了衰变速度.原始的ACT纸使用温度=10 (在50Hz),这意味着当前部分的预测重量为 ~1.0而20步前生成的部分的预测重量为 ~0.14. 这会使连续预测顺利结合.

为什么不只是增加块大小? 较大的块意味着减少决策点,但对环境变化 (物体移动,障碍出现) 的反应能力也较小.最佳的块大小平衡了平滑度与反应能力.对于大多数桌面操纵,k=50100在50Hz是最好的点.对于需要反应性行为 (捕捉,逃避) 的任务,k=1020更好.

建筑:完整的图片

ACT使用CVAE (条件变化自动编码器) 架构,具有变体脊椎.了解该架构需要了解三个组件:CVAE编码器 (仅进行训练),变体解码器 (训练和推断),视觉脊椎.

编码器 (仅为训练)

在训练过程中,编码器处理整个示范轨迹 图像,联合状态和基础真相操作 ,并产生一个隐藏的样式变量 z (原始实现中的维度32),捕获示范的"样式". 不同的任务演示可以从不同的角度接近对象,使用不同的抓取方向或以不同的速度移动.隐形z捕捉这些变化,使解码器产生多样但有效的行动序列.

编码器是一个变压器,它在整个行动序列 (部分中的所有 k 基实实行动) 和当前观察中进行处理.它输出了一个参数的平均和日志变化,从中采样z通过重复参数化技巧.KL分离损失术语 (按beta权重,通常是10100) 将z调整到标准正常前.

在推断时,z设置为零 (前者的平均值),使得观测的政策决定性.这是一个故意的设计选择:在部署时,你需要一致的,可预测的行为,而不是从学习的风格分布中随机采样. 模特通常在演示风格中平均,产生运动,这些运动是所有方法的中途径 (因此没有一种方法).

变压器解码器 (训练+推理)

解码器采用三个输入:隐藏的z (或推理时零),当前的观察标记 (从视觉脊柱 + 亲感),和一组k可学习的位置查询 (每个操作在部分中一个).解码器使用标准的变压器交叉注意:位置查询关注观察标记和z,并行产生k行动预测.

从最初的实施中获取的建筑细节:

  • 变压器层: 4个编码层, 7个解码层 (故意不对称解码器更深,因为它更有效)
  • 隐藏的尺寸:** 512
  • 注意力: 8
  • 前进尺寸: 2048
  • 总参数: ~40M (不包括视觉脊柱)

视力脊柱

视觉背骨通常是ResNet-18独立处理每个摄像头视图.每个摄像头图像 (480×640RGB) 都通过ResNet进行处理,产生一个特征地图 (15×20×512),该图片每摄像头均被平板化成300个代币.

几部摄像头视图 手腕摄像头加上上上部摄像头 每个都贡献了一个代币流,为政策提供了有关操纵场景的丰富空间信息.最小可行的设置是2部摄像头:一个手腕安装 (用于近距离操纵细节) 和一个上部或第三人 (用于空间环境). 三部摄像头 (1手腕+2个不同角度的第三人) 是RCSV数据收集标准,并且在精密任务上持续超过2部摄像头设置的515%成功率.

培训法:CVAE目标

训练失败有两个组成部分:

# ACT training loss (simplified PyTorch)
def act_loss(model, batch):
    images = batch["images"]           # (B, n_cameras, 3, H, W)
    joint_states = batch["qpos"]       # (B, n_joints)
    actions = batch["actions"]         # (B, chunk_size, action_dim)

    # Encoder: process full trajectory -> latent z
    z_mean, z_logvar = model.encoder(images, joint_states, actions)
    z = reparameterize(z_mean, z_logvar)  # (B, latent_dim)

    # Decoder: predict action chunk from observation + z
    predicted_actions = model.decoder(images, joint_states, z)  # (B, chunk_size, action_dim)

    # Reconstruction loss: L1 on predicted actions
    reconstruction = F.l1_loss(predicted_actions, actions)

    # KL divergence: regularize z toward N(0, I)
    kl_div = -0.5 * torch.mean(
        1 + z_logvar - z_mean.pow(2) - z_logvar.exp()
    )

    # Total loss
    beta = 10.0  # KL weight - tune this carefully
    total_loss = reconstruction + beta * kl_div
    return total_loss, {"recon": reconstruction.item(), "kl": kl_div.item()}

贝塔超参数控制了重建精度和隐藏空间规律之间的平衡.太低 (贝塔 < 1):模型记住示范,但z变得毫无意义,并且随着z=0的推断产生垃圾.太高 (贝塔 > 100):模型完全忽略z,失去处理多模式示范的能力.对于大多数操纵任务,甜点点是beta = 1050 . 健康训练显示KL稳定在0.55.0纳之间.

超参数指导

ACT比大多数深度RL算法具有较少的超参数,但它具有显著的重要性.以下是我们从ACT在RCSV上20多个操纵任务的经验培训中获得的指导:

Hyperparameter Default Range to Search Effect of Increasing When to Increase
Chunk size (k) 100 20–200 Smoother trajectories, less reactive Smooth tasks (wiping, pouring); decrease for reactive tasks
Latent dim (z) 32 16–64 More expressive style capture High demonstration variance (different operators, strategies)
KL weight (beta) 10 1–100 Stronger regularization, less memorization Small datasets (<50 demos) to prevent overfitting
Learning rate 1e-5 5e-6–5e-5 Faster convergence, risk of instability Large datasets (>200 demos); use warmup
Temporal ensemble temp 10 5–50 Slower blending, more inertia Smoother tasks; decrease for faster reactivity
Number of cameras 2 1–4 Richer spatial information, more compute 3D reasoning tasks (stacking, insertion)
Backbone ResNet-18 ResNet-18/34/50 Better visual features, more compute Visually complex scenes (cluttered, varying lighting)
Training epochs 3000 1000–8000 Better fit, risk of overfitting More demos or more complex tasks

** 零件尺寸是最重要的超值参数.** 如果你只调整一个东西,调整零件尺寸.一个太大的零件尺寸会让机器人"承诺"执行已经过时的计划.一个太小的零件尺寸会失去流性的优势. 开始从 k=50 开始一个新的任务,然后调整:如果机器人在零部件边界上是的,增加 k;如果机器人不对环境变化反应,减少 k.

行动与传播政策:详细比较

在最初的ALOHA任务中,ACT在相同数据上取得了8095%的成功率,而标准BC的成功率为2050% .但更有趣的比较是ACT与传播政策 (Chi et al., 2023),其他的主要的模仿学习算法.

Dimension ACT Diffusion Policy Verdict
Inference latency (50Hz control) 2–5ms per chunk 50–200ms per chunk (DDPM); 10–30ms (DDIM) ACT wins by 5–10x
Multi-modality handling CVAE latent (limited) Full diffusion (excellent) Diffusion wins
Data efficiency (<50 demos) Good Moderate ACT slightly better
Data efficiency (>200 demos) Good Excellent Diffusion slightly better
Training time (same data) ~8 hours (A100) ~12 hours (A100) ACT faster
轨迹 smoothness Excellent (temporal ensembling) Very good ACT slightly better
精度 tasks (<1mm tolerance) Good Excellent Diffusion wins
Bimanual coordination Excellent (designed for ALOHA) Good ACT wins
Model size ~40M params ~80M params ACT smaller
Edge deployment (Jetson AGX Orin) ~25 Hz ~5 Hz (DDPM); ~12 Hz (DDIM) ACT much better
Open-source implementations LeRobot, original repo LeRobot, original repo Tie

**使用ACT的时间:**当推断速度重要时 (边缘部署,高控制率),当你有有限的数据 (<100个演示),双手任务,或者你需要最简单的训练管道时.当你部署在Jetson Orin Nano这样的计算限制硬件上时,ACT也是更好的选择,在这种情况下,扩散政策的反复告示变得非常缓慢.

**使用什么时候使用散政策:**当你的演示具有重要的多种模式 (同一任务的多种有效策略),在微米准确性重要的地方,或当你拥有大量数据 (>200个演示)并且可以承担训练和推断计算时. 扩散政策能够代表有效行动的全部分布 (而不是通过CVAE缩小到平均水平),

推理速度基准

我们将ACT推断与机器人部署相关的硬件平台进行比较.所有测量都使用标准ACT架构 (ResNet-18脊柱, 2 摄像头,7 DOF行动空间,零件尺寸50):

Hardware ACT Inference (ms) ACT Throughput (Hz) DP-DDIM Inference (ms) DP-DDIM Throughput (Hz) Notes
NVIDIA A100 (80GB) 1.8 555 12 83 Datacenter training/inference
NVIDIA RTX 4090 2.5 400 15 67 Desktop workstation
NVIDIA RTX 4070 4.2 238 25 40 Budget desktop
Jetson AGX Orin (64GB) 12 83 45 22 Onboard robot compute
Jetson Orin Nano (8GB) 40 25 180 5.5 Min viable edge
Jetson Orin NX (16GB) 22 45 85 12 Mid-range edge
Apple M3 Pro (18GB) 8 125 35 28 Development laptop

实时操纵控制的关键门为20Hz (50ms/推理). ACT在我们测试的每个平台都能达到这一标准,除了最低端的Jetson配置 (Orin Nano仍然管理25Hz). DDIM样本采集的扩散政策满足桌面GPU和AGX Orin的门,但在Orin Nano和NX上则低于这一标准.对于在边缘硬件上部署的团队来说,ACT是明确的选择.

数据要求以及构成良好数据的内容

ACT在大多数公布的结果中每项任务进行50200次示范.然而,数据质量比数量更重要.我们从RCSV收集25,000多次示范中学到的数据质量是以下:

按任务复杂性进行可行的最低数据集

  • 简单的选择和地点 (一个对象,固定位置): 2030个演示.ACT可靠地学习这一点,使用最小的数据.
  • 随机物体位置: 5080个演示.需要覆盖工作空间.
  • **多步骤操作 (挑选,运输,精确地放置):**100150个演示.
  • 双手协调 (两臂,依赖运动): 150250个演示.
  • **接触丰富的组件 (插入,螺丝,断):**200400个演示.强力敏感阶段需要密集的覆盖.

质量要求

演示应该是顺利的和有目的的. ACT 政策将学习数据中的运动模式,包括犹,纠正和低优化的方法.RCSV的 [数据收集标准]T4) 要求操作员重新启动一集,而不是继续在可见的错误后,确保训练数据集只包含有意义的,成功的行为. 具体质量标准:

  • 长时间停顿 (>0.5秒没有动作) 让动作混 政策学会预测"什么都不要"的部分.
  • **一致的速度:**运营商应以一致的速度执行.在同一数据集中混合快速和慢的示范,使CVAE浪费隐藏能力建模速度变化而不是与任务相关的变化.
  • 清洁的开始/结束: 每个节目都应该从类似的中性姿势开始,并以最终配置的抓住器来结束.
  • 仅成功: 删除所有失败的示范. 与一些可以从失败中学习的RL方法不同,ACT将所有培训数据视为需要模仿的专家示范.

摄像头一致性也是关键的.如果摄像头的放置在录音会议之间发生变化,则所学习的视觉功能将不再与部署设置匹配.使用物理挂 instead of flexible arms, and log the camera calibration parameters with each dataset.RCSV的多摄像头录音管道自动执行这一点.

训练过程 步骤

在RCSV中,我们使用的全程培训程序是:

  1. **数据收集:**记录使用 [电话操作] (T5) 进行示范,使用领导跟踪器设置. 50 Hz 控制速度, 23 摄像头,同步录音. 导出到 LeRobot HDF5 格式.
  2. **数据验证:**运行RCSV数据质量检查器:验证剧集长度不到两倍,没有摄像头框架下降,相结位置在限度范围内,成功标签得到验证.
  3. ** 分裂:** 90/10 列车/车分裂,按对象配置分层,如果适用. 进行实机器人评估的50集 (从未在训练中见过).
  4. **训练:**使用LeRobot ACT训练脚本,使用上表的超参数.监测重建损失,KL分离和验证损失.训练通常在2,0005,000个时代中融合.
  5. **检查点选择:**不要使用最后的检查点.选择验证损失最低的检查点.过度适应是视为训练和验证损失曲线之间的差异,通常在时间 3,0005,000之后,取决于数据集的大小.
  6. **Sim评价 (如果可用):**使用选择的检查点进行模拟100集. 如果成功率<60%,重调超参数 (第一块大小,然后是beta,然后是学习率).
  7. **实实验评估:**在实验硬件上运行20集.与模拟评估进行比较.一个差距超过20%表明摄像头校准不匹配或行动空间扩展问题.
# Full ACT training command via LeRobot
python lerobot/scripts/train.py \
  --policy.name=act \
  --dataset.repo_id=svrc/openarm_pick_place \
  --policy.chunk_size=50 \
  --policy.n_obs_steps=1 \
  --policy.dim_model=512 \
  --policy.n_heads=8 \
  --policy.n_encoder_layers=4 \
  --policy.n_decoder_layers=7 \
  --policy.latent_dim=32 \
  --policy.kl_weight=10.0 \
  --training.learning_rate=1e-5 \
  --training.batch_size=8 \
  --training.num_epochs=5000 \
  --training.eval_freq=500 \
  --training.save_freq=1000 \
  --device=cuda \
  --output_dir=outputs/act_openarm_pick_place/

常见的培训失败和修复

  • 政策输出零/常态行动: KL重量 (beta) 过高.模型忽略了观察并输出了平均行动.减小beta 510x.
  • ** 碎片界限的碎执行:** 时间组装温度太低 (混合太). 从10升至2030.
  • ** 训练损失好,实际性能差:** 摄像头训练和部署之间的不匹配. 检查:图像是否相同的尺寸?摄像头的FOV是否相同?产量区域是否一致?
  • ** 工作的第一两个秒钟,然后漂移:** 部分大小与任务动态相比太大. 政策承诺执行结束时过时的计划. 减少部分大小50%.
  • ** 跑车间不一致:** 没有足够的示范.在 <30个示范中,ACT的性能对火车/车分断非常敏感.收集更多数据.
  • **KL分离崩到零:**Beta太低.编码器将所有信息编码为z,并学习忽略观察.增加beta直到KL稳定在0.55.0.

法律变体和扩展

自起ACT最初的论文,出现了几项扩展:

  • ACT+ (LeRobot): 增加了自觉感应历史 (最后25个关联状态) 给观察,从而改善了速度估计,而没有明确的速度计算.
  • ACT与散 (ACT-DP): 通过散动作头来取代CVAE,同时保持碎片预测结构. 结合ACT的顺性与散政策的多模式处理. 训练速度比50%慢,但处理多模式示范更好.
  • ACT with Language (ACT-L): 将语言嵌入 (从Clip或T5) 添加到观察代币中,使语言条件任务规范成为可能.
  • 移动ALOHA ACT: 扩展ACT以共同控制移动基地 (2D速度) 和两个臂 (2 x 7-DOF),为总16DOF的行动空间. 部分大小通常降至2030用于移动组件,以保持对障碍的反应性.

通过RCSV数据培训ACT

根据RCSV的数据平台,RCSV将数据集出口到LeRobot兼容的HDF5格式,这是开源ACT训练代码的标准输入格式.下载数据集后,训练一个基线ACT政策需要至少16GBVRAM的GPU和大约8小时的训练. 支持团队配置训练运行,调整部分规模和学习率,并评估政策绩效.

对于没有GPU基础设施的团队,RCSV提供了管理训练运行在A100硬件上:您提供数据集,我们返回了一个训练有素的检查点,并提供评估指标.转换时间通常为2448小时.成本取决于数据集的大小和搜索的超参数配置数量.

对于硬件收集您自己的数据,请参阅我们的 [硬件目录]T7) 或探索 [机器人租选项]T8). 双臂领导跟随器配置的 [OpenArm]T9 (为完整的数据收集站9000美元) 是ACT数据收集的最经济的设置.

相关阅读

相关: LeRobot指南 · 移动ALOHA设置 · 模仿学习中的常见错误 · 跨体训练 · 开始远程手术 · 机器人词典