SVL-Adapter: Self-Supervised Adapter for Vision-Language Pretrained Models

当前的问题

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

相关推荐
失散1325 分钟前
深度学习——02 PyTorch
人工智能·pytorch·深度学习
图灵学术计算机论文辅导28 分钟前
傅里叶变换+attention机制,深耕深度学习领域
人工智能·python·深度学习·计算机网络·考研·机器学习·计算机视觉
重启的码农3 小时前
ggml 介绍(4) 计算图 (ggml_cgraph)
c++·人工智能
重启的码农3 小时前
ggml 介绍(5) GGUF 上下文 (gguf_context)
c++·人工智能·神经网络
R-G-B3 小时前
OpenCV Python——报错AttributeError: module ‘cv2‘ has no attribute ‘bgsegm‘,解决办法
人工智能·python·opencv·opencv python·attributeerror·module ‘cv2‘·no attribute
Seeklike3 小时前
diffusers学习--stable diffusion的管线解析
人工智能·stable diffusion·diffusers
数据知道3 小时前
机器翻译:模型微调(Fine-tuning)与调优详解
人工智能·自然语言处理·机器翻译
Struart_R4 小时前
SpatialVLM和SpatialRGPT论文解读
计算机视觉·语言模型·transformer·大语言模型·vlm·视觉理解·空间推理
沫儿笙4 小时前
焊接机器人保护气体效率优化
人工智能·机器人
青岛前景互联信息技术有限公司4 小时前
应急救援智能接处警系统——科技赋能应急,筑牢安全防线
人工智能·物联网·智慧城市