24年8月(CoRL‘24录取)来自伯克利分校的论文“Body Transformer: Leveraging Robot Embodiment for Policy Learning”。
近年来,Transformer 架构已成为应用于自然语言处理和计算机视觉的机器学习算法事实标准。尽管有显著证据表明该架构在机器人学习的背景下成功部署,但原始 Transformer 并未充分利用机器人学习问题的结构。因此, Body Transformer (BoT) 提供引导学习过程的归纳偏差,是一个利用机器人具身的架构。将机器人身体表示为传感器和执行器的一个图,并依靠掩码注意来汇集整个架构中的信息。在表示模仿或强化学习策略时,所得架构在任务完成、扩展属性和计算效率方面均优于原始 Transformer 以及经典的多层感知器。包括开源代码在内的其他材料可在 https://sferrazza.cc/bot_site 上找到。
对于大多数纠正和稳定动作,物理智体表现出的运动反应与其感知的外部刺激位置在空间上相关 [1]。以冲浪者来说,下半身(即脚和脚踝)主要负责抵消冲浪板下波浪引起的不平衡 [2]。事实上,人类在脊髓神经回路层面存在反馈回路,专门负责单个执行器的响应 [3]。
纠正定位的执行是高效运动的主要因素 [4]。这对于机器人也特别重要,然而,学习架构通常不会利用传感器和执行器之间的空间相互关系。事实上,机器人策略大多利用为自然语言或计算机视觉开发的相同架构,而没有有效地利用机器人身体的结构。
机器人中的 Transformer。Transformer 最初是为 NLP 应用而开发的 [5],现已成功应用于各个领域,例如计算机视觉 [6] 和音频处理 [7]。一些研究已经展示 Transformer 作为表示机器人策略一种手段的应用 [8、9、10],展示其在这种设置下的核心优势,即可变上下文长度、处理长序列 [11] 和多模态 [12、13]。然而,这些方法使用的 Transformer 最初是为非结构化或网格状输入(例如语言或图像)而开发的。
图神经网络 (GNN)。GNN [14] 是一类可以图形式处理输入的学习架构 [15]。虽然这些架构的早期版本以图上的显式消息传递方案为特色 [16、17],但最近的架构大多采用基于注意的方法。实际上,具有可变上下文长度的原始 Transformer 本身就支持全连通图。但是,只有通过修改原始 Transformer 架构才能实现图解释基准测试中的最佳性能,例如通过学习图编码和注意偏差 [18]。Buterez 的同期研究 [19] 遵循与 Velicˇkovic ́ 的研究 [20] 类似想法,利用掩蔽注意层,其中每个节点仅关注其邻居,并将这些层与未掩蔽的注意层交错。
利用身体结构进行策略学习。一些研究已经探索图神经网络,将其作为一种获得适用于不同机器人形态的多任务强化学习策略的方法。早期的研究侧重于消息传递算法 [21, 22],后来被原始 transformer [23, 24] 和基于 transformer 的 GNN 所超越,这些 GNN 利用学习编码和注意偏差 [25]。所有这些方法都仅在模拟基准测试场景中进行演示,并未应用于现实世界的机器人环境。
本文工作专注于 Transformer 策略,该策略有望有效处理长序列依赖关系并无缝吸收大量数据。Transformer 架构 [5] 是为非结构化自然语言处理 (NLP) 任务开发的,例如语言翻译,其中输入序列通常映射到重新打乱的输出序列。相比之下,本文的 Body Transformer (BoT),是一种通过考虑机器人身体上传感器和执行器的空间位置来增强 Transformer 注意机制的架构。
BoT 将机器人身体建模为一个图,其节点上有传感器和执行器。然后,它在注意层应用高度稀疏的掩码,防止每个节点关注其直接邻居以外的内容。连接具有相同结构的多个 BoT 层,会导致在整个图中池化的信息,不会影响架构的表示能力。
本研究将智体实例建模为一个图,其节点是传感器和执行器,它们的连接边缘反映身体的形态。虽然消息传递 GNN 是适合此公式的归纳偏差,但它们往往会受到表示过度平滑和过度压缩的影响,从而阻碍有效的长距离交互并阻碍网络深度 [26]。
最近,自注意被提出作为消息传递的替代方案 [18, 23]。虽然标准的自注意机制相当于对全连接图进行建模,但流行的基于 Transformer GNN,即 Graphormer [18],通过基于图的位置编码 [27, 28, 18, 25] 和通过偏置尺度化点积来注入节点-边缘信息:
其中B是一个可学习矩阵,它依赖于图的特征,例如最短路径或邻接矩阵,并且可以灵活的方式有效地对图结构进行编码。
注意机制可以用二元掩码 M ∈ {0, 1}/n×n (其中 n 是序列长度)进行改变 [5],等效于替换公式(1)B 中的元素:
此操作实际上会将掩码 M 中用零表示的 Mi,j 对注意计算的贡献归零。
采用原始 Transformer 架构作为主干的机器人学习策略,通常会忽略具身结构提供的有用信息。相比之下,利用此结构为 Transformer 提供更强的归纳偏差,同时保留原始架构的表示能力。Body Transformer (BoT),基于掩码注意,在生成的架构每一层中,节点只能关注来自自身及其直接邻居的信息。因此,根据图结构的信息流,上游层根据局部信息进行推理,下游层池化来自较远节点的更多全局信息。
BoT 架构的整体示意图(以 Unitree A1 机器人为例)如图所示:Body Transformer (BoT) 是一种将物理智体视为图架构,这些传感器和执行器的是节点,边缘反映机器人身体的结构。BoT 利用掩码注意作为一种简单但灵活的机制,为策略提供身体-引导的偏差。BoT 架构的组件包括:(1)将感官输入投射到相应节点嵌入的一个token化器,(2)处理输入嵌入并生成相同维度输出特征的transformer编码器,以及(3)将特征解码为动作(或价值,用于 RL 评论家的训练)的去token化器。
Token化器。我们将观察向量映射到局部观察图。在实践中,我们将全局量分配给身体的根元素,将局部量分配给代表相应肢体的节点,类似于以前的 GNN 方法 [22、23、24、25]。然后,线性层将局部状态向量投影到嵌入向量中。每个节点的状态都被输入到其特定于节点的可学习线性投影中,从而产生 n 个嵌入序列,其中 n 表示节点数(或序列长度)。这与现有工作 [23、24、25] 形成对比,现有工作使用单个共享可学习线性投影来处理多任务 RL 中不同数量的节点。
BoT 编码器。用具有多层的标准 Transformer 编码器 [5] 作为主干,并展示架构的两种变型:
- BoT-Hard 使用二进制掩码 M 来掩码每一层,该掩码反映图的结构。具体来说,将掩码构造为 M = I/n + A,其中 I/n 是维度为 n 的单位矩阵,A 是与图相对应的邻接矩阵。具体来说,这允许每个节点关注自身及其直接邻居,并在问题中引入相当大的稀疏性,这从计算角度来看特别有吸引力。
- BoT-Mix 将具有掩码注意的层(构造方式与 BoT-Hard 相同)与具有非掩码注意的层交错。这与 Buterez [19] 中的并行工作类似,但有以下区别:I)在实验环境中将掩码注意层作为第一层更有效;II)掩码 M 不等同于邻接矩阵,允许节点在架构的每一层额外关注自身。
如图所示具身掩码的公式化。掩码 M 通过在具身图的邻接矩阵中添加 1 的一个对角线来构建。在这里,可视化任意智体实施的掩码 M 的一个简单示例,其中 n = 10。
去token化器。Transformer 编码器的输出特征被输入到线性层中,这些线性层将它们投射到与节点肢体相关的动作上,这些动作是根据相应执行器与肢体的接近程度来分配的。同样,这些可学习的线性投影层对于每个节点都是分开的。当 BoT 在 RL 设置中用作批评者架构时,去token化器输出的是价值而不是动作,然后跨身体部件平均。
BoT 架构在通过 MoCapAct 数据集 [29] 定义的身体-跟踪任务中模仿学习性能,该数据集包含带有动作标记的人形状态轨迹,转换次数超过 500 万次,共涵盖 835 个跟踪剪辑。对于每个架构,训练一个确定性行为克隆 (BC) 策略。评估按剪辑长度归一化的平均回报,以及按情节归一化的长度,当跟踪误差超过阈值时终止。对训练和(未见过的)验证剪辑都进行评估。
用 PPO [30] 在 Isaac Gym [31] 中的 4 个机器人控制任务上评估 BoT 和基线的 RL 性能:Humanoid-Mod、Humanoid-Board、Humanoid-Hill 和 A1-Walk。
所有人形机器人环境都建立在 Isaac Gym 中的经典人形机器人环境之上,修改观察空间以增加分布式感官信息的数量并包括所有肢体的接触力。Humanoid-Mod 的特点是在平地上进行经典的跑步任务,而在 Humanoid-Hill 中,用不规则的丘陵地形取代平地。Humanoid-Board 是一项新设计的任务,其中的任务是让机器人在圆柱体顶部的木板上保持平衡。最后,调整 A1-Walk 环境,它是 Legged Gym 存储库 [32] 的一部分,其中的任务是让 Unitree A1 四足机器人遵循固定速度命令。
Isaac Gym 模拟运动环境因无需在现实世界中进行调整而广泛用于 RL 策略的模拟-到-现实迁移 [32]。为了验证BoT 架构是否适用于现实世界的应用(例如实时运行),将上述训练的 BoT 策略之一部署到现实世界的 Unitree A1 机器人,并调整了 Zhuang [33] 和 Wu [34] 中的代码库。
遵循简单的规则将观察和动作分配给图的不同节点,每个节点代表一个机器人肢体,并映射到掩码 M 的一行(或一列)。区分两种类型的节点:
- 根节点,为其分配全局观察(例如,机器人位置和方向)和环境观察(例如,门把手角度等)。
- 非根节点,为其分配局部观察(例如,关节角度)和局部动作(例如,关节命令)。
根据经验法则,跨越多个节点的观察或动作被分配给这个图中最近的节点,或分配给所涉及的任一节点。