论文笔记:Tip-Adapter: Training-free CLIP-Adapter for Better Vision-Language Modeling

Tip-Adapter: Training-free CLIP-Adapter for Better Vision-Language Modeling

论文笔记:Tip-Adapter: Training-free CLIP-Adapter for Better Vision-Language Modeling_第1张图片
论文:https://arxiv.org/abs/2111.03930
github:https://github.com/gaopengcuhk/Tip-Adapter

Tip-Adapter为CLIP模型添加了一个两层多层感知器(MLP)的Adapter一个结合pre-trained features与updated features的残差连接。与CLIP-Adapter不同,Tip-Adapter不需要SGD来训练Adapter,而是从few-shot监督中构建一个query-key缓存模型,以获得Adapter的权重。特殊的,Tip-Adapter利用CLIP的视觉编码器提取few-shot训练图像的视觉特征,并将其相应的标签转换为one-hot编码。Cache模型包含 visual features 和 one-hot labels of the few-shot training set,它们作为键值对。

基于所构建的cache模型,可以采用无训练的非参数化方法获得Tip-Adapter的权值。详细地说,Tip-Adapter 的两层线性层被设置为来自few-shot训练集的 cached visual features 及其相应的one-hot标签。因此,对具有这些权重的adapter的处理可以看作是从键值缓存模型中检索少镜头知识。通过这种方法,Tip-Adapter比CLIP-Adapter的SGD训练效率更高。

在推理过程中,将测试图像的adapted feature与原始的CLIP编码特征相结合。通过这种方式,Tip-Adapter能够利用来自预先训练的CLIP和少镜头训练数据集的知识。具有这种构造权重的Tip-Adapter可以与完全微调的CLIP-Adapter相媲美。另外,如果我们解冻Tip-Adapter的第一线性层并进一步微调它,Tip-Adapter的性能可以通过几个训练时期显著提高。与CLIP-Adapter的200个迭代相比,它只需要20个迭代。

论文的贡献总结如下:

  • 提出了无训练的clip-Adapter (Tip-Adapter),它通过使用缓存模型直接设置Adapter的权重,具有很强的few-分类性能,以避免传统的SGD微调。

  • 基于这些具有超快收敛性能的constructed weights,可以进一步提高Tip-Adapter的性能。

  • 作者在11个少镜头分类数据集上评估了Tip-Adapter,并进行了广泛的消融研究,以证明其特性。Tip-Adapter通过最先进的方法实现了具有竞争力的性能,并显著减少了训练时间。

3. Method

3.1. A Revisit of CLIP-Adapter

由CLIP预训练视觉编码器获得 L2 normalized feature f c f_c fc,一个双层MLP的Adapter ,具有参数 W 1 , b 1 , W 2 , b 2 W_1,b_1,W_2,b_2 W1,b1,W2,b2,用它们来获得 updated feature f a f_a fa

f a = φ ( f c W 1 T + b 1 ) W 2 T + b 2 (1) f_a=\varphi (f_cW_1^T+b_1)W_2^T+b_2 \tag{1} fa=φ(fcW1T+b1)W2T+b2(1)

φ \varphi φ表示MLP中的激活函数。然后,将 adapted feature f a f_a fapre-trained feature f c f_c fc 和超参数 α α α∈[0,1]线性组合,输出最终的分类logits。通过这种方式,由adapter以一种附加的方式更新输入图像上的CLIP的先验知识。

l o g i t s = α f a W c T + f c W c T (2) logits = αf_aW_c^T+f_cW_c^T \tag{2} logits=αfaWcT+fcWcT(2)

其中, W c W_c Wc为文本分类器的权值。为了构造 W c W_c Wc,在zreo-shot CLIP之后,CLIP-Adapter将每个类别名称放入预定义好的prompt模板中,并通过CLIP预先训练的文本编码器对它们进行编码。

3.2. Training-free CLIP-Adapter

作者提出了 Tip-Adapter,它是一种对 CLIP-Adapter 的无训练和非参数扩展,但性能相当,甚至更好。为了实现这一目标,它采用了与CLIP-Adapter 相同的体系结构,但我们从少镜头训练集构建了一个键值cache模型,并在不进行微调调整的情况下将cache转换为adapter MLP的权重。通过适当设计的方法构建的权重,没有微调的Tip-Adapter 可以实现与具有微调的CLIP-Adapter 相当的性能。此外,如果允许进行微调,则利用网络初始化等权值进行进一步的微调,能够以超快的收敛速度实现更高的精度。

