赞
踩
暑假抽空回了趟家,把一些书都带回来了。就是可惜准备了大半年的 2023CSC 申请给我拒了,吐槽下一点原因都没啊,也是醉了。那就准备毕业吧,此处不留爷自有留爷处。
参数高效微调 Parameter Efficient Tuning (PET) 在减少参数量的同时又能保有 SOTA 的性能,提供了友好的硬件资源。然而很少有研究关注稠密预测任务及多模态间的交互。本文研究指代图像分割 referring image segmentation RIS 中的高效参数微调问题。提出了一种自适应器 Bridger ,促进跨模态信息交换以及整合特征任务的信息到预训练模型中。同时设计了一种轻量化的解码器用于图像分割。实验效果很好。
指代图像分割 Referring image segmentation (RIS) 的定义,与语义分割的区别,与开放世界词汇的联系。
最近微调通用预训练模型的方法效果很好,但是在很多场景中难以部署。于是本文提出问题:模型能够在保留预训练 Backbone 性能的情况下能否固定住 Backbone 的权重。有大量的参数有效性训练方法已经实现了参数效率和性能间的平衡,然而大多数方法受限于单个任务或简单的分类任务,很少有关注于稠密预测任务及不同模态间的交互。
本文旨在调整预训练的视觉-语言模型用于 RIS,同时在性能可以打平微调的方法。
如上图所示,首先引入一个附加的 Bridger 网络,无需预训练,可以无缝地整合到预训练模型的原始结构中。在 Bridger 中,引入特定视觉的引导 bias 来促进双编码器间的交互。Bridger 有两个模块,空间先验模块用于从特征图的中间层捕捉局部语义;跨模态注意力使得两种模态的信息进行交互。其次,设计了一种轻量化的特征任务解码器用于 RIS 分割,同时进一步对齐视觉和语言特征。在这一框架下,Backbone 网络能够用任何预训练在视觉语言数据集上的网络来代替,本文选用 CLIP 作为视觉语言编码器。贡献总结如下:
利用统一的表示用于视觉语言建模从而解决视觉-语言任务。通常可以划分为两种类型:单流、双流。前者使用融合模块进行视觉语言 embedding 交互,后者使用对比学习来对齐视觉语言 embedding。本文关注于双流模型,设计微调方法。
当迁移到下游任务时,PET 旨在减少预训练模型中的可训练参数量。相比于微调,PET 保留了整个模型的性能用于特定任务,同时更容易部署。最近的方法可以划分为三种类型:1、更新新添加的模块参数或者输入,类似于 Adapter、Prefix-tuning 和 Prompt tuning。2、稀疏地更新一些模型的参数,类似 Bit-Fit 和 Diff Pruning。3、低秩重参数化模型权重,类似于 LoRA、Compacter 和 Consolidator。然而大多数方法仅关注于分类和一般的任务,而忽视了稠密预测任务,类似多模态任务中的分割。本文通过设计多模态自适应模块来增强预训练视觉语言模型中两个解码器的交互,从而促进下游任务中的迁移效率。
早期的工作主要是基于 CNN-LSTM 的方法,例如 RRN 和 RMI。随着 Transformer 的发展,很多工作开始探索注意力机制,例如 MDETR、VLT、CRIS、PCAN。而本文关注于使用参数有效性方法来融合与对齐不同模态的特征。
分别通过图像和文本编码器提取特征,而这两个编码器的参数在微调过程中被冻结住。
给定输入图像 I ∈ R H × W × 3 I\in R^{H\times W\times3} I∈RH×W×3,从图像编码器的中间层提取特征。对于 CNN 编码器,例如 ResNet,将最后 N − 1 N-1 N−1 阶段的视觉特征定义为 F v i F_v^i Fvi, i ∈ { 2 , … , N } i\in\{2,\ldots,N\} i∈{2,…,N}。对于 vision Transformer,例如 ViT,将 ViT 的 Transformer 编码器划分为 N N N 个 blocks,每个包含 L / N L/N L/N 个编码器层,利用最后 N − 1 N-1 N−1 个 blocks的输出进行特征交互。这些提取出的特征作为 Bridger 和 解码器的输入,用于多模态特征对齐。
对于输入的指代表达式 T T T,利用 Bert 来提取文本特征。将 Transformer 编码器划分为 N N N 个 blocks,提取特征 F t i ∈ R L × C F_t^i\in R^{L\times C} Fti∈RL×C, i ∈ { 2 , … , N } i\in\{2,\ldots,N\} i∈{2,…,N},其中 C C C 为特征维度, L L L 是表达式的长度。加上 [SOS] 和 [EOS] tokens 后,Transformer 最后一层 [EOS] token 的激活值进一步用于产生文本的全局表示 F s ∈ R C ′ F_s\in R^{C^{\prime}} Fs∈RC′,其中 C ′ C^{\prime} C′ 为特征维度。
提出视觉-语言交互模块,即 Bridger,处理图像和文本编码器的中间特征。
给定多个视觉特征
F
v
i
F_v^i
Fvi,
i
∈
{
2
,
…
,
N
}
i\in\{2,\ldots,N\}
i∈{2,…,N} 和语言特征
F
t
i
F_t^i
Fti,
i
∈
{
2
,
…
,
N
}
i\in\{2,\ldots,N\}
i∈{2,…,N}。首先通过 Zoom Layer (ZL) 调整其特征维度:
F
^
v
i
=
Z
L
i
n
(
F
v
i
)
F
^
t
i
=
Linear
(
F
t
i
)
f
^
v
i
=
ITA
(
f
^
v
i
−
1
+
F
^
v
i
,
f
^
t
i
−
1
+
F
^
t
i
)
f
^
t
i
=
ITA
(
f
^
t
i
−
1
+
F
^
t
i
,
f
^
v
i
−
1
+
F
^
v
i
)
f
v
i
=
Z
L
o
u
t
(
f
^
v
i
)
f
t
i
=
Linear
(
f
^
t
i
)
F
v
i
+
1
=
F
v
i
+
1
+
f
v
i
F
t
i
+
1
=
F
t
i
+
1
+
f
t
i
最近的研究表明,卷积有利于 Transformer 捕捉图像的局部空间上下文信息。于是将 ViT 中间层的特征从
R
D
×
C
R^{D\times C}
RD×C 重塑为
R
H
×
W
×
C
R^{H\times W\times C}
RH×W×C,并使用卷积组成 Zoom Layer。对于 ResNet 来说,先采用步长为 2 的
2
×
2
2\times2
2×2 卷积减少第一二特征图的尺寸。而对于所有从 Backbone 中间层提取的特征图来说,用 Zoom Layer 调整其尺寸:
F
^
v
i
=
{
Conv
(
F
v
i
)
,
h
i
>
=
h
′
,
w
i
>
=
w
′
DeConv
(
F
v
i
)
,
h
i
<
h
′
,
w
i
<
w
′
\hat{F}_v^i=\left\{
ITA 是基于注意力机制和前向传播网络设计的。对于不同模态的特征,利用原始的特征作为 query,而其他模态的特征作为 key 和 value。交互过程如下:
f
^
v
i
=
F
M
H
S
A
(
f
^
v
i
−
1
+
F
^
v
i
)
f
^
t
i
=
F
MHSA
(
f
^
t
i
−
1
+
F
^
t
i
)
f
^
v
i
,
f
^
t
i
=
F
M
H
C
A
(
f
^
v
i
,
f
^
t
i
)
,
F
M
H
C
A
(
f
^
t
i
,
f
^
v
i
)
f
^
v
i
,
f
^
t
i
=
FFN
(
f
^
v
i
)
,
FFN
(
f
^
t
i
)
给定多组视觉特征
F
v
i
F_v^i
Fvi,
i
∈
{
2
,
…
,
N
}
i \in \{2,\ldots,N\}
i∈{2,…,N} 和全局文本表示
F
s
F_s
Fs,通过卷积和跨模态注意力得到多模态特征的融合。对于级联的融合特征,简单地拼接并采用
1
×
1
1\times1
1×1 卷积来聚合:
f
m
i
=
C
o
n
v
(
F
v
i
)
f
m
i
=
F
МНСА
(
f
m
i
,
F
s
)
F
m
=
C
o
n
v
(
[
f
m
2
,
.
.
.
,
f
m
N
]
)
F
v
=
Conv
(
[
F
m
,
F
c
o
o
r
d
]
)
F_v=\text{Conv}\left([F_m,F_{coord}]\right)
Fv=Conv([Fm,Fcoord])
F
v
F_v
Fv 的 2D 空间之后展平为序列,用于后续的处理。
通过使用 Transformer 中的注意力模块来组合文本信息和相应的视觉特征。以多模态特征
F
v
F_v
Fv 和句子级别的特征
F
s
F_s
Fs 作为输入,首先添加固定的空间位置编码到
F
v
F_v
Fv 和
F
s
F_s
Fs 上。接下来,通过自注意力和跨模态注意力生成一组更新的多模态特征来捕捉全局上下文信息:
f
c
=
F
MHSA
(
F
v
)
f
c
=
F
M
H
C
A
(
f
c
,
F
s
)
F
c
=
F
F
N
(
f
c
)
在
F
c
F_{c}
Fc 和
F
s
F_s
Fs 上应用投影器:
F
c
′
=
UpSample
(
F
c
)
Z
c
=
Conv
(
F
c
′
)
Z
t
=
Linear
(
F
s
)
考虑到 CLIP 的对比损失,采用文本到图像的对比损失作为训练目标,确保
Z
t
Z_t
Zt 相似于对应的
Z
c
Z_c
Zc,而同时不相似于无关的
Z
c
Z_c
Zc:
L
con
(
Z
t
,
Z
c
)
=
1
∣
P
∪
N
∣
∑
i
∈
P
∪
N
L
con
i
(
Z
t
,
Z
c
i
)
L_\text{con }(Z_t,Z_c)=\frac{1}{|\mathcal{P}\cup\mathcal{N}|}\sum_{i\in\mathcal{P}\cup\mathcal{N}}L_{\text{con }}^i\left(Z_t,Z_c^i\right)
Lcon (Zt,Zc)=∣P∪N∣1i∈P∪N∑Lcon i(Zt,Zci)其中
P
\mathcal{P}
P 和
N
\mathcal{N}
N 分别表示 GT 中的类别 1 和 0。
L
con
L_{\text{con}}
Lcon 定义如下:
L
c
o
n
i
(
Z
t
,
Z
c
i
)
=
{
−
log
(
σ
(
Z
t
⋅
Z
c
i
)
)
,
i
∈
P
−
log
(
1
−
σ
(
Z
t
⋅
Z
c
i
)
)
,
i
∈
N
L_\mathrm{con}^i\left.(Z_t,Z_c^i)\right.=
RefCOCO、RefCOCO+、G-Ref。
利用 CLIP 来初始化文本和图像编码器,其中图像 Backbone 分别采用 ResNet-50,ResNet-101。ViT-B 用于所有的消融实验。输入图像尺寸
416
×
416
416\times416
416×416,RefCOCO 和 RefCOCO+ 的输入句子限制为 17 个单词,方便和 [SOS] 和 [EOS] 组成 tokens,而 G-Ref 22 个单词。Transformer 解码器有 3 层,每层 8 个头,FFN 维度 512,投影器最后一层卷积核尺寸为 3。训练 50 epoches,Adam 优化器,学习率
λ
=
0.0001
\lambda =0.0001
λ=0.0001。对于 ViT,Bridger 的学习率为
λ
=
0.001
\lambda =0.001
λ=0.001,ResNet 学习率为
λ
=
0.0001
\lambda =0.0001
λ=0.0001,在第 35 个 epoch 时,学习率降低
0.1
0.1
0.1。Batch_size 32,2 NVIDIA A100(有钱)。推理阶段,二值化阈值为 0.35。
评估指标采用 Intersection over Union (IoU) 和 Precision@X。
附带提出三种变体:通过考虑类别名字作为文本的语义分割;通过整合 FPN 的目标检测;对解码器做出微小改变的分类。附录 A 里面。
本文提出一种参数高效微调方法用于 RIS。提出 Bridger 在视觉和文本编码器中交互,之后通过组合卷积和注意力机制,设计了一种轻量化的解码器用于后续视觉语言特征级联和全局的对齐。实验效果很棒。
本文的方法可以用于语义分割或非密集预测任务,类似于分类。原因:Bridge 结构能够促进模态提前融合以及多尺度特征聚合。细节上,添加的 bridgers 能够用文本编码器连接 MDETR 中的视觉 Backbone,同时固定住两个编码器的参数。
写在后面
总算是趁着这周周末完成了这篇博文,接下来这个代码得撸一下了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。