前言

23年已过35 今24年(本文首发于24年1.8日)则将36,到40岁之前还有4年半,这4年半我想冲一把大模型机器人(兼具商业价值、社会价值、科技价值 ),因为

  • 通过过去一年的研究探索与应用开发(比如我带队开发完成的AIGC模特生成论文审稿GPT企业知识库问答)
    机器人是在可能范围之内我能做的最大的项目(至于更大的如造车 我也干不了),虽然很难,4年半下来也不一定能达到预期,但全力
  • 通过Q1之内的技术准备、复现Moblie ALOHA「不过,后续改成先去复现UMI和DexCap了,且后来在24下半年 UMIDexCap均已复现成功」、建机器人开发团队之后
    Q2之内将在七月官网上线一系列机器人课程以从课程中筛选、选拔、扩大整个机器人的开发队伍『比如:具身复现实战线上营(偏机械臂)
  • 再后来,25年5月,我们还是把ALOHA ACT复现了下——基于LeRobot中封装的ACT策略,把其应用在了双臂上的智能分拣场景

    双臂下的智能分拣场景

根据上一篇文章《模仿学习的集中爆发:从Dobb·E、Gello到斯坦福Mobile ALOHA、UMI、DexCap、伯克利FMB》的第三部分可知,无论是最新系统Mobile ALOHA还是其前身系统ALOHA,他们背后的关键技术都是动作分块算法ACT,故

第一部分 ALOHA + ACT

1.1 ALOHA + ACT解决现有机器人昂贵且难以做精确任务的问题

斯坦福Mobile ALOHA在被推出之前,其实在23年Q1便已有了ALOHA,所谓ALOHA,即是A Low-cost Open-source Hardware System for Bimanual Teleoperation

如此文《模仿学习的集中爆发:从Dobb·E、Gello到斯坦福Mobile ALOHA、UMI、DexCap、伯克利FMB》的第三部分“3.1.2 Mobile ALOHA的前置工作:ALOHA与ACT”节所述

Mobile ALOHA其实是在23年ALOHA的工作基础上迭代优化出来的,不是一蹴而就,以下是关于ALOHA的一系列重要信息

所以,一个低成本的开源硬件系统ALOHA,可手动远程操作,是怎么一步步来的呢?

在前两年,让机器人去完成一些抽象精细的操作任务,比如穿线扎带或开槽电池,是比较困难的

  • 一方面,因为这些任务需要比较高的精准度、协调性以及闭环视觉反馈。通常情况下,执行这些任务需要使用高端机器人、精确传感器或者仔细校准设备,而且成本昂贵且难以设置

    Stanford University、UC Berkeley、Meta等研究者为了让低成本和不太精确的硬件也能完成这些复杂操作,提出了一个低成本系统,该系统可以通过定制远程操作接口收集实际演示,从而进行端到端的模仿学习(We present a low-cost system that performs end-to-end imitation learning directly from real demonstrations,collected with a custom teleoperation interface)

  • 二方面,在高精度领域中进行模仿学习还存在挑战:策略中的错误可能会随着时间推移而累积,并且人类演示可能是非平稳的
    为了解决这些挑战,该团队开发了一种动作分块算法,即Action Chunking with Transformers (ACT),它基于Transformer在动作序列上生成模型并允许机器人学习现实世界中6项困难任务(例如打开半透明调味品杯和插入电池),成功率达80-90%(这是其演示地址)

