当前的问题
CLIP和CLIP-Adapter等方法的一个主要局限性是,它们没有对视觉编码器所编码的底层表示进行显著的修改。原因很简单:微调大型模型需要大量的监督,这在低监督学习设置中是很难获得的。如果下游分类任务的图像来自与互联网常见图像相同的分布,那么这不一定是个问题。然而,如果图像差异显著,例如医学或生物多样性监测图像,那么从视觉编码器提取的表示很可能不适合当前任务。
解决办法
me:动机跟KgCoOp很像。
我们引入了一个新的编码器
E
s
E_s
Es,它在目标数据集上使用自我监督进行训练。这个编码器的输出是一个特征向量
f
s
f_s
fs,它被输入到一个适配器网络
A
s
A_s
As中。与CLIP-Adapter不同,此适配器的输出不是转换后的特征编码,而是对感兴趣的类的预测,
P
s
(
y
∣
x
)
=
A
s
(
f
s
)
=
σ
(
ReLU
(
f
s
T
W
s
1
)
W
s
2
)
P_s(y|\textbf{x})=A_s(\textbf{f}_s)=\sigma(\text{ReLU}(\textbf{f}_s^T\textbf{W}_s^1)\textbf{W}_s^2)
Ps(y∣x)=As(fs)=σ(ReLU(fsTWs1)Ws2)。然后,我们将这些预测与标准零样本 CLIP模型的输出结合起来,
P
v
(
y
∣
x
)
=
σ
(
f
v
T
W
t
)
P_v(y|\textbf{x})=\sigma(\textbf{f}_v^T\textbf{W}_t)
Pv(y∣x)=σ(fvTWt),
在训练中我们学习了权重 { W s 1 , W s 2 } \{\textbf{W}_s^1,\textbf{W}_s^2\} {Ws1,Ws2}。我们使用自监督约束目标[9]在目标训练数据集上训练 E s E_s Es,它不需要任何标记数据。虽然在大型数据集上训练 E s E_s Es可能很昂贵,但在实践中,我们从ImageNet初始化模型开始,这导致在相对较小的下游数据集上快速收敛。此外,这个步骤只需要执行一次,因为当可用的监督数量发生变化时,只有适配器 A s A_s As需要重新训练。
混合权重选择
me:挺好的一个思路,动态调整混合参数
λ
\lambda
λ。
CLIP-Adapte同消融实验选择效果最好的超参数
α
\alpha
α和
β
\beta
β。然而,在低样本学习的情况下,任何和所有标记的数据都是宝贵的,并且可能更有价值用于训练而不是超参数选择。
为了克服这个问题,我们提出了一个概念上简单而有效的方法来选择我们在Eqn. 3中的预测混合权 λ \lambda λ,它不需要任何标记的验证数据。从图1中我们观察到,与Zero-shot CLIP预测相对应的置信度得分在数据集之间差异很大。基于此,在假设CLIP不自信时,我们应该更重地权衡low-shot学习获得的知识,我们将 λ \lambda λ定义为类似于CLIP在给定数据集的 N N N个测试图像上的平均预测置信度得分, λ = 1 N ∑ i = 1 N max k P ( y i = k ∣ x i ) \lambda=\frac{1}{N}\sum^N_{i=1}\text{max}_k P(y_i=k|\textbf{x}_i) λ=N1∑i=1NmaxkP(yi=k∣xi)。在我们的实验中,我们将我们的SVL-Adapter方法与现有的方法进行比较,其中我们使用验证数据('SVL-Adapter ')选择 λ \lambda λ,或者我们使用上面概述的CLIP输出('SVL-Adapter ')估计它。
参考资料
论文下载(BMCV CCF C,2022)
https://bmvc2022.mpi-inf.mpg.de/0580.pdf
https://arxiv.org/abs/2210.03794
代码地址
https://github.com/omipan/svl_adapter