Bootstrap

ECCV2024 | 小成本微调CLIP大模型!CLAP开源来袭:零样本和少样本训练有救了!

论文链接:https://arxiv.org/pdf/2311.16445
代码链接:https://github.com/YichaoCai1/CLAP

亮点直击

  • 解耦潜在内容和风格因素:本文提出了一种通过对比学习和数据增强,从因果角度微调预训练CLIP类模型的原始特征,以改进其视觉-语言特征的方法。

  • 定制化方法:本文提出了一种针对预训练CLIP类模型的定制化方法。该方法利用一个解耦网络,通过对比学习和图像增强进行训练,从CLIP类模型的图像编码器提供的学习特征中提取潜在内容特征。

  • 带有增强提示的对比学习(CLAP):本文提出了CLAP方法,用于从CLIP类模型的表示中提取潜在内容特征。该方法首先使用预训练的CLIP类模型的文本编码器和文本增强训练一个解耦网络,随后将训练好的解耦网络应用于CLIP类模型的图像编码器。

  • 实验验证:在一个大型真实数据集上进行的实验表明,本文提出的图像增强和文本增强在zero-shot和few-shot性能方面的有效性,以及对各种扰动的稳健性。

对比视觉-语言模型(如CLIP)由于其学习特征的显著泛化能力,在各种下游任务中引起了广泛关注。然而,它们学习的特征往往将内容和风格信息混合在一起,这在一定程度上限制了它们在分布变化下的泛化能力。为了解决这一限制,本文采用多模态数据的因果生成视角,并提出通过对比学习和数据增强来解耦原始表示中的内容特征。为此,本文首先探索了图像增强技术,并开发了一种方法,将其无缝集成到预训练的类似CLIP模型中,以提取纯内容特征。更进一步地,认识到文本数据固有的语义丰富性和逻辑结构,本文探索了使用文本增强来隔离潜在的内容和风格特征。这使得类似CLIP模型的编码器能够专注于潜在的内容信息,从而通过预训练的类似CLIP模型精炼学习到的表示。本文在各种数据集上的广泛实验表明,在zero-shot和few-shot分类任务中取得了显著改善,同时提高了对各种扰动的稳健性。这些结果强调了本文所提方法在细化视觉-语言表示和推动多模态学习领域最新进展方面的有效性。

通过数据增强将内容与风格分离

在本节中,作者提出使用数据增强从预训练的类似CLIP模型中提取内容信息。基本上,数据增强可以在改变风格因素的同时保留内容因素。因此,利用对比学习可以实现内容信息与风格信息的分离。本文将探讨两种不同形式的数据增强,即图像增强和文本增强。

通过增强图像将内容与风格分离

尽管最近的研究通过数据增强与对比学习对内容和风格的解耦提供了保证,但这些理论发现如何应用于视觉-语言模型领域仍不明确。本文将在以下内容中将这些理论发现转化为类似CLIP的模型。理论发现建议使用InfoNCE损失来提取内容信息,具体如下所述:

其中, 表示从训练数据集中抽取的一个包含 个样本的批次, 表示样本 通过模型 得到的特征, 是 的增强版本, 表示两个特征向量 和 之间的余弦相似度, 表示影响损失的温度参数。

本文将其扩展以优化预训练的视觉-语言模型,利用带有增强图像的对比学习(以下简称为“Im.Aug”)。如下图2a所示,本文在CLIP预训练的图像编码器之上训练一个解耦网络。为了提高训练效率和所提出方法的可用性,本文冻结了预训练的图像编码器。基于 损失,Im.Aug 的学习目标被公式化如下:

其中, 表示训练图像数据集, 表示批次大小, 是正在训练的解耦网络。预训练的 CLIP 图像编码器用 表示,星号“*”表示模型权重保持不变。变量 指从 中抽取的一张图像,而 是其增强视图。

训练数据集 的组成、使用的图像增强技术、解耦网络 的结构以及训练后 的利用将在以下小节中详细介绍。