总之,根据该团队发表的这篇论文《Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware》可知

  1. 他们训练了一个端到端的策略,将来自普通网络摄像头的RGB图像直接映射为动作(we therefore train an end-to-end policy that directly maps RGB images from commodity web cameras to the actions.)
    这种从像素到动作的转换方法特别适用于精细操作,因为精细操纵通常涉及具有复杂物理特质的对象,这样学习操纵策略比建模整个环境要简单得多
  2. 以调味杯为例:在推动杯子时对接触的建模,以及在撬开杯盖时对变形的建模,都涉及大量自由度下的复杂物理过程

    而设计一个足够精确用于规划的模型将需要大量的研究和特定任务的工程努力
    Designing a model accurate enough for planning would require significant research and task specific engineering efforts.

    相比之下,推动和开盖的策略要简单得多,因为闭环策略可以根据杯子和杯盖的不同位置做出反应,而无需提前精确预测它们的运动轨迹
    In contrast, the policy of nudging and opening the cup is much simpler, since a closed-loop policy can react to different positions of the cup and lid rather than precisely anticipating how it will move in advance

    说白了,咱们不是去生成一个轻推和打开杯子的视频,不用去描绘过程,咱们只是要完成一个具体的目标(结果说话),而完成某个具体的目标有策略、有方法就行

1.1.1 模仿学习及其挑战:Action Chunking with Transformers(ACT)

系统有了,数据也好办(高质量的人类演示可以让系统学习人类的灵巧,因此,可让低成本但灵巧的遥操作系统ALOHA做数据收集),但训练一个端到端的策略(end-to-end policy)可没那么容易,对于需要高精度和视觉反馈的任务,即使有高质量的演示,模仿学习依然面临重大挑战

  1. 预测动作中的微小误差会导致状态出现巨大差异,从而加剧模仿学习中的“误差累积”问题[47,64,29]
    Small errors in the predicted action can incur large differences in the state, exacerbating the “compounding error” problem of imitation learning [47, 64, 29].

    为了解决这一问题,作者借鉴了心理学中的动作分块(action chunking)概念,该概念描述了如何将一系列动作组合为一个整体,并作为一个单元执行[35]
    To tackle this, we take inspiration from action chunking, a concept in psychology that describes how sequences of actions are grouped together as a chunk, and executed as one unit [35].
  2. 在他们的方案中,策略预测接下来k步的目标关节位置,而不仅仅是一步一步地预测。这种方式将任务的有效时域缩短了k倍,从而减缓了误差累积的问题
    In our case, the policy predicts the target joint positions for the next k timesteps, rather than just one step at a time. This reduces the effective horizon of the task by k-fold, mitigating compounding errors.

    总之,预测动作序列还可以帮助应对时间相关的混杂因素[61],例如在演示中出现的停顿,这些现象难以用马尔可夫单步策略建模
    Predicting action sequences also helps tackle temporally correlated confounders [61], such as pauses in demonstrations that are hard to model with Markovian single-step policies.
  3. 为了进一步提升策略的平滑性,作者提出了时间集成(temporal ensembling)方法,该方法更频繁地调用策略,并对重叠的动作分块进行平均
    To further improve the smoothness of the policy, we propose temporal ensembling, which queries the policy more frequently and averages across the overlapping action chunks.

    他们采用Transformer[65]这一专为序列建模设计的架构实现动作分块策略,并将其作为条件变分自编码器(CVAE)[55,33]进行训练,以捕捉人类数据中的多样性
    We implement action chunking policy with Transformers [65], an architecture designed for sequence modeling, and train it as a conditional VAE (CVAE) [55, 33] to capture the variability in human data.
    PS,CVAE对应的参考文献55和33分别为
    55-Learning Structured Output Representation using Deep Conditional Generative Models
    33-Auto-encodingvariational baye


    他们将该方法命名为基于Transformer的动作分块(ACT),并发现其在一系列仿真和现实精细操作任务中显著优于以往的模仿学习算法
    We name our method Action Chunking with Transformers (ACT), and find that it significantly outperforms previous imitation learning algorithms on a range of simulated and real-world fine manipulation tasks.

1.1.2 行为克隆(Behavioral cloning, BC)中为何要引入ACT

