经典文献阅读之--ViNT(视觉导航的基础模型)
0. 简介
通用预训练模型(“基础模型”)使得从业者能够为单个机器学习问题生成可推广的解决方案,而所需的数据集规模显著小于从零开始学习所需的数据集。这类模型通常在大型且多样化的数据集上进行训练,采用弱监督学习,消耗的训练数据远超任何单一下游应用所能获得的数据。在本文中,我们描述了视觉导航变换器(Visual Navigation Transformer,ViNT),这是一个旨在将通用预训练模型的成功应用于基于视觉的机器人导航的基础模型。ViNT以通用的目标达成目标进行训练,可以与任何导航数据集配合使用,并采用灵活的基于变换器的架构来学习导航能力,从而高效适应多种下游导航任务。ViNT在多个现有导航数据集上进行训练,这些数据集包含来自不同机器人平台的数百小时的机器人导航数据,并展现出积极的迁移能力,超越了在更窄数据集上训练的专业模型。ViNT可以通过基于扩散的目标提议来增强,以探索新环境,并在配备长距离启发式算法时解决公里级导航问题。ViNT还可以通过一种受提示调优启发的技术适应新的任务规范,其中目标编码器被替换为嵌入在相同目标令牌空间中的另一任务模态的编码(例如,GPS航点或逐步导航指令)。这种灵活性和适应多种下游问题领域的能力使ViNT成为移动机器人领域中一个有效的基础模型。公里级探索。相关的代码在:Github中可以找到。
1. 主要贡献
在本文中,我们将机器人基础模型定义为一种预训练模型,该模型可以在新颖且有用的环境中(例如,不同的传感器、机器人形态、环境等)进行零样本部署,并且可以适应所选择的下游任务(例如,不同的目标、目标规范类型、行为等)。为此,我们提出了视觉导航变换器(Visual Navigation Transformer,ViNT):一个具有强大零样本泛化能力的跨形态基础模型,用于视觉导航。我们训练ViNT以达到由摄像头图像指定的目标,提供一个非常通用的预训练目标,可以应用于几乎任何移动机器人数据集。我们提出了一种新颖的探索算法,利用扩散模型来提出短期目标,并证明它使ViNT能够在新环境中进行导航。ViNT能够在零样本情况下控制新机器人,探索以前未见的环境,执行室内映射,并在不需要干预的情况下导航于公里级的户外环境。此外,我们展示了ViNT可以在少量数据上进行微调,以实现与新的任务规范模态(如GPS航点或高级路线指令)相结合的高性能,从而使ViNT成为多种导航应用的基础。最后,我们对ViNT所展现的一些新兴行为进行了定性分析,例如隐含偏好和在动态行人周围的导航。
2. ViNT模型
我们的模型经过训练,旨在实现图像目标导航,提供通用的导航能力,这些能力可以直接使用,或作为下游任务特定微调的预训练基础。在图像目标导航任务中,机器人被要求导航到由图像观察 sss 指定的子目标(即,机器人在目标处的观察)。与其他目标指定机制(如 PointGoal [31]、GPS导航或语义目标 [32])不同,图像目标导航模型可以在最小假设的情况下进行训练,利用任何包含视频和动作的数据,而不需要真实定位、语义标签或其他元数据的要求。这使得在来自不同机器人的大规模多样化数据集上进行训练变得可行,从而促进了广泛的泛化能力。
ViNT 接收当前和过去的视觉观察 ot−P:to_{t-P:t}ot−P:t 以及子目标图像 oso_sos 作为输入,并预测 (i) 到达子目标所需的时间步数(动态距离),以及 (ii) 一系列长度为 HHH 的未来动作,指向子目标。我们的 3100 万参数模型 ViNT 基于 Transformer 架构 [33],并针对以下目标进行了优化:(i) 在资源受限的机器人上实现快速高效的推理,以及 (ii) 能够为下游任务进行提示和微调。我们从头开始初始化所有网络,并通过方程 (1) 中的训练目标进行端到端训练。模型架构在图 2 中进行了总结。
图 2:ViNT 模型架构。ViNT 使用两个 EfficientNet 编码器 ψ\psiψ 和 ϕ\phiϕ 来生成输入标记,供 Transformer 解码器使用。生成的序列被连接在一起,并通过一个全连接网络,以预测到达目标的(时间)距离以及一系列 H=5H = 5H=5 的未来动作。
2.1 标记化
ViNT 架构(图 2)首先将其输入标记化为大小为 dmodel=512d_{model} = 512dmodel=512 的嵌入。ViNT 独立地通过使用 EfficientNet-B0 [34] 模型对当前和 P=5P = 5P=5 个过去的视觉观察进行标记化,该模型以 85×64×385 \times 64 \times 385×64×3 的图像作为输入,并从最终卷积层 [30] 输出一个扁平化的特征向量 ψ(oi)\psi(o_i)ψ(oi)。
目标融合:我们发现,简单地使用 EfficientNet 编码器 ϕ\phiϕ 从目标图像 ϕ(os)\phi(o_s)ϕ(os) 中提取特征会导致性能不佳,往往完全忽略目标。我们假设,对于基于图像的目标到达任务,有效特征通常是相对的,编码当前观察与目标之间的差异,而不是目标本身的绝对表示。因此,我们使用一个单独的目标融合编码器 ϕ(ot,os)\phi(o_t, o_s)ϕ(ot,os) 来联合编码当前和目标观察。我们将两幅图像沿其通道维度堆叠,通过第二个 EfficientNet-B0 编码器传递,并扁平化以获得目标标记。
2.2 Transformer
P+2P + 2P+2 个观察和目标标记与位置编码结合,并输入到 Transformer 主干 fff 中。我们使用一个仅解码的 Transformer,具有 nL=4n_L = 4nL=4 个多头注意力块,每个块有 nH=4n_H = 4nH=4 个头和 dFF=2048d_{FF} = 2048dFF=2048 个隐藏单元。
2.3 训练目标
在训练过程中,我们首先从数据集 DDD 中抽取一个小批量的轨迹 τ\tauτ。接着,我们选择 PPP 个连续的观测值来形成时间上下文 ot:t−Po_{t:t-P}ot:t−P,并随机选择一个未来观测值 os:=ot+do_s := o_{t+d}os:=ot+d,其中 ddd 从 [lmin,lmax][l_{min}, l_{max}][lmin,lmax] 中均匀抽样,以作为子目标 [35]。相应的 HHH 个未来动作 a^:=at:t+H\hat{a} := a_{t:t+H}a^:=at:t+H 和距离 ddd 被用作标签,并通过最大似然目标进行训练:
LViNT(ϕ,ψ,f)=EτEtEd[logp(a^∣f(ψ(o)t:t−P),ϕ(ot,os))+λlogp(d∣f(ψ(o)t:t−P),ϕ(ot,os))](1)L_{ViNT}(\phi, \psi, f) = \mathbb{E}_{\tau} \mathbb{E}_{t} \mathbb{E}_{d} \left[ \log p(\hat{a} | f(\psi(o)_{t:t-P}), \phi(o_{t}, o_{s})) + \lambda \log p(d | f(\psi(o)_{t:t-P}), \phi(o_{t}, o_{s})) \right] \tag{1}LViNT(ϕ,ψ,f)=EτEtEd[logp(a^∣f(ψ(o)t:t−P),ϕ(ot,os))+λlogp(d∣f(ψ(o)t:t−P),ϕ(ot,os))](1)
2.4 部署
ViNT 可以在任何配备有机载摄像头和低级速度跟踪控制器的机器人上运行。给定时间 ttt 的子目标图像 sss,我们以 4Hz 的频率运行模型,并使用 PD 控制器以递归视野的方式跟踪预测的航点 a^\hat{a}a^。
2.5 训练数据
我们使用来自多样化环境和具有不同动态、摄像头参数及行为的机器人平台的大规模异构导航轨迹数据集来训练 ViNT。训练数据集包含超过 100 小时的真实世界轨迹,完全来源于现有数据集,涵盖 8 种不同速度和动态的机器人平台。有关数据集的更多详细信息,请参见附录 C。为了考虑机器人速度和尺寸的巨大差异,我们通过根据机器人的最高速度对这些航点进行缩放来进行归一化。在部署过程中,使用特定于机器人的控制器对这些航点进行反归一化并使用低级控制进行跟踪。
2.6 与具体实现无关的动作空间
为了有效地在不同大小、速度和动态的机器人之间训练单一模型,我们遵循 Shah 等人的方法 [19],为 ViNT 选择一个与具体实现无关的动作空间。为了抽象低级控制,ViNT 使用相对航点作为其动作空间 a^\hat{a}a^,其中 ϕ,ψ,f\phi, \psi, fϕ,ψ,f 如上所定义,λ\lambdaλ 用于平衡这两个损失。
3. 长期导航与 ViNT
尽管 ViNT 学习的目标条件策略捕捉了对导航可行性和障碍物的一般理解,但其独立应用的局限性较大。许多实际任务要么并未通过目标图像来定义,要么需要比 ViNT 直接支持的更长的时间范围。我们通过将 ViNT 与由拓扑图形成的情节记忆相结合,应用于多个下游任务,从而为到达远处位置提供短期子目标。在之前未见过的环境中,我们可以进一步增强这种基于图的规划器,通过探索性子目标提案,驱动 ViNT 探索新环境并发现通往目标的路径。我们考虑了多种此类提案机制,发现通过一个图像扩散模型来采样多样化的未来子目标候选,条件是当前观测值,从而实现最佳性能。
这些子目标通过目标导向启发式评分,以识别出最佳子目标,从而朝着目标取得进展,采用的过程类似于物理 A* 搜索 [29]。环境中的过去观测和未探索的边界被存储为拓扑图中的节点,其连通性由 ViNT 预测的距离决定。在探索过程中,我们在机器人探索环境时动态构建这个拓扑图。在后续的部署中,它可以用于发现通往环境中任意目标的捷径。我们首先描述在子目标候选之上进行规划的高层算法,然后讨论获取这些子目标候选的过程。
3.1 高层规划与探索
假设我们可以访问到可供 ViNT 进行规划的子目标候选 osi∈So_{s_i} \in Sosi∈S。我们将这些子目标候选纳入一个探索框架,以实现对新环境的目标导向探索,其中用户提供一个高层目标 GGG,该目标可以是任意远的。我们在很大程度上遵循了之前的工作 [29],但将学习模型替换为 ViNT 和扩散模型。我们在此总结系统,并在附录 B.3 中提供更完整的讨论。
我们在线构建一个拓扑图 MMM,作为情节记忆,每个节点代表一个独立的子目标观测,边表示两个子目标之间的路径,当机器人走过**该路径或模型预测某个子目标可以从另一个节点到达时,便会添加这些边。**我们将目标导向探索框架视为一个搜索问题,机器人在寻找目标的同时逐步构建 MMM。为了引导搜索朝向目标,机器人使用目标导向启发式函数 h(ot,osi,G,M,C)h(o_t, o_{s_i}, G, M, C)h(ot,osi,G,M,C) 来根据子目标候选到达目标的可能性进行评分,考虑到额外的上下文 CCC——例如,平面图或卫星图像 [15, 29]。该启发式函数可以是几何的(例如,欧几里得距离)或学习得到的(见附录 B.3)。
在新环境中的部署过程中,机器人使用扩散模型从 oto_tot 生成子目标候选 SSS,利用 ViNT 进行空间定位,并使用目标导向启发式函数 h(.)h(.)h(.) 对其进行评分。然后,机器人根据该启发式函数使用类似 A* 的规划器选择最佳子目标 os∗o_{s^*}os∗,将其添加到 MMM 中,并利用 ViNT 驱动朝向该子目标(见图 3)。在同一环境中的后续部署中,机器人可以利用 MMM 发现通往环境中任意目标的捷径。有关规划器和启发式函数的更多细节,请参见附录 B.3。在我们的实验中,我们考虑了两种候选搜索启发式:一种基于机器人和目标位置的几何启发式,另一种基于卫星图像形式的额外上下文的学习启发式。
图 3:在未知环境中使用 ViNT 进行长距离导航。我们采用基于拓扑图的规划器进行物理搜索,以探索环境。图像到图像的扩散模型提出多样化的探索目标,这些目标通过 ViNT 进行空间定位(黄色),并使用目标导向启发式函数 hhh 进行评分。子目标被添加到拓扑图 MMM 中,并通过 ViNT 策略执行。
3.2 使用扩散模型生成子目标
上述物理搜索算法依赖于提出多样化且可达的子目标候选集 SSS 的能力,这些子目标必须能够从机器人当前的观察 oto_tot 中获取。这相当于从高维、多模态的 RGB 图像分布中进行采样。
为此,我们在 ViNT 训练数据上训练了一个条件生成模型 g(osi∣ot)g(o_{s_i} | o_t)g(osi∣ot)。具体而言,我们应用了一种图像到图像的扩散模型 [38, 39],这是一类非常适合于在高维空间(如 RGB 图像)中生成多样化样本的生成模型。我们使用来自 ViNT 数据集中轨迹的随机采样未来观察来训练该模型(见附录 B.2),并在推理时从模型中采样 KKK 个子目标候选集 S={s1,…,sK}S = \{s_1, \ldots, s_K\}S={s1,…,sK}。
然而,这些子目标的生成并未在空间上得到定位:它们并未与 oto_tot 形成可操作的关系。我们通过使用 ViNT 计算时间距离 d(si,ot)d(s_i, o_t)d(si,ot) 和动作展开 a(si,ot)a(s_i, o_t)a(si,ot) 来对这些候选目标进行定位,从而得到一组已定位的子目标,如图 6 所示。尽管扩散模型生成的样本不一定与任何真实观察相匹配(见图 3),但它们保留了足够的相对特征,使其看起来合理,并且我们发现 ViNT 对生成的子目标具有良好的泛化能力。我们将在第 6.5 节进一步研究该扩散模型的行为。
图 6:在具有挑战性的室内环境中,使用 Vizbot(上)和 LoCoBot(下)机器人平台可视化 ViNT 探索的展开过程。通过对子目标候选集进行空间定位获得的未来动作样本 a^\hat{a}a^ 以黄色显示,与最佳候选相对应的最佳动作则用蓝色标记。
4. ViNT:一种用于下游任务的基础模型
除了作为图像目标条件模型的核心功能外,我们展示了 ViNT 学习到的强导航先验可以通过在新环境中或使用新数据模态对模型的部分或全部进行微调,适应多种下游任务,超越仅仅导航到图像目标的范围。
4.1 全模型微调
虽然 ViNT 在新环境和机器人上表现出强大的零-shot 泛化能力,但我们可以通过使用任务数据对整个模型进行微调,以相同的目标进一步提高任务性能。这使得 ViNT 能够快速学习新技能,形成一个不断改进的模型。ViNT 可以在仅需 1 小时的导航数据的情况下掌握新环境和新实现,将原始模型的能力转移到新设置中,而无需从头开始重新训练。
图5:ViNT在室内和室外环境中实现了多种目标的长时间导航;此处可视化了从起点(橙色)到目标(绿色)的示例轨迹。通过目标导向的启发式方法(可选地由卫星图像引导),可以实现目标到达行为,而去除该启发式方法则允许进行无目标的探索,以最大限度地覆盖工作空间。
4.2 适应新模态
虽然指定图像目标提供了一般的预训练目标,但 ViNT 可以通过学习从所需目标模态到 ViNT 目标标记的“软提示”映射,轻松适应其他常见的目标指定形式。我们基于 Transformer 架构在共享标记空间中关注多模态输入的能力进行构建。给定新模态中的子目标 σ\sigmaσ(例如 2D 坐标或高层次的路由指令),我们训练一个小型神经网络 ϕ~\tilde{\phi}ϕ~,将子目标映射到这个共享标记空间,如图 4 所示,并替换 ϕ(ot,os)\phi(o_t, o_s)ϕ(ot,os)。我们使用修改后的目标对 ViNT 进行任务数据 DFD_FDF 的微调:
Ladapt=Eτ∈DFEtEdlogp(a^∣f(ψ(o)t:t−P,ϕ~(σ))+λlogp(d∣f(ψ(o)t:t−P,ϕ~(σ))L_{adapt} = \mathbb{E}_{\tau \in D_F} \mathbb{E}_{t} \mathbb{E}_{d} \log p(\hat{a} | f(\psi(o)_{t:t-P}, \tilde{\phi}(\sigma)) + \lambda \log p(d | f(\psi(o)_{t:t-P}, \tilde{\phi}(\sigma))Ladapt=Eτ∈DFEtEdlogp(a^∣f(ψ(o)t:t−P,ϕ~(σ))+λlogp(d∣f(ψ(o)t:t−P,ϕ~(σ))
这使得在最小数据的情况下适应新任务,同时仍然利用 ViNT 的性能和泛化能力。附录 B.4 包含更多细节。
图4:通过新的可调目标标记将ViNT适应于不同的目标。
5. 参考链接
https://github.com/jeffersonHsieh/T2R-Project
https://github.com/robodhruv/visualnav-transformer
https://github.com/RobotecAI/visualnav-transformer-ros2