ACT逻辑解析

news2024/10/7 8:32:03

ACT逻辑解析

  • ACT内核
    • 1. 整体过程:
      • 1.1 Action Chunking and Temporal Ensemble
      • 1.2 Modeling human data(人工示教数据建模)
      • 1.3 Implemention ACT
      • 1.4

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

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1573928.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mysql5.7 yum 简单/快速安装

Centos7下MySql安装及配置过程,简单直装版 目录 操作步骤 一、检查linux是否已安装MySql二、清除MySQL(适用重新安装) 1、删除MySQL及其依赖包2、查询遗留的目录3、删除遗留的目录三、开始安装MySQL 1、下载并添加库2、安装MySQL包3、设置My…

PID控制有物理含义吗

PID控制有物理含义吗 一、背景 对于PID的初学者,经常会有疑惑,为什么位置的误差通过PID就变成了期望速度?他们之间有什么物理关系吗?还有对于无人机,为什么期望升力,又是期望加速度,又是期望油…

绝地求生:愉人不愚人!分享你的PUBG摸“愚”穿搭,赢精美套装好礼

活动简介 愚人节来啦!为了和大家一起分享诙谐幽默的搞怪氛围,特此推出搞怪穿搭大会!快来戴上你最喜爱的头套或面具一起来参加吧!只要参与 #摸“愚”穿搭# 话题投稿,即有机会赢取魔力甜心萨莉套装1的奖励,也…

Composer Windows 安装

Composer 的下载地址为:Composer 1 运行安装程序 当启动安装程序后单击下一步继续。 选择 PHP 路径 如果你的计算机上没有安装 PHP 的话,Composer 的安装无法继续。 你需要选择你本地安装的 PHP 路径。 配置代理地址 默认的情况下,可以不…

外汇110:外汇交易不同货币类别及交易注意事项!

外汇市场是一个庞大而复杂的市场,其中有各种各样的货币品种。对于外汇投资者来说,了解外汇品种的特性和走势是比较重要的。1. 货币种类 外汇市场中的货币品种可以分为主要货币、次要货币和外围货币。 主要货币:主要指美元、欧元、英镑、日元、…

美国CPC认证是什么?为什么必须办理CPC认证呢?

美国CPC认证,全称为Childrens Product Certificate,是儿童产品认证的意思。它主要针对的是在美国市场销售的儿童产品,如玩具、家具、童车、餐椅、床上用品等。CPC认证要求产品安全性高,符合美国加州65、16 CFR等法规要求&#xff…

window安装maven和hadoop3.1.4

前面的文章已讲解如何安装idea和进行基本设置,本文主要带着大家安装配置好maven和hadoop. 大家不用去官网下载,直接使用我发给大家的压缩文件,注意解压后的文件夹不要放在中文目录下,课堂上我们讲解过原因。 这是我电脑上的路径&a…

vue3基础入门项目实战实例介绍

Vue 3 带来了许多新特性和性能优化,使得构建高效且可维护的前端应用变得更加容易。下面是一个简单的 Vue 3 基础项目实战实例介绍,帮助你入门: 项目概述 这个实战项目是一个简单的待办事项管理应用,用户可以添加、编辑和删除待办…

商业地产数字化是什么?又有哪些优势呢?

​一、什么是商业地产数字化 数字化是信息化的延伸与拓展。在企业完成信息化之后,对存储的信息的解析与挖掘,建立数据洞察,从而改变企业决策,打造全新的企业运作方式,实现数据化转型。 商业地产数字化是指将商业地产…

前端三剑客 —— JavaScript (第三节)

目录 内容回顾: 1.数据类型 2.常见运算符 数据类型转换 自动类型转换 强制类型转换 流程控制语句 顺序流程 选择流程 单分支 多分支 switch 循环流程 for循环 while循环 do...while循环 如何选择 continue和break 循环案例 内容回顾: …

Dapr(三) Dapr核心组件的使用一

结合前两期 Dapr(一) 基于云原生了解Dapr(Dapr(一) 基于云原生了解Dapr-CSDN博客) Dapr(二) 分布式应用运行时搭建及服务调用(Dapr(二) 分布式应用运行时搭建及服务调用-CSDN博客) 下篇推出dapr服务注册与发现,dapr组件绑定,dapr Actor功能。 目录 1.…

Java中的常用类详解(Math、Scanner、Random、String)

目录 一、Math(数学类) 自带常量 取整方法 三角函数方法 指数函数方法 其他方法 二、Scanner(实用程序类) 三、Random(随机数类) 四、String(字符串类) 获取相关 判断相关…

实践笔记-03 docker buildx 使用

docker buildx 使用 1.启用docker buildx2.启用 binfmt_misc3.从默认的构建器切换到多平台构建器3.1创建buildkitd.toml文件(私有仓库是http没有证书的情况下,需要配置)3.2创建构建器并使用新创建的构建器 4.构建多架构镜像并推送至harbor仓库…

清风DJ,DJ舞曲听不停

hi,大家好我是技术苟,每周准时上线为你带来实用黑科技!由于公众号改版,现在的公众号消息已经不再按照时间顺序排送了。因此小伙伴们就很容易错过精彩内容。喜欢黑科技的小伙伴,可以将黑科技百科公众号设为标星&#xf…

如何选择适合智能型程控直流电子负载

在选择适合智能型程控直流电子负载时,需要考虑以下几个方面: 根据实际需求选择合适的负载容量,负载容量是指电子负载能够承受的最大电流和电压。一般来说,负载容量越大,价格越高。因此,在满足实际需求的前提…

Qt实现Kermit协议(四)

3 实现 3.3 KermitRecvFile 该模块实现了Kermit接收文件功能。 序列图如下: 3.3.1 KermitRecvFile定义 class QSerialPort; class KermitRecvFile : public QObject, public Kermit {Q_OBJECT public:explicit KermitRecvFile(QSerialPort *serial, QObject *…

【SCI绘图】【小提琴系列1 python】绘制按分类变量分组的垂直小提琴图

SCI,CCF,EI及核心期刊绘图宝典,爆款持续更新,助力科研! 本期分享: 【SCI绘图】【小提琴系列1 python】绘制按分类变量分组的垂直小提琴图,文末附完整代码 小提琴图是一种常用的数据可视化工具…

YUM仓库和编译安装

目录 一.YUM仓库搭建 1.简介: 2.搭建思路: 3.实验:单机yum的创建 二.编译安装 1.简介 2.安装过程 3.实验:编译安装nginx 一.YUM仓库搭建 1.简介: yum是一个基于RPM包(是Red-Hat Package Manager红…

深度学习500问——Chapter06: 循环神经网络(RNN)(3)

文章目录 6.11 LSTM 6.11.1 LSTM的产生原因 6.11.2 图解标准RNN和LSTM的区别 6.11.3 LSTM核心思想图解 6.11.4 LSTM流行的变体 6.12 LSTMs与GRUs的区别 6.13 RNNs在NLP中的典型应用 6.11 LSTM 6.11.1 LSTM的产生原因 RNN在处理长期依赖(时间序列上距离较远的…

DC电源模块在电子设备中的应用场景

BOSHIDA DC电源模块在电子设备中的应用场景 DC电源模块在电子设备中广泛应用于以下场景: 1. 电子产品:如手机、平板电脑、笔记本电脑等便携式设备,这些设备通常需要稳定的直流电源来供电。 2. 工业设备:包括自动化设备、工业机器…