模仿学习使机器人能够直接从专家处学习。行为克隆(Behavioral cloning, BC)是最简单的模仿学习算法之一,将模仿学习视为从观测到动作的监督学习问题

  1. 行为克隆(BC)的一个主要缺陷是累积误差,即前一个时间步的错误会逐步积累,导致机器人偏离其训练分布,从而进入难以恢复的状态 [47,64]
    这一问题在精细操作场景中尤为突出 [29]。缓解累积误差的一种方法是允许额外的基于策略的交互和专家纠正,例如DAgger [47] 及其变体 [30,40,24]
  2. 然而,使用遥操作界面进行专家标注既耗时又不自然 [29]
    另一种方法是在演示收集阶段注入噪声,以获得包含纠正行为的数据集 [36],但在精细操作任务中,这种噪声注入可能直接导致任务失败,降低遥操作系统的灵巧性

    为规避这些问题,已有研究以离线方式生成合成纠正数据 [16,29,70]。但这些方法仅限于可获取低维状态或特定任务类型(如抓取)的场景
    总之,鉴于这些局限性,需要从不同的角度解决累积误差问题,使其能够兼容高维视觉观测
  3. 因此建议通过动作分块(action chunking)来缩短任务的有效决策时域,即预测一个动作序列而非单一动作,然后对重叠的动作分块进行集成,从而生成既准确又平滑的轨迹

1.2 硬件套装:ALOHA——低成本的开源硬件系统,用于手动远程操作

我们已经知道市面上已有类似达芬奇外科手术机器人或ABB YuMi这样的机器人,但成本一般比较昂贵

  • 他们团队则转向低成本硬件(很类似七月在一系列大模型应用上的探索,侧重小团队 低成本 大效果),例如每个成本约为5k美元的手臂,并寻求使它们能够执行高精度、闭环任务
    他们的遥操作设置最类似于Kim等人的[32],也使用了人类遥控者和跟随者机器人之间的关节空间映射
  • 与以往的系统不同,他们未使用特殊编码器、传感器或机械加工部件。他们的系统仅由现成机器人和少量3D打印部件构建,非专业人员也可在2小时内完成组成

具体而言,其具备以下五个特点

  1. 低成本:整个系统应该在大多数机器人实验室的预算之内,可与单个工业手臂相媲美
  2. 多功能:它可以应用于广泛的与现实物体的精细操作任务
  3. 用户友好:系统应该直观、可靠、易于使用
  4. 易于维修:当系统不可避免地出现故障时,研究人员可以轻松进行维修
  5. 易于搭建:研究人员可以使用易于获取的材料快速组装该设备

所以,在设计一个远程操作系统时,没有将VR控制器或摄像头捕获的手部姿势映射到机器人的末端执行器姿势,即任务空间映射(Instead of mapping the hand pose captured by a VR controller or camera to the end-effector pose of the robot, i.e. task-space mapping),而是使用来自同一家公司制造的小型机器人WidowX的直接关节空间映射,成本为3300美元

如下图所示:

  • 左侧为前、顶部和两个手腕摄像机的视角(这4个相机的视角分别用从当前往后的蓝线从顶向下的绿线从左往右的红线从右往左的红线表示),以及ALOHA双手工作空间的示意图

    具体而言,总计4个Logitech C922x网络摄像头,每个摄像头可实时传输480×640分辨率的RGB图像
    \rightarrow  其中两个网络摄像头安装在跟随机器人手腕上,用于对夹爪进行特写观察(allowing for a close-up view of the grippers)
    \rightarrow  剩下的两个相机分别安装在桌面的前方(front camera)和桌子上方的顶部位置(top camera),遥控操作和数据记录均以50Hz的频率进行
  • 中间是“手柄和剪刀”机制和定制夹具的详细视图
  • 根据上面的原则1、4和5,建立了一个双手平行颚夹持器设置与两个ViperX 6-DoF机器人手臂,上图右侧列出了ViperX 6dof机器人的技术规格
    出于价格和维护方面的考虑,不使用灵巧手,使用的ViperX臂具有750克和1.5米跨度的工作有效载荷,精度为5-8毫米

且该机器人模块化,维修简单:在电机出现故障的情况下,低成本的Dynamixel电机可以轻松更换。这种机器人可以以5600美元左右的价格购买到现货

然而,OEM的手指不够通用,无法处理精细的操作任务。因此,设计了自己的3D打印“透明”手指,并将其贴合在夹持胶带(gripping tape)上

再补充说明下


