以下是对经典模仿学习ACT论文的阅读学习
摘要—精细操作任务,例如穿线扎带或开槽电池,对机器人而言尤为困难,因为这类任务需要高精度、精确的接触力协调以及闭环视觉反馈。通常完成这些任务需要高端机器人、高精度传感器或复杂的校准过程,这不仅成本高昂,而且设置困难。学习能否使低成本且不精确的硬件也能完成这些精细操作?我们提出了一种低成本系统,能够直接从真实演示中进行端到端模仿学习,演示数据通过定制的远程操作界面采集。然而,模仿学习本身也面临挑战,尤其是在高精度领域:策略中的误差会随时间累积,而人类示范可能具有非平稳性。为解决这些问题,我们开发了一种简单却新颖的算法——基于Transformer的动作分块(ACT),用于学习动作序列的生成模型。ACT仅需10分钟的演示数据,即可让机器人在现实世界中完成6项难度较高的任务,例如打开半透明调味品杯和开槽电池,成功率达到80%至90%。
ACTION CHUNKING WITH TRANSFORMERS
现有的模仿学习算法在需要高频控制和闭环反馈的细粒度任务上表现不佳。因此,我们提出了一种名为“基于Transformer的动作分块(ACT)”的新算法,以充分利用ALOHA收集的数据。首先,我们概述了ACT训练的流程,然后深入探讨其中的各项设计选择。
为了训练ACT处理新任务,我们首先使用ALOHA收集人类操作者的示范动作。我们将领航机器人(即人类操作员)的关节位置记录下来,并将其作为动作输入。使用领导者的位置而非跟随者的位置非常重要,因为通过底层PID控制器,施加的力大小隐含地由两者之间的差值决定。观测数据由跟随机器人当前的联合位置以及4个摄像头的图像输入组成。接下来,我们训练ACT来根据当前观测预测未来动作的序列。此处的动作对应于下一步中双臂的目标关节位置。直观地说,ACT 试图根据当前观测,在接下来的时间步中模仿人类操作者的行为。这些目标关节位置随后由Dynamixel电机内部的低级高频PID控制器进行跟踪。在测试时,我们加载能够实现最低验证损失的策略,并将其应用于环境中。主要出现的挑战是累积误差,即先前动作产生的误差导致状态偏离训练分布。
A. 动作分块与时间性集合
为了以与像素到动作策略兼容的方式对抗模仿学习的累积误差(图II),我们旨在缩短高频采集的长期轨迹的有效时间范围。我们受到“动作分块”这一神经科学概念的启发,该概念将单个动作组合成一个整体进行执行,从而提高存储和执行的效率[35]。直观地说,一组动作可能对应着抓取糖果包装纸的某个角落,或把电池插入插槽。在我们的实现中,我们将分块大小固定为k:每经过k步,智能体接收一个观测值,生成接下来的k个动作,并按顺序执行这些动作(图5)。这意味着任务的有效视距减少了k倍。具体而言,策略模型 πθ(a_t:t+k|s_t))) 而不是 πθ(at|st)。分块方法还可用于建模人类演示中的非马尔可夫行为。具体而言,单步策略难以处理时间相关性干扰因素,例如演示过程中出现的中断[61],因为该行为不仅取决于状态,还取决于时间步长。动作分块可以在混杂因素位于分块内时缓解这一问题,同时不会为历史条件策略引入因果混淆问题[12]。
普通的行动分块实现可能效果不佳:每k步突然引入一个新的环境观测,可能导致机器人运动出现抖动。为了提高运动平滑性并避免在执行与观察之间进行离散切换,我们会在每一时刻步长都查询策略。这使得不同的行动分块相互重叠,在某一时刻步长内将有多个预测动作。我们如图5所示,并提出一种时间上的集成方法来组合这些预测结果。我们的时间集成方法对这些预测进行加权平均,采用指数加权方案 wi = exp(−m ∗ i),其中 w0 是最旧动作的权重。引入新观测的速度由参数 m决定,m越小表示引入速度越快。我们注意到,与通常的平滑方法不同——后者会将当前动作与相邻时间步长的动作进行汇总,从而引入偏差——我们对同一时间步长内预测出的动作进行汇总。该方法也无需额外的训练成本,仅需增加推理时间计算。在实践中,我们发现动作分块和时间序列集成对于ACT的成功都至关重要,能够生成精确且平滑的动作。
B. 人类数据建模
另一个挑战是学习来自嘈杂的人类演示。在相同观测条件下,人类可能使用不同的轨迹来完成任务。此外,在精度要求较低的区域,人类的行为也会更具随机性[38]。因此,策略应重点关注那些对精度要求较高的区域。我们通过将动作分块策略训练为生成模型来解决这个问题。具体而言,我们采用条件变分自编码器(CVAE)[55]] 来训练策略,以根据当前观测结果生成动作序列。CVAE由两个部分组成:一个CVAE编码器和一个CVAE解码器,分别位于图4的左右两侧。CVAE编码器仅用于训练CVAE解码器(即策略),在测试时被丢弃。具体而言,CVAE编码器以当前观测值和动作序列作为输入,预测风格变量z分布的均值和方差,该分布参数化为对角高斯分布。为了在实践中加快训练速度,我们省略图像观测,仅对本体感觉观测和动作序列进行条件建模。
为了在实践中加快训练速度,我们省略图像观测,仅对本体感觉观测和动作序列进行建模。CVAE解码器(即策略)同时基于z值和当前观测(图像与关节位置)来预测动作序列。CVAE解码器,即策略,同时基于z和当前观测值(图像与联合位置)来预测动作序列。在测试时,我们将 z 设为先验分布的均值(即零),以确定性地解码。整个模型被训练以最大化演示动作片段的对数似然,即
使用标准的VAE目标函数,该函数包含两个部分:重构损失和一个用于将编码器正则化为高斯先验的项。根据[23],我们用超参数β对第二项进行加权。直观地讲,β越大,z中传递的信息就越少[62]。总体而言,我们认为CVAE目标对于从人类演示中学习精确任务至关重要。
C. 实施ACT
我们使用Transformer实现CVAE的编码器和解码器,因为Transformer既可用于在序列中合成信息,也可用于生成新的序列。CVAE 编码器采用类似 BERT 的 Transformer 编码器实现[13]。编码器的输入包括当前关节位置以及从演示数据集中提取的长度为 k 的目标动作序列,且在序列前添加一个类似 BERT 的学习得到的“[CLS]”标记。这样形成一个长度为 k+2 的输入(图4左)。通过Transformer后,使用与“[CLS]”相对应的特征来预测“风格变量”z的均值和方差,然后将这些作为解码器的输入。CVAE解码器(即策略)以当前观测值和z为输入,预测接下来的k个动作(图4右侧)。通过Transformer后,使用与“[CLS]”相对应的特征来预测“风格变量”z的均值和方差,然后将这些作为解码器的输入。CVAE解码器(即策略)以当前观测值和z为输入,预测接下来的k个动作(图4右侧)。我们使用ResNet图像编码器、Transform编码器和Transform解码器来实现CVAE解码器。直观地,Transformer编码器合成来自不同摄像机视角、关节位置和样式变量的信息,并且Transformer解码器生成连贯的动作序列。观察包括4个RGB图像,每个图像的分辨率为480×640,以及两个机械臂的关节位置(总共7+7=14个DOF)。动作空间是两个机器人的绝对关节位置,一个14维的矢量。动作空间是两个机器人的绝对关节位置,一个14维的矢量。因此,对于动作组块,策略输出给定当前观察的k×14张量。该策略首先使用ResNet18主干[22]对图像进行处理,将480×640×3的RGB图像转换为15×20×512的特征映射。然后,我们沿空间维度展平,以获得300×512的序列。为了保留空间信息,我们在特征序列中加入了一个2D正弦位置嵌入[8]。对所有4个图像重复此操作,得到尺寸为1200×512的特征序列。然后我们添加另外两个特征:当前关节位置和“样式变量”z。它们分别通过线性层从原始维度投影到512。最终Transformer encoder输入1202x512。变换解码器通过交叉注意对编码器输出条件,其中输入序列为固定位置嵌入,维度为k×512,关键字和数值均来自编码器。这给了变换解码器k×512的输出维度,然后用MLP将其向下投影到k×14,对应于接下来k个步骤的预测目标关节位置。我们使用L1损失来进行重建,而不是更常见的L2损失:我们注意到L1损失会导致对动作序列进行更精确的建模。我们还注意到,当使用增量关节位置作为动作而非目标关节位置时,性能有所下降。详细架构图见附录C。
我们对算法1和算法2中的ACT训练与推理过程进行了总结。该模型包含约8000万个参数,每个任务均从零开始训练。在单台11G RTX 2080 Ti GPU上训练耗时约为5小时,而同一设备上的推理时间约为0.01秒。
消融实验
A.Action Chunking and Temporal Ensembling
在V-C小节中,我们观察到ACT显著优于仅预测单步动作的先前方法,并提出动作分块是关键的设计选择。由于k决定了每个“分块”内序列的长度,我们可以通过改变k来分析这一假设。当k=1时,表示没有动作分块;而k=episode_length则对应完全开环控制,即机器人根据第一个观测结果输出整个回合的动作序列。在这些实验中,我们禁用了时间序列集成,仅用于测量分块效果,并为每个k训练了独立的策略。图8(a)展示了4种设置下平均成功率的曲线,对应2个模拟任务,分别使用人工数据或脚本生成的数据,其中蓝色线条代表未采用时间序列集成的ACT方法。我们观察到,性能从 k = 1 时的 1% 显著提升至 k = 100 时的 44%,随着 k 值更高,性能则略有下降。这表明,增加分块大小和降低有效时间范围通常能提升性能。我们把 k = 200 和 400 处的轻微下降(即接近开环控制状态)归因于缺乏反应性行为以及难以建模长动作序列。为了进一步评估动作分块方法的有效性和普适性,我们对两种基线方法进行了增强:对于 BC-ConvMLP,我们只需将输出维度增加到 k*action_dim;对于 VINN,则提取接下来的 k 个动作。我们在图8(a)中用不同的k值展示了它们的性能,结果表明其趋势与ACT一致,即动作分块越多,性能越好。尽管ACT在显著提升性能方面仍优于所有增强型基线,但这些结果表明,在此类情境下,动作分块对模仿学习总体上是有益的。
图8:(a) 我们在两种基线方法上加入了动作分块技术,x轴表示不同的分块大小k,y轴表示成功率。两种方法均显著受益于动作分块,表明该技术具有普遍适用性。(b) 时间集成(TE)提升了我们的方法和BC-ConvMLP,但对VINN造成了不利影响。© 我们比较了包含和不包含CVAE训练的情况,结果表明从人类数据中学习时,CVAE训练至关重要。(d) 我们绘制了用户研究中任务完成时间的分布情况,参与者在5Hz或50Hz的遥操作频率下执行两项任务。降低频率会导致完成时间延长62%。
然后,我们通过比较包含或不包含时间序列集成的最高成功率,在上述4项任务和不同k值下进行评估。需要注意的是,包含和不包含时间序列集成的实验是分别调优的:对于无时间序列集成时效果最佳的超参数,在包含时间序列集成时可能并非最优。在图8(b)中,我们发现BC-ConvMLP从时间序列集成中获益最多,提升了4%,而我们的方法其次提升3.3%。我们注意到非参数方法VINN的性能有所下降。我们推测,时间序列集成主要对参数化方法有益,因为它能够平滑建模误差。相比之下,VINN直接从数据集中提取真实动作,因此不会受到这一问题的影响。
B. Training with CVAE
我们使用CVAE目标训练ACT,以建模人类演示行为,这些行为可能包含噪声和多模态特征。在本节中,我们将与不使用CVAE目标的ACT进行比较,后者仅根据当前观测预测动作序列,并采用L1损失进行训练。8©我们可视化了两个模拟任务的综合成功率,并分别绘制了使用脚本数据和人类数据进行训练的结果。可以看出,当使用脚本数据进行训练时,移除CVAE目标对性能几乎没有影响,因为数据集完全确定性。而使用人类数据时,性能显著下降,从35.3%降至2%。这表明在从人类演示中学习时,CVAE目标至关重要。