【视觉语言导航】VLN辅助任务:MLM、SAP、SAR、SPREL——预训练、微调中常用的提点策略
【VLN入门介绍】
一文搞懂视觉语言导航,从任务介绍到基本算法讲解:https://blog.csdn.net/qq_50001789/article/details/144676313
【VLN论文笔记】
DUET(CVPR2022),首篇使用Transformer来建模全局图节点相关性的工作:https://blog.csdn.net/qq_50001789/article/details/144632851
AZHP(CVPR2023),使用自适应区域分层规划器来实现层次化导航的目的:https://blog.csdn.net/qq_50001789/article/details/144635128
GridMM(ICCV2023),使用网格记忆图来表征历史轨迹中的场景空间关系:https://blog.csdn.net/qq_50001789/article/details/144652403
【VLN辅助任务】
MLM、SAP、SAR、SPREL——预训练、微调中常用的提点策略:https://blog.csdn.net/qq_50001789/article/details/144633984
【VLN环境配置】
Matterport3DSimulator——用于视觉语言导航算法研发的仿真环境配置:https://blog.csdn.net/qq_50001789/article/details/142621259
MLM——文本掩码建模
出处:《Towards Learning a Generic Agent for Vision-and-Language Navigation via Pre-training》,CVPR2020
全称:Masked Language Modeling
介绍:以
15
%
15\%
15%的概率随机屏蔽掉指令中的单词,并且用特殊标记
[
m
a
s
k
]
[mask]
[mask]替换掉被屏蔽的单词
x
i
x_i
xi,之后通过路径中的观测图像序列
x
x
x和周围的单词
x
\
i
x_{\backslash i}
x\i来预测这些被屏蔽掉的单词,利用负对数似然来优化模型参数:
L
M
L
M
=
E
log
p
(
x
i
∣
x
\
i
,
s
)
\mathcal L_{MLM}=\mathbb E \log{p(x_i|x_{\backslash i}, s)}
LMLM=Elogp(xi∣x\i,s)
这类似于BERT中的完形填空任务,从周围的单词恢复被屏蔽的单词,但是需要额外的图像信息。这一预训练策略有助于将所学到的单词编码嵌入到视觉状态的上下文中,也就是可以对齐图像和文本特征。
实现方法:在不大幅度改动网络架构、网络参数的同时,引入少量的参数,完成文本的预测(至少要加一个BertLMPredictionHead预测头),同时,优化所预测的文本,尽量可以更新所有的模块参数,也就是要尽可能利用所有的前向传播分支。
举例:以DUET算法为例,模型共有两个分支,全局分支和局部分支,这两个分支的特征都是以图像为主的特征,不能直接用于预测文本,不然会破坏原始模型的结构。在这里,需要额外引入一个交叉注意力,将图像特征反向融入文本特征中,得到全局、局部文本特征,之后融合成一组文本特征(做加法),再传入Bert预测头,预测文本,最后再利用预测的文本计算损失,优化模型参数,最终完成预训练任务。
SAP和SAR
出处:《History Aware Multimodal Transformer for Vision-and-Language Navigation》,NIPS2021
介绍:VLN任务是利用模仿学习来基于指令、专家演示的历史和当前的观测预测下一个动作,作者将其分别表述为分类任务和回归任务。
SAP——单步动作预测
全称:Single-step Action Prediction
介绍:在SAP分类任务中,作者预测了
O
t
c
\mathcal O^c_t
Otc中每个可导航视图的动作概率,即:
p
t
(
o
i
′
)
=
exp
(
f
S
A
P
(
o
i
′
⊙
x
c
l
s
′
)
)
∑
j
exp
(
f
S
A
P
(
o
j
′
⊙
x
c
l
s
′
)
)
p_t(o'_i)=\frac{\exp{(f_{SAP}(o'_i\odot x'_{cls}))}}{\sum_j{\exp{(f_{SAP}(o'_j\odot x'_{cls}))}}}
pt(oi′)=∑jexp(fSAP(oj′⊙xcls′))exp(fSAP(oi′⊙xcls′))
其中
f
S
A
P
f_{SAP}
fSAP是一个两层全连接网络,
⊙
\odot
⊙表示点乘,
x
c
l
s
′
x'_{cls}
xcls′表示特殊文本token
[
c
l
s
]
[cls]
[cls]的输出编码,优化目标是最小化目标视图动作
o
∗
′
o'_*
o∗′的负对数概率:
L
S
A
P
=
−
log
p
t
(
o
∗
′
)
L_{SAP}=-\log p_t(o'_*)
LSAP=−logpt(o∗′)
实现方法:对每个节点特征(或视图特征)接一个分类器头,每个节点(视图)特征输出一个数值(
d
i
m
f
→
1
dim_f\rightarrow1
dimf→1),用于表示当前节点(视图)是否有动作。其实本质上就是模仿学习,对动作做分类,利用分类损失优化网络参数。
SAR——单步动作回归
全称:Single-step Action Regression
介绍:在回归任务中,作者基于文本token
[
c
l
s
]
[cls]
[cls]直接预测动作航向和仰角,
θ
^
t
,
ϕ
^
t
=
f
S
A
R
(
x
c
l
s
′
)
\hat{\theta}_t,\hat{\phi}_t=f_{SAR}(x'_{cls})
θ^t,ϕ^t=fSAR(xcls′),损失函数可以表示为:
L
S
A
R
=
(
θ
^
t
−
θ
t
)
2
+
(
ϕ
^
t
−
ϕ
t
)
2
L_{SAR}=(\hat{\theta}_t-\theta_t)^2+(\hat{\phi}_t-\phi_t)^2
LSAR=(θ^t−θt)2+(ϕ^t−ϕt)2
SAP和SAR两个辅助任务能够学习如何根据指令和上下文历史信息做出动作决策。
SPREL——空间关系预测
全称:Spatial Relationship Prediction
介绍:以自我为中心和非中心空间关系的表达经常出现在导航指令中,比如“走进你左边的房间”和“进入楼梯旁边的卧室”(也就是相对自我的空间位置和相对物体A的空间位置),为了学习这种空间关系感知能力,作者提出了SPREL自监督任务,仅基于视觉特征、角度特征(或同时基于视觉和角度特征)来预测全景图中两个视图的相对空间位置,假设
[
v
i
o
;
a
i
o
]
[v^o_i;a^o_i]
[vio;aio]和
[
v
j
o
;
a
j
o
]
[v^o_j;a^o_j]
[vjo;ajo]为
O
t
\mathcal O_t
Ot中的两种视图特征(
v
v
v表示图像特征,
a
a
a表示角度特征),作者随机以0.3的概率将
v
∗
o
v^o_*
v∗o或
a
∗
o
a^o_*
a∗o归零,他们的编码表征分别为
o
i
′
o'_i
oi′和
o
j
′
o'_j
oj′,相对航向角和仰角分别为
θ
i
j
\theta_{ij}
θij和
ϕ
i
j
\phi_{ij}
ϕij,之后,我们预测
θ
^
i
j
\hat{\theta}_{ij}
θ^ij和
ϕ
^
i
j
\hat{\phi}_{ij}
ϕ^ij:
θ
^
i
j
,
ϕ
^
i
j
=
f
S
P
R
E
L
(
[
o
i
′
;
o
j
′
]
)
\hat{\theta}_{ij},\hat{\phi}_{ij}=f_{SPREL}([o'_i;o'_j])
θ^ij,ϕ^ij=fSPREL([oi′;oj′])
其中
[
;
]
[;]
[;]表示拼接两个向量,优化目标可以表示为:
L
S
P
R
E
L
=
(
θ
^
i
j
−
θ
i
j
)
2
+
(
ϕ
^
i
j
−
ϕ
i
j
)
2
L_{SPREL}=(\hat{\theta}_{ij}-\theta_{ij})^2+(\hat{\phi}_{ij}-\phi_{ij})^2
LSPREL=(θ^ij−θij)2+(ϕ^ij−ϕij)2
这一优化目标可以帮助智能体理解观测图像的空间关系。
以上内容仅是笔者的个人见解,若有问题,欢迎指正。