该系统中,用户通过反向驱动较小的WidowX(“领导者”)来远程操作,其关节与较大的ViperX(“追随者”)同步。在开发设置时,注意到使用关节空间映射(joint-space mapping)比使用任务空间有一些好处

  1. 精细操作通常需要在机器人的singularities附近操作,在他们的例子中,机器人有6个自由度,没有冗余。现成的逆运动学(inverse kinematics,IK)在这种情况下经常失效
    另一方面,关节空间映射保证了关节限制内的高带宽控制,同时也需要更少的计算和减少延迟
  2. leader机器人的重量可以防止用户移动过快,同时也可以抑制小的振动。注意到使用关节空间映射比手持VR控制器在精确任务上表现更好
    为了进一步提高遥操作体验,设计了一个3d打印的“手柄和剪刀(handle and scissor)”机构,可以改装到领导者机器人上
    它减少了操作人员反向驱动电机所需的力,并允许连续控制夹持器,instead of binary opening or closing
  3. We also design a rubber band load balancing mechanism that partially counteracts the gravity on the leader side。它减少了操作人员所需的努力,并使更长的遥操作时间(如>30分钟)成为可能(项目网站中包含了有关设置的更多细节)

其余设置包括一个尺寸为20×20mm的铝挤压机器人笼,由交叉钢缆加固(The rest of the setup includes a robot cage with 20×20mm aluminum extrusions, reinforced by crossing steel cables)

第二部分 动作分块算法ACT的原理解析

2.1 整体概览:从整体流程上整体理解:Action Chunking with Transformers(ACT)

为了在新任务上训练ACT,首先使用ALOHA收集人类演示

  • 该团队记录了领导机器人的关节位置(record the joint positions of the leader robots,即来自人类操作员的输入),并将其作为动作
    之所以使用领导者的关节位置而不是跟随者的关节位置,是因为通过低级PID控制器施加力量时,这些力量是由“它们之间的差异”隐式定义决定的
    It is important to use the leader joint positions instead of the follower’s, because the amount of force appliedis implicitly defined by the difference between them, through the low-level PID controller

    观察结果由跟随机器人当前关节位置和4个摄像头的图像流组成(The observations are composed ofthe current joint positions of follower robots and the image feedfrom 4 cameras)
  • 接下来,训练ACT在给定当前观测的情况下预测未来动作序列(we train ACT to predict the sequence offuture actions given the current observations)
    暂不太理解 没事,下文马上会逐一详解

    另,这里的动作对应于下一个时间步中两只机械臂的目标关节位置(An action here corresponds to the target joint positions for both arms in the next time step)

    直观地说,ACT尝试模仿在人类操作员面对当前观测时,接下来会采取的操作
    (ACT tries to imitate what a human operator would do in the following time steps given current observations)
  • 这些目标关节位置随后由Dynamixel电机内部的低层高频PID控制器进行跟踪。在测试阶段,加载验证损失最低的策略,并在环境中进行部署
    当然,其中主要的挑战是误差累积,即先前动作产生的误差会导致状态偏离训练分布
    These target joint positions are then tracked bythe low-level, high-frequency PID controller inside Dynamixelmotors. At test time, we load the policy that achieves the lowest validation loss and roll it out in the environment. Themain challenge that arises is compounding errors, where errorsfrom previous actions lead to states that are outside of training distribution.

2.1.1 动作分块与时间集成:将同一时间步内的预测动作进行聚合

为了以一种兼容像素到动作策略的方式来应对模仿学习中的累积误差,作者尝试减少在高频采集的长轨迹的有效视域(To combat the compounding errors of imitation learning in away that is compatible with pixel-to-action policies,we seek to reduce the effective horizon of long trajectories collected at high frequency)

