解释了ACT政策:使用机器人学习的变压器进行行动
对于2026年深入研究与变革器的行动:建筑,CVAE培训,超参数指导,与扩散政策的比较,推断基准以及如何使用RCSV数据培训ACT.
部分: [模仿学习指南]
通过Tony Zhao和斯坦福大学的合作者发表后, ACT
什么是"行为"?
ACT是一个模仿学习算法,用于细粒度的操纵任务,机器人必须根据视觉观测进行流
ACT是在ALOHA双手操作系统的背景下引入的,并且在以前被认为无法模仿学习的任务中取得成功:
行动缩的作用
标准行为克隆 (BC) 训练一个政策预测下一个单一的行动,鉴于当前的观察.在推断时,预测错误积累:每一个小错误稍微改变机器人状态,将其放在一个没有训练的分布,导致下一个预测变得更糟,等等. 在200步操作轨迹上,即使每步错误率1%的化合物也会使得200步的示范分布偏差的可能性达到87%
动作分断通过预测一个连续的 k 未来的行动
暂时组装
在实践中,ACT在重新查询之前不会执行全部的部分.相反,它重新查询每m步骤 (m < k),产生重叠的行动块.对于每一个未来的时间步骤,多个块提供预测,这些预测均有指数分解的权重 (最近的块权重更高). 这种时间组合进一步使执行顺利,
组装权重表使用指数式衰变:在一个T步前生成的部分的预测中,重量为
为什么不只是增加块大小? 较大的块意味着减少决策点,但对环境变化 (物体移动,障碍出现) 的反应能力也较小.最佳的块大小平衡了平滑度与反应能力.对于大多数桌面操纵,k=50
建筑:完整的图片
ACT使用CVAE (条件变化自动编码器) 架构,具有变体脊椎.了解该架构需要了解三个组件:CVAE编码器 (仅进行训练),变体解码器 (训练和推断),视觉脊椎.
编码器 (仅为训练)
在训练过程中,编码器处理整个示范轨迹
编码器是一个变压器,它在整个行动序列 (部分中的所有 k 基实实行动) 和当前观察中进行处理.它输出了一个参数的平均和日志变化,从中采样z通过重复参数化技巧.KL分离损失术语 (按beta权重,通常是10
在推断时,z设置为零 (前者的平均值),使得观测的政策决定性.这是一个故意的设计选择:在部署时,你需要一致的,可预测的行为,而不是从学习的风格分布中随机采样. 模特通常在演示风格中平均,产生运动,这些运动是所有方法的中途径 (因此没有一种方法).
变压器解码器 (训练+推理)
解码器采用三个输入:隐藏的z (或推理时零),当前的观察标记 (从视觉脊柱 + 亲感),和一组k可学习的位置查询 (每个操作在部分中一个).解码器使用标准的变压器交叉注意:位置查询关注观察标记和z,并行产生k行动预测.
从最初的实施中获取的建筑细节:
- 变压器层: 4个编码层, 7个解码层 (故意不对称
解码器更深,因为它更有效) - 隐藏的尺寸:** 512
- 注意力: 8
- 前进尺寸: 2048
- 总参数: ~40M (不包括视觉脊柱)
视力脊柱
视觉背骨通常是ResNet-18独立处理每个摄像头视图.每个摄像头图像 (480×640RGB) 都通过ResNet进行处理,产生一个特征地图 (15×20×512),该图片每摄像头均被平板化成300个代币.
几部摄像头视图
培训法: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 = 10
超参数指导
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 |
** 零件尺寸是最重要的超值参数.** 如果你只调整一个东西,调整零件尺寸.一个太大的零件尺寸会让机器人"承诺"执行已经过时的计划.一个太小的零件尺寸会失去流
行动与传播政策:详细比较
在最初的ALOHA任务中,ACT在相同数据上取得了80
| 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也是更好的选择,在这种情况下,扩散政策的反复告示变得非常缓慢.
**使用什么时候使用
推理速度基准
我们将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 |
实时操纵控制的关键门
数据要求以及构成良好数据的内容
ACT在大多数公布的结果中每项任务进行50
按任务复杂性进行可行的最低数据集
- 简单的选择和地点 (一个对象,固定位置): 20
30个演示.ACT可靠地学习这一点,使用最小的数据. - 随机物体位置: 50
80个演示.需要覆盖工作空间. - **多步骤操作 (挑选,运输,精确地放置):**100
150个演示. - 双手协调 (两臂,依赖运动): 150
250个演示. - **接触丰富的组件 (插入,螺丝,
断):**200 400个演示.强力敏感阶段需要密集的覆盖.
质量要求
演示应该是顺利的和有目的的. ACT 政策将学习数据中的运动模式,包括犹
- 长时间停顿 (>0.5秒没有动作) 让动作混
政策学会预测"什么都不要"的部分. - **一致的速度:**运营商应以一致的速度执行.在同一数据集中混合快速和慢的示范,使CVAE浪费隐藏能力建模速度变化而不是与任务相关的变化.
- 清洁的开始/结束: 每个节目都应该从类似的中性姿势开始,并以最终配置的抓住器来结束.
- 仅成功: 删除所有失败的示范. 与一些可以从失败中学习的RL方法不同,ACT将所有培训数据视为需要模仿的专家示范.
摄像头一致性也是关键的.如果摄像头的放置在录音会议之间发生变化,则所学习的视觉功能将不再与部署设置匹配.使用物理挂 instead of flexible arms, and log the camera calibration parameters with each dataset.RCSV的多摄像头录音管道自动执行这一点.
训练过程 步骤
在RCSV中,我们使用的全程培训程序是:
- **数据收集:**记录使用 [电话操作] (
T5 ) 进行示范,使用领导跟踪器设置. 50 Hz 控制速度, 2 3 摄像头,同步录音. 导出到 LeRobot HDF5 格式. - **数据验证:**运行RCSV数据质量检查器:验证剧集长度不到两倍,没有摄像头框架下降,相结位置在限度范围内,成功标签得到验证.
- ** 分裂:** 90/10 列车/
车分裂,按对象配置分层,如果适用. 进行实机器人评估的50集 (从未在训练中见过). - **训练:**使用LeRobot ACT训练脚本,使用上表的超参数.监测重建损失,KL分离和验证损失.训练通常在2,000
5,000个时代中融合. - **检查点选择:**不要使用最后的检查点.选择验证损失最低的检查点.过度适应是视为训练和验证损失曲线之间的差异,通常在时间 3,000
5,000之后,取决于数据集的大小. - **Sim评价 (如果可用):**使用选择的检查点进行模拟100集. 如果成功率<60%,重调超参数 (第一块大小,然后是beta,然后是学习率).
- **实实验评估:**在实验硬件上运行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 5
10x. - **
碎片界限的 碎执行:** 时间组装温度太低 (混合太 ). 从10升至20 30. - ** 训练损失好,实际性能差:** 摄像头训练和部署之间的不匹配. 检查:图像是否相同的尺寸?摄像头的FOV是否相同?产量区域是否一致?
- ** 工作的第一两个秒钟,然后漂移:** 部分大小与任务动态相比太大. 政策承诺执行结束时过时的计划. 减少部分大小50%.
- ** 跑车间不一致:** 没有足够的示范.在 <30个示范中,ACT的性能对火车/
车分断非常敏感.收集更多数据. - **KL分离崩
到零:**Beta太低.编码器将所有信息编码为z,并学习忽略观察.增加beta直到KL稳定在0.5 5.0.
法律变体和扩展
自起ACT最初的论文,出现了几项扩展:
- ACT+ (LeRobot): 增加了自觉感应历史 (最后2
5个关联状态) 给观察,从而改善了速度估计,而没有明确的速度计算. - ACT与
散 (ACT-DP): 通过散动作头来取代CVAE,同时保持碎片预测结构. 结合ACT的顺 性与 散政策的多模式处理. 训练速度比50%慢,但处理多模式示范更好. - ACT with Language (ACT-L): 将语言嵌入 (从Clip或T5) 添加到观察代币中,使语言条件任务规范成为可能.
- 移动ALOHA ACT: 扩展ACT以共同控制移动基地 (2D速度) 和两个臂 (2 x 7-DOF),为总16DOF的行动空间. 部分大小通常降至20
30用于移动组件,以保持对障碍的反应性.
通过RCSV数据培训ACT
根据RCSV的数据平台,RCSV将数据集出口到LeRobot兼容的HDF5格式,这是开源ACT训练代码的标准输入格式.下载数据集后,训练一个基线ACT政策需要至少16GBVRAM的GPU和大约8小时的训练. 支持团队配置训练运行,调整部分规模和学习率,并评估政策绩效.
对于没有GPU基础设施的团队,RCSV提供了管理训练运行在A100硬件上:您提供数据集,我们返回了一个训练有素的检查点,并提供评估指标.转换时间通常为24
对于硬件收集您自己的数据,请参阅我们的 [硬件目录]
相关阅读
相关: LeRobot指南 · 移动ALOHA设置 · 模仿学习中的常见错误 · 跨体训练 · 开始远程手术 · 机器人词典