数据合成和图像增强 为了生成训练图像数据,本文将类别名称与各种图像和对象属性结合起来,为每个类别创建文本提示。使用一个stable diffusion model,本文生成了合成图像,这些图像构成了本文的训练数据集 。Stable Diffusion的模板提示的创建基于对象大小、颜色、图像类型和艺术风格等属性。如下表 1 所详述,属性包括 10 种颜色和 3 种对象大小,以及 8 种图像类型和 2 种艺术风格。通过将这些属性组合成类似于“一个 [艺术风格] 的 [图像类型],包含一个 [对象大小] 的 [对象颜色] [类别]”的提示,本文为每个类别生成了 480 个独特的文本,并从每个提示中合成一幅图像。对于图像增强过程,本文采用对比学习实践中常用的技术,特别是随机裁剪和颜色失真。

解耦网络结构。 由于训练过程基于CLIP的预训练低维特征,本文的解耦网络采用多层感知器(MLP)架构。为了充分利用预训练的CLIP文本编码器,本文构建了一个具有零初始化投影的残差MLP,作为解耦网络,如下图3所示。这种设计使得本文可以直接从预训练表示空间进行学习,避免了随机起点,灵感来源于ControlNet的zero-conv操作,本文将其改为在本文的残差MLP中进行零线性操作。

在这个架构中,主分支包括一个零初始化且无偏置的线性层,位于SiLU激活函数和一个常规初始化的线性层之后。通常情况下,初始线性层之前的特征维度、第一和第二线性层之间的特征维度,以及第二线性层之后的特征维度,分别被称为输入维度 ,潜在维度 ,和输出维度 。为了纠正输入和输出维度之间的任何不匹配,网络在捷径路径中采用了最近邻下采样,从而确保了对齐并保持输入特征的清晰度。在推理阶段,引入了一个权重参数 ,用于调节从主分支输出的特征在与输入特征整合之前的比例,而在训练阶段,这个参数始终保持为1。

在推理阶段, 经过训练后,解耦网络 被用于紧跟在 CLIP 的图像编码器之后,以提取视觉内容特征。这种方法利用了统一的潜在空间进行视觉-语言数据生成,如上文所述。因此, 可以无缝集成到 CLIP 的图像和文本编码器中,增强zero-shot能力。

对于图像 ,操作被表述为复合函数 。类似地,对于文本 ,操作被表述为 。这种集成在保持 CLIP zero-shot功能的同时,通过改进内容解耦实现了更精细的特征。

总之,解耦网络 通过细化内容表示增强了特征提取过程,可以直接与 CLIP 的现有编码器集成,以提高zero-shot学习性能。

使用增强提示隔离内容与风格

尽管通过图像增强在解耦内容和风格方面取得了进展,但由于图像中风格信息的高维度和复杂性,完全改变图像中的所有风格因素仍然是一个挑战。通过增强来实现显著的风格变化,这对于完全解耦[41]是至关重要的,但使用现有的图像增强技术很难实现。相反,文本数据本质上具有高度的语义性和逻辑结构,与图像数据相比,它更容易进行属性方面的操纵。为了进一步探索内容的解耦,本文提出了使用增强提示的对比学习(CLAP)。

如上图2b所示,CLAP使用InfoNCE损失在CLIP的预训练文本编码器之上训练一个解耦网络,并保持编码器的梯度固定,类似于Im.Aug。利用文本的简单结构,之前用于合成图像的基于模板的提示现在作为训练文本数据集,记为。使用与Im.Aug相同的解耦网络,CLAP的学习目标如下所示:

其中,表示预训练的CLIP文本编码器。术语引用来自的一个文本提示,而表示通过提示增强技术生成的其增强视图。在方程的右侧,指定与文本提示相关联的类名。该策略旨在增强提示对之间的变异,特别是在文本数据集样本数量非常有限的情况下。这里,用于调整总损失函数中第二项的重要性。方程(4)中的所有其他符号保持其先前描述的定义。

训练完成后,学习到的解耦网络无缝集成到CLIP的两个编码器中,以提取内容表示,如上图2c所示。