对此,受到动作分块的启发——是一个神经科学概念,将单独的动作组合在一起并作为一个整体执行,从而使其在存储和执行时更加高效[We are inspired by action chunking,a neuro science concept where individual actions are grouped together and executed as one unit, making them more efficientto store and execute]

  1. 动作分块
    直观地说,一个动作块可以对应于抓住糖果包装纸的一角或将电池插入槽中。如上图所示,将块大小固定为k:每k步,Agent接收一次观察,然后生成接下来的k个动作,并按顺序执行这些动作。这意味着任务的有效时域减少了k 倍
    wefix the chunk size to be k: every k steps, the agent receivesan observation, generates the next k actions, and executes theactions in sequence.This implies a k-fold reduction in the effective horizon of the task.

    具体来说,该策略建模为\pi_{\theta}\left(a_{t: t+k} \mid s_{t}\right),而不是\pi_{\theta}\left(a_{t} \mid s_{t}\right)
    且分块还可以帮助建模人类演示中的非马尔可夫行为。具体而言,单步策略难以应对时间相关的混淆因素,例如演示中途的暂停[61],因为行为不仅依赖于状态,还依赖于时间步
    Concretely, the policymodels πθ(at:t+k|st) instead of πθ(at|st). Specifically, a single-step policy would struggle with temporally correlated confounders, such as pauses in the middle of ademonstration [61], since the behavior not only depends onthe state, but also the time step.

    当混杂因素处于一个动作组块内时,动作组块化可以缓解这一问题,且不会为基于历史条件的策略引入因果混淆问题[12]
    Action chunking can mitigate this issue when the confounder is within a chunk, without introducing the causal confusion issue for history-conditionedpolicies [12]

    如此,这使得不同的动作分块彼此重叠,在某一时间步会有多个预测动作(This makes different action chunks overlap with each other,and at a given time step there will be more than one predict edaction)
    此外,提出了一种时序集成方法来结合这些预测结果
  2. 时间集成
    他们的时序集成方法对这些预测进行加权平均,采用指数加权方案w_{i}=\exp (-m * i),其中
    \rightarrow  w_{0}是最早动作的权重(Our temporal ensemble performs a weighted average over these predictions with anexponential weighting scheme wi = exp(−m ∗i), where w0is the weight for the oldest action. )

    \rightarrow  新观测被引入的速度由参数m控制,m 越小,观测引入越快(The speed for incorporatingnew observation is governed by m, where a smaller m meansfaster incorporation)

    需要注意的是,与典型的平滑方法不同(当前动作与相邻时间步中的动作被聚合在一起,即:A B C D 4个动作,那样会引入偏差),他们只将同一时间步内的预测动作进行聚合
    We note that unlike typical smoothing,where the current action is aggregated with actions in adjacent time steps, which leads to bias, we aggregate actions predicted for the same time step

    啥意思呢,如上图所示
    在t=0时生成了t=0,1,2,3,四个动作步骤,比如  A B C D
    在t=1时生成了   t=1,2,3,4,四个动作步骤,比如   E F G H
    在t=2时生成了      t=2,3,4,5,四个动作步骤,比如    I  J  K L
    在t=3时生成了         t=3,4,5,6,四个动作步骤,比如    M N O P

    在t=3时最终采用什么动作,由t=0,t=1,t=2,t=3这四段进行指数加权平均,来得到最终的结果


    是不有点像下象棋,每往前走一步,都要推算下未来的4步应该怎么走?为何,因为战局可能瞬息万变,每时每刻都要根据实际情况做出及时调整,而非按照最开始预测的一条道走到黑,^_^

    该过程也不会带来额外的训练成本,只需增加推理时的计算量。且实际中,作者发现动作分块和时序集成都对ACT 的成功至关重要,这能够产生精确且平滑的运动
    This procedure also incurs no additional training cost, only extra inference-time computation. In practice,we find both action chunking and temporal ensembling to beimportant for the success of ACT, which produces precise andsmooth motion

2.1.2 Modeling human data与ACT的执行

上文先是解决了硬件系统的问题,后又解决了算法优化的问题,接下来,该细化数据的问题了

实话说,让机器人从嘈杂的人类演示中学习并不容易,面对相同的观测,人类可能会采用不同的轨迹来完成任务。在精度要求较低的区域,人类的行为也会更加随机

