极市导读
本文介绍了一种称为特征区分对齐(FD-Align)的微调方法。该方法旨在通过在微调过程中保持虚假特征的一致性来增强模型的通用性。实验结果验证了该方法对于 ID 和 OOD 任务的有效性。经过微调后,该模型可以与现有方法无缝集成,从而提高性能。 >>加入极市CV技术交流群,走在计算机视觉的最前沿
简单介绍一下我们被 NeurIPS 2023 录用的一个小样本预训练模型微调的工作《FD-Align: Feature Discrimination Alignment for Fine-tuning Pre-Trained Models in Few-Shot Learning》

论文地址如下:
https://arxiv.org/abs/2310.15105
代码地址
https://github.com/skingorz/FD-Align
背景
CLIP在各类视觉任务中表现得极其出色。将其应用到下游任务时,往往需要在下游数据上进行微调。但是在数据量不足的情况下,直接对CLIP进行微调很容易出现过拟合。并且会影响OOD数据上的泛化性。因此,先前的方法大多数尝试仅微调分类头或者引入额外的结构,但是这并没有充分挖掘CLIP的视觉编码器的潜力。所以我们探索如何尽可能的使用少量样本微调CLIP时不破坏其OOD性能。
动机
我们通过模型对虚假关联性的鲁棒性来解释全微调的CLIP的OOD性能变差的原因。虚假关联性的鲁棒性指的是模型是否具有区分出样本中和类别相关信息(因果信息)以及(背景、风格等)类别无关信息(虚假信息)的能力。先前的工作发现,CLIP对虚假关联性有很好的鲁棒性,因此有很好的OOD性能[1]。然而,全微调的CLIP的OOD性能会下降[2]。对CLIP和全微调后的CLIP的attention map可视化后发现:全微调的CLIP更关注于物体的局部特征,这种对局部信息的注意力使得模型对虚假关联性的鲁棒性变差[3]。也就是说,对CLIP进行全微调时,虽然模型更好得学习到了微调样本的因果特征,但是模型对虚假特征的识别能力也变差,导致模型学习到的因果特征不能很好的泛化到未见过样本。从而出现过拟合,影响OOD数据上的泛化性。因此,本文提出了一种不影响模型对虚假特征识别能力的微调方法来保证微调后的模型对虚假关联性的鲁棒性。
方法
我们希望在小样本数据集 上对CLIP的视觉编码器 进行微调得到 。本方法分为模型微调和虚假特征约束两部分。
模型微调
在微调过程中, CLIP的文本编码器 保持不变。我们将图像 和对应的类别 和 个提示模板 作为输入。对于任意的类别 ,其对应的提示为 。对每个类别 , 我们使用文本编码器提取所有的提示特征来用作计算类别的原型。
我们使用余弦相似度 计算图像和类别原型的相似度, 并依次计算概率密度。随后使用交叉熵损失作为微调时的分类损失。
其中 是类别标签的集合。
虚假特征约束
在微调时保证虚假特征不变最直接的方式是将因果特征和虚假特征解耦出来,并保证虚假特征不变。然而,在图像中对特征解耦是一个极其困难的任务。相比之下,将虚假特征和因果特征从文本中解耦出来极其简单。例如:对于提示 "a photo of a dog",dog是因果特征。"a photo of a"是虚假特征。借助于CLIP极强的视觉和文本对齐能力。我们可以将文本的虚假特征作为图像虚假信息的原型。
我们可以获取微调后的模型提取得到的图像特征在虚假信息上的概率分布:
.
同样,我们也可以获取到CLIP提取到的图像特征在虚假信息上的概率分布:
.
尽管无法直接约束微调后的模型和CLIP提取的图像特征中的虚假特征一致。但是可以通过约束二者在虚假信息上的概率分布一致来间接的保证提取到的虚假特征一致。
最终,我们约束分类损失和虚假一致损失来确保微调时的模型OOD泛化性。
虚假原型修正
目前的提示模板大多是人工设计或者语言模型生成,难免会出现不合理或者冗余的情况,从而导致虚假信息原型不准确。为此,我们首先使用异常值检测算法来删除不合理的提示特征
随后, 我们使用k-Means来处理其中的几余特征。
实验结果
OOD性能
如下表所示,我们在ImageNet上对CLIP进行16 shot微调,并在ImageNet两个变种数据集上进行性能测试。相对于全微调,我们的OOD性能有全面的提升。另外,我们直接将微调得到的视觉编码器替换到Tip和APE中,可以看出,我们微调后得到的模型能够无需重新微调直接应用到现有的方法中提升OOD性能。
同样,我们也按照N-way K-shot的小样本学习形式来对CLIP在miniImageNet上微调,并且在各种不同的下游数据集上测试了性能。下图是微调后的模型在不同数据集上的性能变化。我们微调后的模型在大部分数据集上都能带来显著的OOD性能提升。
ID 性能
我们同样也在11个数据集上测试了我们方法的ID性能。我们的方法有着显著的性能提升,并且随着shot数增加提升更明显。
同样,我们将微调后的视觉编码器直接应用到现有的方法,下表是在ImageNet上的性能。可以看出,我们微调后的模型同样也能直接提升现有方法的ID性能。
虚假原型修正的必要性
如下表所示,我们分别比较了使用全部提示特征作为原型,Tip手动筛选后的提示特征作为原型,以及使用虚假原型修正(SPC)后原型的ID性能。如图所示,使用SPC修正后的原型相对使用全部提示能达到更高的性能。值得关注的是,使用Tip手动筛选后的提示特征作为原型的性能大幅下降。具体原因我们分析是其中保留的模板 "itap of a {class}" 在SPC中被作为异常值删除。所以SPC自动修正虚假特征原型能够避免人工筛选的不合理性。
参考文献
[1] Self-supervision on images and text reduces reliance on visual shortcut features.
[2] Fine-tuning can distort pretrained features and underperform out-of-distribution.
[3] Are vision transformers robust to spurious correlations?

公众号后台回复“数据集”获取100+深度学习各方向资源整理
极市干货

点击阅读原文进入CV社区
收获更多技术干货