提示增强。 为确保文本提示在不损害其内容的情况下经历风格变化,本文为合成文本提示开发了特定的增强技术。借鉴Easy Data Augmentation (EDA) 技术,本文改编了EDA中的随机删除 (Random Deletion, RD) 和随机交换 (Random Swap, RS) 技术,使其适应本文的提示结构。为了避免通过引入新对象名称或改变文本提示的核心思想而无意中改变内容,本文的增强方法不包括随机单词插入或替换。本文的主要增强技术包括对象大小删除 (Object Size Deletion, OSD)、对象颜色删除 (Object Color Deletion, OCD)、图像类型删除 (Image Type Deletion, ITD)、艺术风格删除 (Art Style Deletion, ASD) 和提示顺序交换 (Swapping Prompt Order, SPO),每种技术都以一定的概率应用,如下表2所述。此外,对于类别较少的下游数据集,为了丰富训练样本的数量,本文使用了一种额外的增强技术,称为插入高斯噪声 (Inserting Gaussian Noise, IGN)。按照提示学习方法的初始化协议,本文在标记化提示中插入了均值为零、标准差为0.02、长度为4的高斯噪声。

直观上,这些提示增强方法类似于图像增强中使用的随机mask技术。然而,提示增强比它们的图像对应方法更有效且更精确。这种有效性源于提示增强可以专门针对并消除特定的风格元素而不影响内容,而图像mask在像素或块级别操作,可能会无意中破坏内容信息或导致风格变化不足。

实验

本文进行了三项主要实验来评估本文的方法

  • 使用多样化的提示进行zero-shot评估,以测量zero-shot性能及其对提示扰动的鲁棒性;

  • 在少量样本上进行线性探针测试,以评估所学习表示在少量样本设置中的有效性;

  • 对zero-shot和单样本分类器进行对抗性攻击评估,以确定它们对对抗性威胁的抵抗力。

本文进一步对超参数进行了消融研究,探索了不同提示增强组合和各种训练提示来源对CLAP性能的影响,并在不同的CLIP模型规模上重复实验。

主要结果

zero-shot性能。 为了评估zero-shot能力,CLAP使用三个特定的固定提示进行评估:ZS(C),仅使用"[class]"中的类名;ZS(PC),格式为"一张[class]的照片";以及ZS(CP),结构为"照片中的[class]"。为了全面检查zero-shot能力,还使用了一个动态提示ZS(NC),格式为"[noise][class]",其中"[noise]"表示引入均值为0、标准差为0.02的高斯噪声。

如下表3所示,CLAP在所有评估的提示和每个数据集上均超越了CLIP和Im.Aug。与CLIP在zero-shot性能上的一致提升不同,Im.Aug显示出不一致的结果。进一步的分析表明,CLAP相对于CLIP的优越性在动态的提示下尤其显著。这表明CLAP在显著提升相对于原始CLIP表示的zero-shot性能方面非常有效。

在评估模型对提示扰动的鲁棒性时,本文通过分析从 ZS(C)、ZS(CP) 和 ZS(PC) 得到的结果的范围 (R) 和标准差 (δ),来检查不同提示下zero-shot性能的方差。此外,本文还研究了从 ZS(C) 到 ZS(NC) 的性能下降 (∆(NC)),作为对噪声提示的广泛鲁棒性指标。

如下表 4 所示,CLAP 显著减少了各种测试提示下zero-shot性能的方差。这体现在(标准差)和(范围)的显著降低上,以及在有噪声提示下性能下降的幅度较小,这与 Im.Aug 和 CLIP 的基线表示形成对比。尽管 Im.Aug 在一定程度上有助于减少性能方差,但其效果明显不如 CLAP。这些发现突显了 CLAP 在保持一致的zero-shot性能方面的增强鲁棒性,因为它在各种提示下都能保持更稳定的性能。

few-shot学习性能。 本文对四个数据集的每个领域进行了1-shot、4-shot、8-shot和16-shot线性探针的评估。如下图4所示,在few-shot学习场景中,CLAP显著优于CLIP和Im.Aug。特别是在1-shot设置中,CLAP在PACS、VLCS、OfficeHome和DomainNet数据集上分别比线性探针CLIP模型提高了+10%、+3.5%、+2.5%和+1.5%。这些改进尤其显著,相比于Im.Aug的对应结果,进一步突显了CLAP在few-shot场景中的有效性。