但策略需要重点关注高精度至关重要的区域,故ALOHA团队不得不通过训练他们的动作分块策略当做一个生成模型来解决这个问题(We tackle this problem by training our action chunking policy as a generative model)

  1. 最终他们将策略训练当做条件变分自编码器的生成问题「即we train the policy as a conditional variational autoencoder (CVAE),而CVAE 编码器采用类似BERT的transformer 编码器[13] 实现
    即以生成以当前观察为条件的动作序列
  2. CVAE有两个组件:一个CVAE编码器和一个CVAE解码器,其中的CVAE编码器只用于训练CVAE解码器(策略),在测试时被丢弃

具体而言,如下图所示(值得特别注意的是,下图左侧是CVAE编码器——包含一个transformer encoder,右侧是CVAE解码器——包含一个transformer encoder和一个transformer decoder)

  1. 上图左侧的CVAE 编码器(如上所说,采用类似BERT的transformer编码器实现),其预测风格变量 z 分布的均值和方差,该分布被参数化为对角高斯分布
    输入是来自当前关节位置,和来自示范数据集长度为k目标动作序列,前面再加上一个可学习的类似于BERT中的“[CLS]”token,从而形成了一个k+2长度的输入
    即如论文中IV-C节所说,The inputs to the encoder are the current joint positions and the target action sequence of length k from the demonstration dataset, prepended by a learned “[CLS]” tokensimilar to BERT. 

    顺带解释一下,为了加快实际训练速度,他们(CVAE编码器)省略了图像观测仅以本体感受观测(关节位置)和动作序列为条件For faster training in practice, we leave out the image observations and only condition on the proprioceptive observation and the action sequence

    通过编码器之后,使用“[CLS]”对应的特征用于预测“风格变量”z的均值和方差,这相当于CVAE 编码器的输出(当然,其同时也是CVAE解码器的输入之一)
  2. 上图右侧的CVAE解码器(即策略),通过z和当前观测(当前观测包括:图像cam1~cam4和机器人关节位置joints)为条件来预测动作序列——即接下来的k个动作
    The CVAE decoder, i.e.the policy, conditions on both z and the current observations(images + joint positions) to predict the action sequence.

    在测试时,将z设置为先验分布的均值,即0,以实现确定性解码
    At test time, we set z to be the mean of the prior distribution i.e.zero to deterministically decode.
    啥意思呢,我再解释一下,其实z代表希望从策略中引发的动作序列的“风格”。可以简单地将z设置为零向量,即训练期间使用的单位高斯先验的均值。因此,给定一个观测,策略的输出始终是确定性的,有利于策略评估,避免语料之外的迷乱行为

    且他们使用ResNet图像编码器、transformer encoder,和transformer decoder来实现CVAE解码器,直观地说
    \rightarrow  其中的transformer编码器综合了来自不同相机视角、关节位置和风格变量z的信息different camera view points, the joint positions, and the style variable,不知细心的你有没发现,这里CVAE编码器中的transformer编码器不同的是,这里CVAE解码器中(的transformer encoder部分)包含相机视角后者忽略相机视角——即上面说的:他们(CVAE编码器)省略了图像观测 
    \rightarrow  而其中的transformer解码器生成连贯的动作序列(generates a coherent action sequence)

    整个模型被训练成maximize演示动作块的对数似然,即(是一个VAE目标函数)
    \min _{\theta}-\sum_{s_{t}, a_{t: t+k} \in D} \log \pi_{\theta}\left(a_{t: t+k} \mid s_{t}\right)
    The whole model is trained to maximize P the log-likelihood of demonstration action chunks, i.e.minθ−st,at:t+k ∈D log πθ(at:t+k |st)

    该标准的VAE目标函数有两项:重建损失项、和一个将编码器正则化为高斯先验的项。直观地说,较高的β将导致z中传递的信息减少
    with the standard VAEobjective which has two terms: a reconstruction loss and a termthat regularizes the encoder to a Gaussian prior. Following [23],we weight the second term with a hyperparameter β. 

2.2 深入细节:从ACT执行的详细架构图与详细步骤进一步理解ACT

