赞
踩
论文:Not All Features Matter: Enhancing Few-shot CLIP with Adaptive Prior Refinement
链接:https://arxiv.org/pdf/2304.01195.pdf
代码:https://github.com/yangyangyang127/APE
TL;DR: 本文基于 CLIP
提出了一种特征提纯的方法为下游图像分类任务选择最具有判别性的特征,以此来提高下游任务的性能并同时提高计算效率。相比于其他方法,我们提出的两种模型,APE
和 APE-T
,前者在 0 参数量的方法中达到了最好的性能,后者可以达到 SOTA,并且参数量比 Tip-Adapter-F
小 30 倍!
现如今,很多大规模预训练的视觉-文本模型,如CLIP
、BLIP
等,能够在多种数据分布下表现出良好的性能,并已经有很多的工作通过few-shot
的方式将它们应用于下游任务。但这些方法或者性能提升有限(如CoOp
,CLIP-Adapter
等),或者需要训练大量的参数(如Tip-Adapter
等)。因此我们会问,能否同时实现高few-shot
性能且少参数量呢?
CLIP
是一个通用的模型,考虑到下游数据分布的差异,对某个下游任务来说,CLIP 提取的特征并不全是有用的,可能包含一部分冗余或噪声。因此,在这篇文章中,我们首先提出一种特征提纯的方法,为每个数据集提纯高判别力的特征通道,从而减少了参数量,且提升了计算效率;然后设计了一种参数高效的 few-shot 框架,提升了 CLIP 在不同数据集上的 few-shot 性能,下图是整体流程图:
理解完上述动机,下面让我们正式介绍下本文提出的算法。
这一部分中,我们着重向大家介绍特征提纯模块和新提出的few-shot
框架。
CLIP
是一个通用的模型,在下游任务上,考虑到数据分布,CLIP 提取的特征可能并不全是有用的,因此我们试图为每个下游数据集提纯个性化的特征。我们通过最大化类间差异,或者说最小化类间相似度,来选择高判别力的关键特征。对于一个
C
C
C 类的下游任务,我们计算所有类的所有样本表征之间的平均相似度
S
S
S:
其中, i , j ∈ 1 , . . . , C i, j \in {1, ..., C} i,j∈1,...,C 代表类的序号, p i , p j p^{i}, p^{j} pi,pj 代表两个类的先验概率, M i , M j M^{i}, M^{j} Mi,Mj 则代表两个类中的样本书来给你, δ ( ⋅ , ⋅ ) \delta( \cdot, \cdot) δ(⋅,⋅) 为相似度函数, x x x代表表征。
假设 B ∈ { 0 , 1 } D B \in \{0, 1\}^{D} B∈{0,1}D代表特征通道是否被选中, D D D代表特征维度, B B T = Q BB^{T}=Q BBT=Q代表预先定义 Q Q Q个特征被选中,则通过求解 B B B使得 S S S最小化,我们便可以得到需要的特征,即求解以下优化问题:
其中 $ \odot$ 代表逐元素相乘。经过求解(求解和简化的具体过程可以查看源码),可以得到每个数据集的关键特征。经过特征提纯,我们在 ImageNet
上统计了图像和文本相似度的变化,如下图所示。相比于没有特征提纯,我们选定的特征减小了类间相似度,同时增大了图像和文本的匹配程度。且我们提纯出的特征能够获得更好的 similarity map
。
few-shot
框架CLIP
等视觉文本模型一般基于测试图像特征和文本表征的相似度或距离来完成分类任务。但除此之外,我们还可以使用测试图像和训练图像的相似度来校正,并使用训练图像和文本的相似度来为困难样本提供额外的信息。基于这种考虑,我们探究了测试图像、文本描述和训练图像嵌入之间的三边关系。
假设 f f f 代表测试图像特征, F F F 和 W W W 分别代表训练图像和文本描述的特征, L L L 代表寻来你图像的标签,则我们可以建立三边关系:
其中, R f W R_{fW} RfW 代表一般的 CLIP 基于视觉-文本相似度的预测, R f F R_{fF} RfF 代表模态间的相似度,即测试图像和训练图像之间的相似度, R F W R_{FW} RFW 反映了训练图像对测试图像的贡献; β \beta β 和 γ \gamma γ 是两个平滑系数, D K L ( ⋅ ∣ ⋅ ) D_{KL}(\cdot | \cdot) DKL(⋅∣⋅) 计算 KL 散度。基于以上三种关系,我们将最终的预测结果定义为:
l o g i t s = R f W + α R f F ( d i a g ( R F W ) L ) ) . logits = R_{fW} + \alpha R_{fF} (diag(R_{FW})L)). logits=RfW+αRfF(diag(RFW)L)).
我们可以将特征提纯与三边关系结合起来,直接在选择出来的特征上进行三种关系的few-shot学习,这样可以减少参数和计算效率。我们提出了training-free
和training-required
两种框架,分别记为APE
和APE-T
,结构如下图,后者相比于前者增加了少量可训练的残差。
进一步地,我们基于 f f f, F F F和 W W W提纯出具有高表征力的特征通道,提纯后的表征分别记为 $ f^{\prime} , , , F^{\prime}$ 和 $ W^{\prime}$。则 APE 的预测为:
l o g i t s = R f W + α R f ′ F ′ ( d i a g ( R F ′ W ′ ) L ) ) . logits = R_{fW} + \alpha R_{f^{\prime}F^{\prime}} (diag(R_{F^{\prime}W^{\prime}})L)). logits=RfW+αRf′F′(diag(RF′W′)L)).
与Tip-Adapter
相比,APE
增加了一个权重项用于判断训练样本的重要程度;且经过提纯后的特征排除了较多的冗余信息,使得预测更为准确。
最后,我们学习一个共享的残差项
R
e
s
Res
Res,并将其与训练样本特征
F
F
F 和文本表征
W
W
W 相加,此残差只调节提纯出的特征通道并且是类内共享的,这使得残差参数量非常小。这一点区别于Tip-Adapter-F
,它直接微调
F
F
F,这实际上造成了很大的参数冗余(在ImageNet 16-shot
的实验中,参数量是APE-T
的 30 倍)。此外,我们主动学习样本权重项
R
F
′
W
′
R_{F^{\prime}W^{\prime}}
RF′W′,而不再通过计算散度得到。最终的预测仍然可以用上面的计算公式得到。
我们在 11 个分类数据集上研究了方法的性能,并提出了 training-free
和 training-required
两个版本,下图是11个数据集上的平均性能以及和其他方法的比较。
与其他方法相比,我们的计算效率和参数量都有所优化,同时泛化性能也有所提升。
下面是关于特征提纯,APE和APE-T的消融实验,从下图中我们可以看出:
在不同的骨干网络结构下,APE和APE-T在ImageNet上的结果:
在其他的图像文本对比训练模型下,APE和APE-T也能实现比较高的结果,下图是在BLIP下的结果
更多的 similarity map 如下图所示,提纯出的特征能更好的聚焦在目标上:
感谢您的阅读,更多的实现细节和比较请看我们的文章,本文代码已开源。如果你有关于此篇论文感兴趣或者想一起交流探讨的点,欢迎添加小编微信 cv_huber 或扫描屏幕下方二维码与作者一起互动。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。