详解VLN
- 动机:
- 流程
- 拓扑图
- Text Encoder
- Coarse-scale Cross-modal Encoder
- Node embedding
- Graph-aware cross-modal encoding
- Global action prediction
- Fine-scale Cross-modal Encoder
- Visual Embedding
- Fine-grained cross-modal reasoning
- Local action prediction and object grounding.
- Dynamic Fusion
- Training and Inference
- Pretraining
- 推理
- other Q&A
- 补充材料
本文以《Think Global, Act Local: Dual-scale Graph Transformer for Vision-and-Language Navigation》为例,详细解释了visual language navigation流程
项目地址:https://cshizhe.github.io/projects/vln_duet.html
数据增强的扩展任务:https://github.com/shonnon-zxs/HM3DAutoVLN
动机:
本文首先分析了基于graph的VLN方法和HAMT模型的缺点(HAMT是本文之前的sota模型)
HAMT模型虽然在每一步都记忆了当前和历史访问过的视觉信息但是,只能在局部做出行为决策(预测action),而基于graph的方法是对所有访问过的节点建立一个map,使得agent能够进行全局的决策,但仍然具有两个缺点:一是依赖于循环架构进行导航阻止了长期探索的能力,(不记忆是否访问过,访问过的节点还可能再次访问),另一方面是节点的视觉特征过于简单,虽然会降低复杂性,但也会忽略一些object的信息。
本文提出了双尺度的规划导航方法,双尺度指的是进行全局的粗粒度的规划 和 局部的细粒度的预测。
(当前节点信息没做处理,全局和局部的推理还是有gap的,因为DUET动态进行local和global的action是分开的并没有融合)
流程
-
根据observation构造以自我为中心的map,
这个map是包括访问过的的点边得信息,这些蓝色的点表示可导航点,黄色的点表示访问过的点,红色的点表示当前node,边是距离无向的, -
根据当前节点进行局部行为预测
-
动态融合局部和全局的预测目标导航点之后
-
根据弗洛伊德全局的最短路径做出location action,到达新的节点,不重复访问
-
如果做出的是停止动作,或者没有vp剩余,或者达到了最大值(15)则下一步停止
拓扑图
代理可以访问已访问节点(黄色)和当前节点(红色)的全景视图。可导航节点(蓝色)未经探索,仅从已访问的位置部分观察到,因此,它们具有不同的视觉表示。
在每一步中,agent接收节点Vt的图像特征Rt和对象特征Ot。使用多层transformer进行视觉编码,然后再进行池化vi(即不带圈的红色node)。对于可导航点仅仅保留在Vt位置能观察到的部分view,如果能够从多个节点观察到,就进行平均
为了进行细粒度的推理,作者还保留当前的节点没有池化的特征(红色带圈的node),这个节点包括r1到 r n个view和om个object,r0表示停止
Text Encoder
使用transform编码的文本指令表示为
Coarse-scale Cross-modal Encoder
Node embedding
node = visual+location+step (所有的位置编码信息都是相对与当前的节点方向和距离),step编码为访问节点嵌入最近访问的时间步骤, 0表示没有访问过的节点。v0表示为停止的节点
Graph-aware cross-modal encoding
等式2中的标准注意力,只考虑节点之间的视觉相似性,因此它可能会忽略附近的节点,这些节点比远处的节点更相关。
其中X表示节点表示,E是从Et获得的成对距离矩阵,We,be是两个可学习的参数。我们在编码器中堆叠N个层,并将节点Vi的输出嵌入记为vëi.
Global action prediction
预测在构建的图中每个节点的分数,
s
0
c
s^c_0
s0c表示stop的分数
note:访问过的节点不重新访问(访问过的分数设为0)
Fine-scale Cross-modal Encoder
Visual Embedding
在粗粒度的编码中,添加的节点位置编码信息是相对于当前节点的方向和距离
而在细粒度的编码中,作者添加了两种位置类型(相对的,和相对于起点的,即绝对的)
Fine-grained cross-modal reasoning
使用注意力机制建模视觉和语言指令的关系
Local action prediction and object grounding.
类似于公式5,在局部导航空间预测导航分数,
局部的动作空间是{stop,}
$s^f_i in ,
N
(
V
t
)
N(V_t)
N(Vt)表示当前的临节点,
到底是节点还是view
Dynamic Fusion
这个是有问题的,局部和全局预测空间融合,但是预测空间不一致呀
全局和局部的预测空间不一致,维度不相同,无法进行全局预测(局部辅助全局,主要还是全局预测),
s
t
o
p
,
N
(
V
t
)
{stop, N(V_t)}
stop,N(Vt)表示当前节点和当前节点可导航节点,
为了导航到未与当前节点连接的其他未探索节点,代理需要回溯到其相邻的访问节点。
也就是除了t步周围的可导航点,其他的点(访问过的点和不相邻的点(其他的蓝色的点))都设为
s
b
a
c
k
s_{back}
sback, 也就是
N
(
V
t
)
N(V_t)
N(Vt)上访问过的和(0或者说是负无穷)
在每一步中,我们将来自粗尺度编码器的
v
^
0
\hat{v}_0
v^0 和来自细尺度编码器的
r
^
0
\hat{r}_0
r^0 连接起来,以预测用于融合的标量:
σ
t
σ_t
σt其实可以理解为stop的分数,越大说明越应该在当前位置停止,越相信全局的分数。
在test的时候选择最大的分数作为选择下一个行动
由上面的描述可发现,无论全局还是局部,最终是选择可导航点,
局部的预测是对n个view都输出一个预测分数,只保留可导航节点的预测分数
Training and Inference
Pretraining
masked language modeling (MLM) [28], masked region classification (MRC) [48], single-step action prediction (SAP) [15] and object grounding (OG) [49] if object annotations are available.
pid也就是说,at不是gtaction而是按照预测概率采样的at,
这意味训练时每一步都要预测一个object
推理
在测试过程中的每个时间步骤,我们更新第3.1节中介绍的拓扑图,然后预测第3.2节中解释的全局动作。如果是导航动作,则在给定地图的情况下,最短路线规划模块采用Floyd算法来获得从当前节点到预测节点的最短路径,否则代理停止在当前位置。如果代理超过最大操作步骤,则会强制停止。在这种情况下,它将返回到具有最大停止概率的节点作为其最终预测。在停止的位置,代理选择具有最大对象预测得分的对象。
other Q&A
预测的时候是根据最后一步选择object