以下是论文中关于上述训练过程的更多细节

2.2.1 第一步 采样数据「以便获得后续CVAE编码器输入中的“关节位置和动作序列”」

如下图所示

  • 输入:包括4张RGB图像,每张图像的分辨率为480 ×640,以及两个机器人手臂的关节位置(总共7+7=14 DoF)
    Intuitively, the transformer encoder synthesizes information from different camera viewpoints, the joint positions, and the style variable, and the transformer decoder generates a coherentaction sequence. The observation includes 4 RGB images, eachat 480 ×640 resolution, and joint positions for two robot arms(7+7=14 DoF in total). 
  • 输出:动作空间是两个机器人的绝对关节位置,一个14维向量
    因此,通过动作分块,策略在给定当前观测的情况下输出一个k ×14张量(每个动作都被定义为一个14维的向量,所以k个动作自然便是一个k ×14张量)
    The action space is the absolute jointpositions for two robots, a 14-dimensional vector. Thus with action chunking, the policy outputs a k ×14 tensor given the current observation. 

    注意,如论文中附录C 所说,We include a more detailed architecture diagram in Figure 11.At training time, we first sample tuples of RGB images andjoint positions, together with the corresponding action sequenceas prediction target (Step 1: sample data),即这里的序列是作为预测目标的对应动作序列
    且如上所说——也即论文中IV-C节中说的:the inputs to the encoder are the current joint positions and the target action sequence of length k from the demonstration datase,来自示范数据集

2.2.2 第二步 推断z,以获得CVAE解码器输入中的风格变量z

然后,使用下图右侧黄色所示的CVAE编码器推断风格变量z

通过上一小节,可知CVAE 编码器的输入目前包括了

  1. [CLS]token,它由随机初始化的学习权值组成
  2. 嵌入关节位置embedded joints
    通过一个线性层linear layer2,把joints投影到嵌入维度的关节位置(14维到512维),得到:embedded joints
  3. 嵌入动作序列embedded action sequence
    通过另一个线性层linear layer1,把k × 14的action sequence投影到嵌入维度的动作序列(k × 14维到k × 512维)

以上三个输入最终形成(k + 2)×embedding_dimension的序列,即(k + 2) × 512,并用CVAE 编码器中的transformer编码器进行处理

最后

  1. 只取第一个输出,它对应于[CLS]标记,并使用另一个线性网络来预测z分布的均值和方差,将其参数化为对角高斯分布
  2. 且使用重新参数化获得z的样本,这是一种允许在采样过程中反向传播的标准方法,以便编码器和解码器可以联合优化[33]

2.2.3 第三步 CVAE解码器预测动作序列

接下来,尝试从CVAE解码器中获得预测的动作,即策略(预测动作序列)

  1. 首先,对于每一个图像观察,其皆被ResNet18处理以获得一个特征图(将480×640×3 RGB图像转换为15×20×728的特征图,即which convert 480 × 640 × 3 RGB images into 15 × 20 × 512 feature maps)
    然后flatten化以获得一个特征序列(300×728)
    这些特征用线性层linear layer5投影到嵌入维度(300×512)
    为了保留空间信息,再添加一个2D正弦位置嵌入(即Sinusoidal PosEmb),相当于把位置信息添加到特征序列中

    其次,对所有4张图像重复此操作,得到一个4 × 300 × 512,即1200 ×512维度的特征序列
    Repeating this for all 4 images gives a feature sequence of 1200 × 512 in dimension.

    接着,将来自每个摄像机的特征序列连接起来,用作CVAE解码器中transformer encoder的输入之一
    对于另外两个输入:当前的关节位置joints和“风格变量”z,它们分别通过线性层linear layer6、linear layer7从各自的原始维度(14、32)都统一投影到512

    最终,the input to the transformer encoder is 1202×512(相信你很快反应出来了,连接此三:4张图像的特征维度1200 ×512、关节位置joins的特征维度1×512,风格变量z的特征维度1×512)
  2. CVAE解码器中transformer解码器的输入有两个方面
    一方面,transformer解码器的“query”是第一层固定的正弦位置嵌入,即如上图右下角所示的position embeddings(fixed),其维度为k ×512
    二方面,transformer解码器的交叉注意力(cross-attention)层中的“keys”和“values”来自上述transformer编码器的输出
    即如论文中所述,The transformer decoder conditions on the encoder output through cross-attention, where the input sequence is a fixed position embedding, with dimensions k × 512, and the keys and values are coming from the encoder.

    从而,transformer解码器在给定编码器输出的情况下预测动作序列
    以下是更多细节
    \rightarrow  transformer解码器的输出维度是k ×512,然后用MLP向下投影到k ×14,对应于接下来k个步骤的预测目标关节位置
    This gives the transformer decoder an output dimension of k × 512, which is then down-projected with an MLP into k × 14, corresponding to the predicted target joint positions for the next k steps.

    \rightarrow  最终,使用L1损失进行重建,而不是更常见的L2损失:且注意到,L1损失导致对动作序列进行更精确的建模(We use L1 loss for reconstruction instead of the more common L2 loss: we noted that L1 loss leads to more precise modeling of the action sequence. )

    \rightarrow  且还注意到,当使用delta关节位置作为动作而不是目标关节位置时,性能会下降(We also noted degraded performance when using delta joint positions as actions instead of target joint positions)