- Cache Model Construction

利用预训练的CLIP模型和K-shot N类训练集进行few-shot分类,N个类别中每个都有K个标注图像,记为 I K I_K IK,label记为 L N L_N LN。目的是对N个类进行图像分类。我们创建了一个key-value cache模型,并将其进行转换,以获得所提出的Tip-Adapter权重。对每个训练图像,我们利用CLIP的视觉编码器提取其C维L2 normalized visual feature,并将其ground-truth 标签转换为N维one-hot向量。对于所有的NK个训练样本,我们将其视觉特征表示为 F t r a i n ∈ R N K ∗ C F_{train}\in \mathbb{R}^{NK*C} FtrainRNKC,相应的标签向量表示为 L t r a i n ∈ R N K ∗ N L_{train}\in \mathbb{R}^{NK*N} LtrainRNKN

F t r a i n = V i s u a l E n c o d e r ( I K ) (3) F_{train} = VisualEncoder(I_K) \tag{3} Ftrain=VisualEncoder(IK)(3)
L t r a i n = O n e H o t ( L N ) (4) L_{train} = OneHot(L_N) \tag{4} Ltrain=OneHot(LN)(4)

为了创建键值cache,clip编码的表示 F t r a i n F_{train} Ftrain被视为key,而one-hot ground-truth向量 L t r a i n L_{train} Ltrain被作为其value。这样,键值cache包含了从少镜头训练集中提取的所有新知识,可以转换为AdapterMLP的权值,以更新预训练的CLIP中编码的先验知识。

- Tip-Adapter

在构建cache模型后,将根据cache的键值对来确定adapter的权重。具体来说,测试图像的normalized visual
feature f t e s t f_{test} ftest R 1 × C \mathbb{R}^{1×C} R1×C首先由CLIP的视觉编码器提取,并作为query从键值cache中查询。test query和已缓存的少镜头训练集的key之间的匹配度可以估计为 A ∈ R 1 × N K A\in \mathbb{R}^{1×NK} AR1×NK

A = e x p ( − β ( 1 − f t e s t F t r a i n T ) ) (5) A=exp(-\beta (1-f_{test}F^T_{train})) \tag{5} A=exp(β(1ftestFtrainT))(5)

其中,β代表一个调制的超参数。由于query和key features都是L2归一化的, ( 1 − f t e s t F t r a i n T ) (1-f_{test}F^T_{train}) (1ftestFtrainT)相当于计算测试特征 f t e s t f_{test} ftest与所有少镜头训练图像特征 F t r a i n T F^T_{train} FtrainT之间的欧氏距离。采用指数函数将query-key欧几里得距离转换为非负匹配度 A A A,并用β调节其锐度。然后,从cache模型中检索到的值可以通过query-key匹配度 A A A和缓存值 L t r a i n L_{train} Ltrain相乘得到,为 A L t r a i n AL_{train} ALtrain

Tip-Adapter对测试图像的预测logits计算为:

l o g i t s = α A L t r a i n + f t e s t W c T = α φ ( f t e s t F t r a i n T ) L t r a i n + f t e s t W c T (6) logits=αAL_{train} + f_{test}W_c^T = α\varphi(f_{test}F^T_{train})L_{train} + f_{test}W_c^T \tag{6} logits=αALtrain+ftestWcT=αφ(ftestFtrainT)Ltrain+ftestWcT(6)

其中 W c W_c Wc表示CLIP的文本分类器,α表示残差比,我们定义了 φ ( x ) = e x p ( − β ( 1 − x ) ) \varphi(x)=exp(−β(1−x)) φ(x)=exp(β(1x))。直观地说,Tip-Adapter的类预测包含两项:根据从cache模型中检索到的值得到的预测从预先训练过的CLIP中得到的预测。前一项自适应地总结了来自few-shot训练集的信息。cache中的值 L t r a i n L_{train} Ltrain(cache样本的类预测)根据查询键匹配度A进行线性组合。后一项通过直接使用预先训练好的分类器 W c T W_c^T WcT来处理测试图像特征 f t e s t f_{test} ftest,从而保留了来自原始CLIP的先验知识。这两个项通过权重α来平衡。如果预训练和下游任务之间的领域差距很大,则α被设置为大,因为需要更多的知识,否则很小。

比较公式(2)和(6),所提出的Tip-Adapter可以看作是一种特殊形式的CLIP-Adapter,具有以下权重,

