使用前缀条件统一图像说明和图像分类数据集
作者:齐藤邦明(学生研究员,云端AI团队)和孙起赫(研究科学家,感知团队)
最近,通过在大规模图像字幕数据集上对视觉语言(VL)模型进行预训练已经成为传统基于图像分类数据预训练的强大替代方案。图像字幕数据集被认为是更“开放领域”的,因为它们包含更广泛的场景类型和词汇,这导致模型在少量和零样本识别任务中表现出强大的性能。然而,具有细粒度类别描述的图像可能很少见,并且由于图像字幕数据集不经过手动策划,类别分布可能不平衡。相比之下,大规模分类数据集(如ImageNet)通常经过策划,因此可以提供具有平衡标签分布的细粒度类别。虽然听起来很有希望,但是直接将字幕和分类数据集组合进行预训练通常不成功,因为这可能导致偏见表示,无法很好地推广到各种下游任务。
我们在CVPR 2023上提出了一种预训练策略,使用分类和字幕数据集提供互补的好处。首先,我们展示了合并数据集的天真方法会导致下游零样本识别任务的次优性能,因为模型受到数据集偏差的影响:每个数据集中的图像领域和词汇的覆盖范围是不同的。我们通过前缀调节(prefix conditioning)在训练过程中解决了这个问题,这是一种新颖简单而有效的方法,它使用前缀标记来解耦数据集偏差与视觉概念。这种方法使得语言编码器可以从两个数据集中学习,并且还可以为每个数据集定制特征提取。前缀调节是一种通用方法,可以轻松集成到现有的VL预训练目标中,例如对比性语言-图像预训练(CLIP)或统一对比性学习(UniCL)。
高级思想
我们注意到,分类数据集在至少两个方面存在偏差:(1)图像大多只包含来自受限领域的单个对象,(2)词汇有限,缺乏进行零样本学习所需的语言灵活性。例如,针对ImageNet优化的“一张狗的照片”的类别嵌入通常会得到一张位于图像中央的来自ImageNet数据集的一只狗的照片,这在其他包含多张狗的图像或狗与其他主体的图像的数据集中无法很好地推广。
相比之下,字幕数据集包含更多种类的场景和词汇。如下图所示,如果模型仅仅从两个数据集中学习,语言嵌入会将图像分类和字幕数据集的偏差纠缠在一起,这会降低零样本分类的泛化能力。如果我们可以解耦两个数据集的偏差,我们就可以使用针对字幕数据集量身定制的语言嵌入来提高泛化能力。
![]() |
上图:语言嵌入纠缠了来自图像分类和字幕数据集的偏差。下图:语言嵌入解耦了两个数据集的偏差。 |
前缀调节
前缀调节部分受到提示调优的启发,提示调优在输入令牌序列前面添加可学习的标记,以指导预训练模型骨干学习用于解决下游任务的特定知识。前缀调节方法与提示调优有两点不同:(1)它旨在通过解开数据集偏差来统一图像字幕和分类数据集,(2)它应用于VL预训练,而标准的提示调优用于微调模型。前缀调节是一种明确的方法,可以根据用户提供的数据集类型来具体控制模型骨干的行为。这在生产中特别有帮助,因为不同类型的数据集数量可以在预先知道。
在训练过程中,前缀调节通过为每个数据集类型学习一个文本标记(前缀标记),吸收了数据集的偏差,并使剩余的文本标记集中于学习视觉概念。具体而言,它为每个数据集类型的输入标记添加了前缀标记,以向语言和视觉编码器提供输入数据类型的信息(例如分类 vs. 字幕)。前缀标记被训练用于学习数据集类型特定的偏差,这使我们能够解开语言表示中的偏差,并在测试时利用在图像字幕数据集上学到的嵌入,即使没有输入字幕。
我们利用语言和视觉编码器为CLIP使用前缀调节。在测试时,我们使用用于图像字幕数据集的前缀,因为该数据集应涵盖更广泛的场景类型和词汇,从而在零样本识别中获得更好的性能。
![]() |
前缀调节的示意图。 |
实验结果
我们将前缀调节应用于两种对比损失,CLIP和UniCL,并将它们与仅使用ImageNet21K(IN21K)和Conceptual 12M(CC12M)训练的模型在零样本识别任务上进行性能评估。使用前缀调节训练的CLIP和UniCL模型在零样本分类准确性方面取得了显著提升。
![]() |
仅使用IN21K或CC12M训练的模型与使用前缀调节同时使用两个数据集训练的CLIP和UniCL模型的零样本分类准确性对比。 |
关于测试时前缀的研究
下表描述了测试时使用的前缀对性能的影响。我们证明通过使用与分类数据集相同的前缀(”Prompt”),可以提高分类数据集(IN-1K)的性能。当使用与图像字幕数据集相同的前缀(”Caption”)时,其他数据集(Zero-shot AVG)的性能也得到提高。这个分析说明,如果前缀为图像字幕数据集量身定制,它可以更好地泛化场景类型和词汇。
![]() |
测试时使用的前缀分析。 |
研究图像分布偏移的鲁棒性
我们使用ImageNet的变种来研究图像分布的偏移。我们发现,“Caption”前缀在ImageNet-R(IN-R)和ImageNet-Sketch(IN-S)中表现优于“Prompt”,但在ImageNet-V2(IN-V2)中表现不佳。这表明,“Caption”前缀在与分类数据集相距较远的领域上实现了泛化。因此,最佳前缀可能取决于测试领域与分类数据集之间的距离。
![]() |
对图像级别分布偏移的分析。IN:ImageNet,IN-V2:ImageNet-V2,IN-R:艺术,卡通风格的ImageNet,IN-S:ImageNet Sketch。 |
结论与未来工作
我们引入了前缀条件,并将其应用于图像标题和分类数据集的统一,以获得更好的零样本分类效果。我们展示了这种方法可以提高零样本分类的准确性,而且前缀可以控制语言嵌入的偏差。其中一个限制是在图像标题数据集上学习到的前缀不一定适用于零样本分类。确定每个测试数据集的最佳前缀是未来工作的一个有趣方向。
致谢
这项研究由Kuniaki Saito、Kihyuk Sohn、Xiang Zhang、Chun-Liang Li、Chen-Yu Lee、Kate Saenko和Tomas Pfister进行。感谢Zizhao Zhang和Sergey Ioffe提供的宝贵反馈。