以下是算法1和算法2中ACT的训练和推理。该模型有大约80M个参数,为每个任务从头开始训练。训练在单个11G RTX 2080 Ti GPU上需要大约5个小时,在同一台机器上的推理时间约为0.01秒

 

2.3 优势特征:ACT与其他模仿学习方法的比较

将ACT与之前的4种模仿学习方法进行比较

  1. BC-ConvMLP是最简单但最广泛使用的基线[69, 26],它采用卷积网络处理当前图像观测,并将其输出特征与关节位置连接,以预测动作
    BC-ConvMLP is the simplest yet most widely used baseline [69, 26], which processes the current image observations with a convolutional network, whose output features are concatenated with the joint positions to predict the action.
  2. BeT [49]也利用Transformer作为架构,但有两个关键区别:
    \rightarrow  (1)没有对动作进行分块处理,该模型在给定观测历史的情况下预测一个动作
    no action chunking: the model predicts one action given the history of observations
    \rightarrow  (2)图像观测由单独训练的冻结视觉编码器预处理,即感知和控制网络没有联合优化
    the image observations are pre-processed by a separately trained frozen visual encoder. That is, the perception and control networks are not jointly optimized.
  3. RT-1 [7]是另一种基于Transformer的架构,从“固定长度的过去观测历史中”预测一个动作
    RT-1 [7] is another Transformerbased architecture that predicts one action from a fixed-length history of past observations.

    BeT和RT-1都离散化了动作空间:输出为离散箱分类分布,在BeT情况下还添加了连续偏移量。而ACT直接预测连续动作,这是出于精确操作所需精度驱使
    Both BeT and RT-1 discretize the action space: the output is a categorical distribution over discrete bins, but with an added continuous offset from the bincenter in the case of BeT. Our method, ACT, instead directly predicts continuous actions, motivated by the precision required in fine manipulation.
  4. 最后,VINN [42]是一种非参数方法,在测试时假设可以访问演示数据。给定新的观察数据时,它检索具有最相似视觉特征的k个样本,并返回一个加权操作
    Lastly, VINN [42] is a non-parametric method that assumes access to the demonstrations at test time. Given a new observation, it retrieves the k observations with
    the most similar visual features, and returns an action using weighted k-nearest-neighbors.


    且其采用了一个经过预训练的ResNet作为视觉特征提取器,并在无监督学习的演示数据上进行微调
    The visual feature extractor is a pretrained ResNet finetuned on demonstration data with unsupervised learning.

如本文开头所说的, 至于ACT的代码剖析、部署实践,请见下一篇文章《逐行解读ACT:机器人模仿学习之动作分块算法ACT的代码剖析

 参考文献与推荐阅读

  1. Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware
  2. Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware(阅读笔记)
  3. ..
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