对抗性能。 为了评估对抗鲁棒性,本文对zero-shot(ZS(C))和一样本分类器进行了评估,使用了FGSM、PGD和CW等著名的对抗攻击方法,通过生成对抗样本进行测试。对于FGSM,使用1次对抗迭代,而对于PGD和CW,分别使用20次迭代,所有方法的epsilon值均为0.031。如下表5所示,使用CLAP表示的分类器在面对这些对抗攻击时表现出更强的抵抗能力,相比于基于CLIP表示的分类器。在四个数据集中,CLAP的zero-shot和1-shot分类器分别比CLIP在FGSM攻击下提高了+7.6%和+8.5%,在PGD-20攻击下提高了+1.0%和+11.7%,在CW-20攻击下提高了+1.1%和+2.3%。这些数据显著超过了Im.Aug在FGSM攻击下+4.4%和+4.6%,在PGD-20攻击下+0.3%和+6.2%,以及在CW-20攻击下0%和+1.3%的性能提升。这些结果表明,CLAP在zero-shot和一样本场景中有效地增强了对抗攻击的鲁棒性。

更多分析

t-SNE 可视化。 在本文的 t-SNE 可视化中,本文检查了 PACS 数据集中艺术绘画领域内所有图像的 CLIP、Im.Aug 和 CLAP 表示。下图 5 显示,CLAP 的图像表示在类间分离和类内聚类方面比 CLIP 和 Im.Aug 更为显著。这一观察表明,CLAP 的表示更紧密地与内容信息相关,而较少受风格信息的影响,这与其他两者形成对比。

消融实验。 在下图 6 中,本文使用 VLCS 数据集上的两个不同提示 ZS(C) 和 ZS(PC) 评估了本文模型的zero-shot能力。这项分析是消融研究的一部分,旨在了解各种超参数对模型性能的影响。具体来说,本文检查了以下内容:

  1. 解耦网络中 MLP 的潜在层维度,如下图 6a 所示;

  2. 损失函数中的温度参数 ,如下图 6b 所示;

  3. 推理阶段的权重系数 ,如下图 6c 所示。

本文的研究结果表明,CLAP 在所有测试配置中对两个提示的zero-shot性能均有显著提升,同时显著缩小了每个提示所引发的性能差距。这些结果强调了 CLAP 在适应各种超参数方面的有效性。

提示增强组合。 本文探索了各种定制的提示增强方法组合,并在 VLCS 数据集上研究了简单数据增强(EDA)技术。每种测试技术都展示了 CLAP 相对于 CLIP 的改进。

提示来源。 本文评估了不同训练提示格式对 VLCS 数据集性能的影响,这些提示来源于各种合成来源,并结合了 EDA 技术。本文的评估包括基于模板的提示、由 ChatGPT-3.5生成的提示、结构为“a [random] style of [class]”的提示(其中“[random]”由随机词生成器2 填充),以及使用 PromptStyler 方法生成的提示。研究结果表明,形式较为简单的训练提示往往能带来更好的性能。

不同模型规模的实验。 在本文反复评估 ViT-L/14 和 ResNet50x16(使用 CLIP 预训练)的zero-shot性能的实验中,本文始终发现 CLAP 提升了zero-shot性能,同时也减少了性能的波动。这一一致的观察结果强调了 CLAP 在提升 CLIP 表示质量方面的有效性。

结论

为了增强预训练的类似 CLIP 的模型,本研究深入探讨了解开潜在内容变量的过程。通过对视觉-语言数据生成过程的因果分析,本文发现,在一种模态中训练一个解耦网络可以有效地解开两种模态中的内容。鉴于文本数据的高度语义性,本文发现,通过文本增强干预,在语言模态中更容易实现解耦。在这些见解的基础上,本文引入了 CLAP(使用增强提示的对比学习)来获取解耦的视觉-语言内容特征。综合实验验证了 CLAP 的有效性,显示出在zero-shot和few-shot性能方面的显著提升,并增强了对扰动的鲁棒性。本文期望本文的工作能够激发对视觉-语言模型中潜在变量解耦的进一步探索。

参考文献

[1]CLAP: Isolating Content from Style through Contrastive Learning with Augmented Prompts

;