作者认为,Clip中只有文本编码器学习prompt,不足以对图像编码器所需的适应进行建模,因此着手基于多模态提示学习(MaPLe)来充分微调文本和图像编码器表示。
text encoder | 文本编码器 | image encoder | 图像编码器 |
---|---|---|---|
W i W_i Wi? | word embeddings | E i E_i Ei? | image embeddings |
L i L_i Li? | 某层transformer | V i V_i Vi? | 某层transformer |
P i P_i Pi? | 提示 | P i P_i Pi? | 提示 |
c i c_i ci? | class(CLS) tokens |
作者在 text encoder 的前 J J J 层各引入了 b b b 个learnable tokens : { P i ∈ R d l {P_i \in \mathbb{R}}^{d_{l}} Pi?∈Rdl?} i = 1 b _{i=1}^b i=1b?。
输入: [ P 1 , P 2 , … , P b , W 0 ] [P_1, P_2, \ldots , P_b, W_0] [P1?,P2?,…,Pb?,W0?]
前 J J J 层:提示tokens被引入到每一层 L i L_i Li?,与 W i W_i Wi? 进行连接,这里的 [ ? , ? ] [ \cdot, \cdot] [?,?] 是指连接操作。(包括第 J J J 层)
[ ? , W i ] = L i ( [ P i ? 1 , W i ? 1 ] ) ? i = 1 , 2 , … , J (1) \left[ -, W_i \right] = L_i \left( \left[P_{i-1}, W_{i-1}\right] \right) \text { } i = 1, 2, \ldots, J \quad \tag{1} [?,Wi?]=Li?([Pi?1?,Wi?1?])?i=1,2,…,J(1)
[
P
j
,
W
j
]
=
L
j
(
[
P
j
?
1
,
W
j
?
1
]
)
?
j
=
J
+
1
,
…
,
K
(2)
[P_j, W_j] = L_j \left( \left[P_{j-1}, W_{j-1}\right] \right) \text { } j = J + 1, \ldots, K \quad \tag{2}
[Pj?,Wj?]=Lj?([Pj?1?,Wj?1?])?j=J+1,…,K(2)
z
=
TextProj
(
w
N
K
)
(3)
z = \text{TextProj} \left(w_{N_K}\right) \quad \tag{3}
z=TextProj(wNK??)(3)
共享提示在两种模态之间建立联系,语言提示被引入到语言分支中的J层Transformer块中,而视觉提示通过视觉到语言的投影函数从语言提示中获得。
我们通过在所有1000个ImageNet类上学习多模态提示,然后直接将其转移到剩余的10个数据集上,来测试MaPLe的跨数据集泛化能力。MaPLe表现出有竞争力的性能,平均准确率最高,为66.30%。
评估了ImageNet训练模型对各种域外数据集的直接可移植性,并观察到,与表5所示的所有现有方法相比,它持续提升。
大规模V-L模型(例如CLIP)对下游任务的适应是一个具有挑战性的问题,因为大量的可调参数和有限的下游数据集大小。提示学习是一种高效且可扩展的技术,可以根据新的下游任务定制V-L模型。为此,目前的提示学习方法要么只考虑视觉方面的提示,要么只考虑语言方面的提示。我们的工作表明,对视觉和语言分支进行提示是至关重要的,以使V-L模型适当地适应下游任务。此外,我们提出了一种策略,通过在不同的transformer阶段将视觉提示明确地限制在文本提示上,来确保视觉语言模式之间的协同作用。我们的方法提高了对新类别、跨数据集迁移和具有域迁移的数据集的泛化能力。