ACT逻辑解析

文章介绍了ACT内核,包括ActionChunking和TemporalEnsemble方法,旨在解决模仿学习中的复合误差问题,通过从人工示教数据中学习并构建精确的任务逻辑。CVAE和Transformer被用于处理有噪声的数据和生成连续的动作序列,以实现更平稳的机器人操作。
摘要由CSDN通过智能技术生成

ACT内核

现有模仿学习缺点:在细颗粒度的任务中需要有高频的控制和闭环反馈在这里插入图片描述

1. 整体过程:

  1. 采集示教数据:该数据为leader robots的关节位置作为动作,为什么是用 leader 而不用 follwer ,是因为力的大小是隐式定义的,会存在差别,通过低层次 PID 控制器,观察者数据是由当前 follower 的关节位置和4张不同视角的图片构成的;
  2. 训练ACT,通过当前观测数据去预测一段未来行为,此处的动作对应于下一时间步长中双臂的目标关节位置,ACT基于当前观测数据模仿操作员在后续步长区间内会怎么操作,其中目标关节位置是通过点击内部的底层,高频的PID控制器跟踪获取的;
  3. 在测试阶段,我们加载实现最低验证损失的策略,并在环境中进行预测;
  4. 最大的挑战还是在复合误差上compounding errors,及实测时存在训练数据中缺少的状况;

1.1 Action Chunking and Temporal Ensemble

为了以一种与pixel-to-action 策略兼容的方式解决模仿学习的复合误差,我们试图减少在高频下收集的长轨迹的有效范围。受到 Action chuncking (神经科学的一个概念,将标记动作组合在一起,并作为一个单元执行,使它们更有效地存储和执行)的启发。直观来讲,一个 chucking 可能对应抓住糖果纸的一角或者是把电池插入电池仓中;在我们的测试中,将 chunk 的长度设置为 k:每 k 步,智能体接受一次观察值,生成 k 步的动作,并顺序执行。这就意味着任务有效长度减少了 k 倍。具体来说就是,策略模型为 π θ ( α t : t + k ∣ s t ) \pi_\theta (\alpha_ {t:t+k} | s_t) πθ(αt:t+kst) 而不是 π θ ( α t ∣ s t ) \pi_\theta (\alpha_t | s_t) πθ(αtst)chunking 可以协助实现示教数据中的非马尔可夫行为的建模。具体来说,单步的策略对时间相关的混杂因素不友好,例如示教过程中的停顿,这些状态没有任何价值,但是是存在于时间序列中的。当这种情况存在于chunk内,action chunk的策略会环节这个问题,而不会引入对历史条件政策造成因果混乱的问题。

动作分块的实现是非最优的:每k步生成一次观测值可能会导致机器人运动不平稳,为了提高运行的平稳性和避免观测与执行的分离,我们在每个步长都进行预测,这使得不同的动作块相互重叠,并且在给定的时间步长上会有比预测的动作更多的动作。在图3中进行了说明,提出 temporal ensemble (时态融合)来整合这些预测数据,该策略利用指数权重的机制来处理这些预测值: ω i = e x p ( − m ∗ i ) \omega_i = exp(-m * i) ωi=exp(mi),其中 ω 0 \omega_0 ω0表示最老预测行为的权重。m 表示观测值对权重的衰减速度,m 越小,表示收敛的越快。我们注意到,与典型的平滑不同,在典型的平滑中,当前动作与相邻时间步长中的动作聚合,这会导致偏差,我们聚合了为同一时间步长预测的动作。该过程不产生额外的训练成本,只是在推理的时候需要增加点时间。在实践中,我们发现action chunkingtemporal ensemblingACT 成功的关键,他们能使轨迹更精准和平滑。
关键环节介绍

1.2 Modeling human data(人工示教数据建模)

另外一个具有挑战性的任务就是从有噪声的示教数据中学习。对于同样的场景观测数据,人工会有不同的轨迹解决这个问题,在精度要求低的区域,人工就显的更加随机。因此,关注精度要求高的区域对策略来说是很重要的。为了跟踪这个问题,我们通过将 action chunking 策略训练生成模型。我们将训练策略称为是条件变分自动编码器CVAE,一种基于当前观测数据生成有条件的动作序列的方案。CVAE 分为两个部分:encoderdecoder(如下图所示)。 encoderCAVE 编码器仅用于训练解码器,并在测试环节进行分解,具体的说,CAVE编码器预测风格变量 z 分布的均值和方差,该分布被参数化为对角高斯分布,给定当前的观测和动作噪声作为输入。在实践中,为了更快的进行训练,我们没用图像观测数据,仅以本体观察值和动作序列作为条件。
decoder (策略推导)过程,以 z 分布和当前观测数据(图片+关节位姿)预测动作序列。我们将z设置为先验分布的平均值,将零设置为确定性解码。整个模型是针对示教的动作快训练最大似然估计, m i n θ − ∑ s t , a t : t + l ∈ D l o g π θ ( a t : t + k ∣ s t ) min_\theta - \sum_{s_t, a_{t:t+l\in D}} log \pi_\theta(a_{t:t+k}|s_t) minθst,at:t+lDlogπθ(at:t+kst)
具有标准VAE目标,该目标具有两个项:重建损失和将编码器正则化为高斯先验的项。对第二项评判标准增加权重 β \beta β,提高 β \beta β 会导致传递更少的 z。我们发现,CAVE 的判断准则在从示教数据中学习到精确的任务逻辑是至关重要的。
在这里插入图片描述

1.3 Implemention ACT

我们基于 transform 实现 CVAEencoderdecoder 过程,将 transformer 设计为合成信息序列和生成新序列。CVAE encoder 类似于 BERTtransformer encoder 结构。
encoder 过程:
INPUT:

  • 当前关节位置
  • k步的目标动作序列(这些数据都是来源于示教数据),
  • [CLS]

OUTPUT: transformer 处理后,[CLS] 对应的特征用于计算 z分布的均值和方差。

decoder 过程:
Components: ResNet , transformer encoder, transformer decoder
INPUT: 当前观测值, z 分布
OUTPUT: 预测的 k
解码过程: transformer encoder 整合来自于不同视角的相机图片,关节位置以及style variabletransformer decoder 生成连贯的动作序列。其中,相机图片来源于4个示教,分辨率为 480 * 640,关节坐标为 7*2=14 DOF,动作空间是面向2个机器人的14维向量,对于每个动作块,输出就是 14 * k

  1. ResNet18(很经典,但是具体能发挥多大作用未知) 作为 backbone 处理图片,使图片由 480*640*3 转变成 15*20*512,然后经由全连接层变成 200*512,为保存空间信息,将 4 张图整合在一起,构成 1200*512
  2. 增加两个特征:当前关节位置和style variable z
    它们分别通过线性层从其原始尺寸投影到512,因此,transformer encoder 的输入为 1202 * 512。变换器-解码器通过交叉注意对编码器输出进行调节,其中输入序列是固定的,维度为 k * 12keyvalue 均来自于 encodertransformer decoder 的输出是 k * 512,为了与机械臂关节维度吻合,通过 MLP 将维到 k * 14
  3. loss:鉴于L1 loss 在动作序列中的精度更高,所以我们采用 L1 loss而不用更常见的 L2 loss ,而且还注意到,采用机器人的步进值要比目标关节位置的效果好。
    算法伪代码如下图所示:

1.4

详细的逻辑如下展示:
在这里插入图片描述

在这里插入图片描述

  • 29
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值