W 1 = F t r a i n , W 2 = L t r a i n T , b 1 = 0 , b 2 = 0 (7) W_1 = F_{train}, W_2 = L^T_{train}, b_1 = 0, b_2 = 0 \tag{7} W1=Ftrain,W2=LtrainT,b1=0,b2=0(7)
φ ( x ) = e x p ( − β ( 1 − x ) ) , x ∈ [ 0 , 1 ] (8) \varphi(x) = exp(−β(1 − x)), x ∈ [0, 1] \tag{8} φ(x)=exp(β(1x)),x[0,1](8)

CLIP-Adapter和Tip-Adapter之间的区别可以总结如下。

  • CLIP-Adapter随机初始化W1和W2并通过SGD学习,Tip-Adapter直接将W1设置为缓存训练特征 F t r a i n F_{train} Ftrain,W2设置为ground-truth标签 L t r a i n L_{train} Ltrain的转置独热编码,这是非参数的、无训练的。

  • Tip-Adapter的瓶颈维数等于NK,而CLIP-Adapter选择一个低维瓶颈,以防止过拟合的风险。这表明,通过这种适当的初始化,在少镜头数据集上的过拟合问题大大缓解,进一步释放了高维线性层的拟合能力。

  • Tip-Adapter引入了一种新的激活函数,如式(8)表示。由于它的输入是归一化特征空间中的距离,所以它的有界在0和1之间。然而,对于CLIP-Adapter,我们选择了公共激活函数ReLU(·)来处理无界输入。在新的激活 φ ( ⋅ ) \varphi(·) φ的帮助下,计算出的距离可以很好地调制,并帮助提高性能。

综上所述,Tip-Adapter可以不经过训练就获得性能良好的Adapter权重。换句话说,它在少镜头分类中更有效。

Tip-Adapter通过结合少镜头训练集提供的新知识,可以大大提高CLIP的分类性能,并作为一个缓存为W1和W2的CLIP-Adapter实现。然而,考虑到更多的镜头,Tip-Adapter和CLIP-Adapter之间仍然存在轻微的性能差距。为了缓解这一差距,我们可以将cache模型视为一个良好的初始化点,并通过SGD继续调整Tip-Adapter,以超过随机初始化的CLIP-Adapter。

为了进行微调,我们使用少镜头训练数据和交叉熵损失来监督Tip-Adapter的预测,在此期间通过SGD更新cache模型中的权重。具体来说,我们解冻了key W 1 = F t r a i n W_1=F_{train} W1=Ftrain 的权重,但仍然固定了value W 2 = L t r a i n W_2=L_{train} W2=Ltrain 和CLIP模型的两个编码器的权重。更新cache模型中的键可以自适应地提高匹配度的估计,即在嵌入空间中训练和测试图像之间的距离计算。相比之下,缓存中的值是表示ground-truth注释的独热编码,应保持冻结,以准确记忆记忆信息。由于cache模型提供了良好的初始化,Tip-Adapter只需要少量的迭代进行微调,并且可以通过更长的训练方案(20个迭代对200个迭代)超过Tip-Adapter。结果表明,Tip-Adapter可以在快速收敛和有限的资源下取得较强的性能。

3.3. Relationship with Cache-based Networks

Tip-Adapter采用CLIP-Adapter之后的残差架构,但使用缓存特性来正确设置CLIP-Adapter的权重。通过进行进一步的微调, Tip-Adapter显著提高了few-shot学习的性能。

从另一个角度来看,Tip-Adapter可以看作是一个异构的缓存模型,它具有CLIP视觉和文本所提取的特征。具体来说,CLIP的线性分类器的权值 W c W_c Wc可以被视为已缓存的文本特征。因此,测试图像 f t e s t f_{test} ftest的最终分类是通过多模态特征共同推断出来的,这充分利用了CLIP中编码的视觉语言先验知识。从这个角度来看,等式(6)中的这两个项,可以分别重新解释为具有缓存视觉和文本特征的距离计算,其重要性被α平衡。

4. Experiments

4.1. Training Settings

Tip-Adapter有两个版本。第一个版本是无训练的,它直接设置适配器的MLP权重,如公式 (7)。第二个版本允许对由适当设置的权重初始化的adapter进行进一步的微调。这两个版本分别表示为Tip-Adapter和Tip-Adapter-F。

你可能感兴趣的:(论文笔记,语言模型,深度学习,计算机视觉)