还能这么玩?将Prompt Tuning用于细粒度的图像检索!

时间:2022-09-29 14:58:35

还能这么玩?将Prompt Tuning用于细粒度的图像检索!

【写在前面】

细粒度对象检索旨在学习判别表示以检索视觉上相似的对象。然而,现有的最佳性能作品通常在语义嵌入空间上施加成对的相似性,以在有限的数据体系中不断调整整个模型,从而导致容易收敛到次优解。本文提出了细粒度检索提示调优算法(FRPT),该算法从样本提示和特征自适应的角度出发,利用冻结的预训练模型来执行细粒度检索任务。具体地说,FRPT只需要在提示和自适应中学习较少的参数,而不是对整个模型进行调整,从而解决了对整个模型进行微调而导致的收敛到次最优解的问题。从技术上讲,作为样本提示,引入了结构扰动提示(SPP),通过内容感知的非均匀采样操作来缩放甚至夸大一些有助于类别预测的像素。这样,在原始预训练过程中,SPP算法可以使扰动提示辅助的细粒度检索任务更接近于已解决的任务。此外,作者提出了一种基于类别的认知头作为特征自适应,通过实例归一化消除了预训练的模型提取的特征中的实例差异,从而使优化后的特征只包含子类别之间的差异。大量实验表明,在较少可学习参数的情况下,FRPT在三个广泛使用的细粒度数据集上达到了最先进的性能。

1. 论文和代码地址

还能这么玩?将Prompt Tuning用于细粒度的图像检索!

Fine-grained Retrieval(FGOR)是检索属于某个元类别(如鸟类、汽车和飞机)的各个子类别的图像,并返回与查询图像具有相同子类别的图像。然而,检索视觉上相似的对象在实际应用中仍然具有挑战性,特别是当存在较大的类内差异而较小的类间差异时。因此,FGOR的关键在于学习区分和泛化嵌入来识别视觉上相似的对象。

最近,成功的FGOR通过设计专门的度量约束或定位对象甚至部分来针对类内较大但类间差异较小的情况进行。虽然基于度量和基于定位的工作可以学习区分嵌入来识别粒度对象,但从上一阶段学习的FGOR模型仍然需要在下一阶段无休止地微调,迫使该模型适应粒度检索任务。然而,不断调整FGOR模型可能会导致容易收敛到次优解决方案,特别是当面对有限的数据制度时,不可避免地限制了检索性能。因此,自然会产生一个问题: 在不需要微调整个FGOR模型的情况下,是否仍然可以学习差异性嵌入?

基于提示的学习是与任务相关的指令,用于下游输入,以使下游任务适应冻结的预训练模型。它的关键思想是通过适当的提示设计来重新制定下游任务,使其接近原始预训练期间解决的任务,而不是调整预训练模型以适应下游任务。遵循这一思想,视觉语言预训练任务得到了逐步发展,它通过将视觉类别语义作为提示放入文本输入中,从自然语言中获得视觉指导概念。尽管即使没有优化语言模型,在许多下游视觉任务上也能取得显著的性能,但它们的快速调整策略是为多模态模型量身定制的,不适用于预训练的视觉模型。因此,如何为预训练的视觉模型设计一个提示方案,以解决由于整个FGOR模型的优化而导致的次优解的收敛,值得研究。

在本文中,作者提出了具有结构扰动提示 (SPP),预训练的主干模型和**类别特定的感知头 (CAH) **的细粒度检索提示调整 (FRPT),它仅在冻结骨干模型权重的同时学习较少的SPP和CAH参数,从而解决了收敛到次优解的问题。具体而言,作为一个样本提示过程,SPP被设计为通过内容感知的非均匀采样操作来缩放甚至夸大有助于类别预测的一些元素。通过这种方式,SPP可以朝着便于类别预测的方向调整对象结构,这使得在此结构扰动下提示的FGOR任务在原始预训练期间接近已解决的任务。然而,一个不可忽略的问题是,没有调整的主干模型将专注于提取特征来回答这个问题,“物种之间的不同特征是什么”,而不是 “如何区分相同元类别中的粒度对象”。因此,CAH被视为特征自适应,通过使用实例归一化去除物种差异来优化骨干模型提取的特征,从而使优化后的特征仅包含子类别之间的差异。与 fine-tuning不同,FRPT具有较少的参数来训练,但由于SPP和CAH,仍然学习具有更大判别和泛化的嵌入,从而解决了由 fine-tuning整个模型引起的次优解的收敛。

本文的贡献如下:

1\. 作者提出FRPT从样本提示和特征适应的角度指导冻结的预训练模型来执行FGOR任务。本文是第一个专门开发基于提示的微调方案的工作,用于处理由FGOR中的优化策略引起的次优解决方案的收敛。

2.提出了一种结构扰动提示,以强调有助于决策边界的元素,该元素指示冻结的预训练模型捕获细微但有区别的细节。

3.一个类别特定的感知头旨在消除物种之间的差异,这使得特定的特征用于识别同一元类别中的特定粒度对象。

4\. FRPT只需要优化大约10% 的参数,而不是完全优化,甚至实现了新的最先进的结果,这是在三个广泛使用的粒度检索数据集上显著的 + 3.5% 平均检索精度的增益。

3. 方法

还能这么玩?将Prompt Tuning用于细粒度的图像检索!

作者提出了细粒度的检索提示调整 (FRPT),用于引导冻结的预训练模型执行FGOR任务。FRPT仅在示例提示和特征适应中优化较少的可学习参数,并在训练过程中保持主干冻结。通过这种方式,FRPT解决了由调整整个FGOR模型引起的次优解的收敛。

3.1 Network Architecture

网络体系结构在上图中给出。给定一个输入图像I,首先将其输入到结构扰动提示 (SPP) 模块中,以生成修改图像还能这么玩?将Prompt Tuning用于细粒度的图像检索!,该修改图像还能这么玩?将Prompt Tuning用于细粒度的图像检索!选择性地突出有助于决策边界的某些元素。之后,将修改后的图像还能这么玩?将Prompt Tuning用于细粒度的图像检索!作为冻结的预训练骨干的输入,从而输出语义特征还能这么玩?将Prompt Tuning用于细粒度的图像检索!。为了使还能这么玩?将Prompt Tuning用于细粒度的图像检索!识别同一元类别中的粒度对象,而不是识别不同的物种,将还能这么玩?将Prompt Tuning用于细粒度的图像检索!输入到类别特定的感知头 (CAH) 模块中,以生成类别特定的特征还能这么玩?将Prompt Tuning用于细粒度的图像检索!。最后,通过全局平均池化操作来获得区分嵌入,然后将它们应用于搜索具有相同子类别的其他样本。

3.2 Structure Perturbation Prompt

为了解决由优化整个模型引起的收敛到次优解的问题,作者受到了基于提示的学习的启发,只修改输入中的像素,这使得在提示接近预训练期间解决的提示的情况下进行了粒度检索任务。因此,作者提出了结构扰动提示 (SPP) 模块,以缩放甚至夸大某些有助于像素空间中类别预测的元素。通过这种方式,SPP可以用提示来操纵冻结的预训练模型,感知到更多的歧视性细节,从而带来了高质量的表示。具体而言,SPP由两个步骤组成。第一步,内容解析,是学习一个判别投影图,该图反映判别信息的位置和强度,第二步,结构修改,是在判别投影图的指导下,通过对每个输入图像执行内容感知的不均匀采样操作,放大判别元素。这两个步骤的详细说明如下。

Content parsing

感知细节和语义在扰动对象结构中起着至关重要的作用。基于此考虑,作者设计了一个内容解析模块,以从低级特征中感知区分语义和细节的位置和比例。内容解析有一个吸引人的属性: 大域的视图,可以在大的感受域内聚合上下文信息,而不是利用像素邻域。因此,内容解析可以从低级细节中捕获歧视性语义,同时保留歧视性细节。

给定输入图像还能这么玩?将Prompt Tuning用于细粒度的图像检索!,作者将I馈送到冻结的预训练表示模型还能这么玩?将Prompt Tuning用于细粒度的图像检索!的卷积块1中,以生成低级特征还能这么玩?将Prompt Tuning用于细粒度的图像检索!,其中还能这么玩?将Prompt Tuning用于细粒度的图像检索!是高度,通道的宽度和数量。应该明确的是,由于预训练的表示模型中的浅层对低级细节 (例如颜色和纹理) 敏感,因此不需要更新它们的参数,并且仍然可以很好地工作。

获得低级特征还能这么玩?将Prompt Tuning用于细粒度的图像检索!后,作者以内容感知的方式将其转换为判别投影图。具体地,判别投影图上的每个目标位置还能这么玩?将Prompt Tuning用于细粒度的图像检索!对应于还能这么玩?将Prompt Tuning用于细粒度的图像检索!上的 还能这么玩?将Prompt Tuning用于细粒度的图像检索!个源位置。因此,每个目标位置共享一个内容感知内核还能这么玩?将Prompt Tuning用于细粒度的图像检索!,其中 σ 是内容感知内核大小,并且不小于还能这么玩?将Prompt Tuning用于细粒度的图像检索!宽度的还能这么玩?将Prompt Tuning用于细粒度的图像检索!。使用共享内容感知内核还能这么玩?将Prompt Tuning用于细粒度的图像检索!,内容解析模块将指定区分语义和细节的位置,比例和强度。对于目标位置还能这么玩?将Prompt Tuning用于细粒度的图像检索!,计算公式如下所示,其中还能这么玩?将Prompt Tuning用于细粒度的图像检索!:

还能这么玩?将Prompt Tuning用于细粒度的图像检索!

在应用于结构修改操作之前,判别投影图A在空间上使用softmax函数进行归一化。归一化步骤将A中的权重值之和强制为1:

还能这么玩?将Prompt Tuning用于细粒度的图像检索!

Structure modification

结构修改模块利用判别投影图中样本点的空间信息和相应的样本权重来重新排列对象结构,这进一步突出了输入中有助于类别预测的一些元素。因此,修改后的图像还能这么玩?将Prompt Tuning用于细粒度的图像检索!可以表述如下:

还能这么玩?将Prompt Tuning用于细粒度的图像检索!

还能这么玩?将Prompt Tuning用于细粒度的图像检索!表示内容感知不均匀采样函数。

作者对非均匀采样的基本思想是将判别投影图A视为概率质量函数,其中A中具有较大样本权值的区域更有可能被采样。因此,作者计算修改 和原始图像之间的映射函数,然后使用STN 中引入的网格采样器来重新排列对象。映射函数可以分解为两个维度,即横轴维度和纵轴维度,从而降低了映射复杂度。以修改图像中的坐标 (x,y) 为例,可以计算原始输入中的映射坐标还能这么玩?将Prompt Tuning用于细粒度的图像检索!如下:

还能这么玩?将Prompt Tuning用于细粒度的图像检索!

其中还能这么玩?将Prompt Tuning用于细粒度的图像检索!是高斯距离核,用作正则化器,以避免某些极端情况,例如所有像素都收敛到同一位置。

修改图像的每个空间位置需要全局视角来选择原始输入中的填充像素,从而保留结构知识。此外,样本权重值大的区域被分配了更多的采样机会,从而放大甚至夸大了输入中的判别元素。更重要的是,修改后的图像中的每个像素彼此相关,并且对象结构受到轻微干扰,而不是被完全破坏。

在获得映射坐标后,然后使用STN中提出的可微双线性采样机制,该机制线性插值来近似最终输出,用还能这么玩?将Prompt Tuning用于细粒度的图像检索!表示

还能这么玩?将Prompt Tuning用于细粒度的图像检索!

其中还能这么玩?将Prompt Tuning用于细粒度的图像检索!表示I中映射点的邻居,还能这么玩?将Prompt Tuning用于细粒度的图像检索!是由映射点与其邻居之间的距离估计的双线性核权重。

3.3 Category-specific Awareness Head

CAH的核心是实例标准化(IN),它可以消除物种之间的差异。然而,直接使用IN可能会破坏区分信息,不可避免地影响目标检索的性能。针对这一局限性,作者设计了一种通道注意力引导的IN,在通道注意的基础上选择包含物种差异的特征,使用IN去除这些特征,并将原始的区分和优化的特征整合到类别特定的特征还能这么玩?将Prompt Tuning用于细粒度的图像检索!

还能这么玩?将Prompt Tuning用于细粒度的图像检索!

其中,还能这么玩?将Prompt Tuning用于细粒度的图像检索!表示不同通道特征的重要性的权重系数,还能这么玩?将Prompt Tuning用于细粒度的图像检索!是输入还能这么玩?将Prompt Tuning用于细粒度的图像检索!的实例归一化特征。受SENet的启发,通道注意力可以表示如下:

还能这么玩?将Prompt Tuning用于细粒度的图像检索!

其中g(·) 表示全局平均池化操作,还能这么玩?将Prompt Tuning用于细粒度的图像检索!还能这么玩?将Prompt Tuning用于细粒度的图像检索!是两个无偏置全连接层中的可学习参数,其后是ReLU激活函数 δ 和Sigmoid激活函数 σ。对于尺寸缩减比r,旨在平衡性能和复杂性,从而将其设置为8。IN的无参数定义为:

还能这么玩?将Prompt Tuning用于细粒度的图像检索!

其中还能这么玩?将Prompt Tuning用于细粒度的图像检索!是特征图还能这么玩?将Prompt Tuning用于细粒度的图像检索!的第i个通道,用于避免除以零,计算每个通道的平均值还能这么玩?将Prompt Tuning用于细粒度的图像检索!和标准差还能这么玩?将Prompt Tuning用于细粒度的图像检索!

3.4 Optimization

在获得类别特定的 特征后,仅用交叉熵损失训练模型。对分类器C(·) 施加以下交叉熵损失来预测子类:

还能这么玩?将Prompt Tuning用于细粒度的图像检索!

其中y表示标签,还能这么玩?将Prompt Tuning用于细粒度的图像检索!是具有参数 θ 的分类器的预测。优化过程只影响SPP和CAH模块内的参数,但在向后传播期间对骨干网络没有影响,从而解决了与收敛到次优解有关的问题,这是由于整个表示模型的优化。

4.实验

还能这么玩?将Prompt Tuning用于细粒度的图像检索!

上表展示了本文方法的消融实验的结果,可以看出,每个模块对整体模型的性能贡献。

还能这么玩?将Prompt Tuning用于细粒度的图像检索!

上表展示了不同的方法在CUB-200-2011, Stanford Cars-196和 FGVC Aircraft数据集上的实验结果,可以看出在相同的Backbone下,本文的方法能够达到更好的性能。

还能这么玩?将Prompt Tuning用于细粒度的图像检索!

不同的微调策略如上表所示,与冻结它们相比,调整预先训练的视觉模型可以降低检索性能。这种现象是合理的,因为在有限的粒度数据集上调整预训练模型可能会由于收敛到次优解决方案而损害其一般视觉建模的能力。

还能这么玩?将Prompt Tuning用于细粒度的图像检索!

为了更好地显示本文的FRPT的积极影响,作者在上图中可视化了检索精度和训练损失曲线。从FRPT曲线可以观察到,越来越多的训练epoch通常带来缓慢的性能改进,并且显著地提高了收敛速度。

还能这么玩?将Prompt Tuning用于细粒度的图像检索!

为了更深入地探索FRPT的有效性,作者基于few-shot设置进行了广泛的实验,每个子类有两个不同数量的样本: CUB-200-2011上的10和5。在上表中的5-shot和10-shot实验设置中。FRPT在不同的预先训练的视觉模型下始终优于微调策略。与使用CUB-200-2011中的所有图像进行调整的预训练模型相比,本文的FRPT每个子类仅使用10个样本,但获得了接近性能。

还能这么玩?将Prompt Tuning用于细粒度的图像检索!

上表所示,将处理方法从结构扰动提示 (SPP) 切换到固定提示策略,即直接缩放对象,会导致明显的性能下降。具体来说,作者使用类激活图 (CAM) 或注释信息提供的边界框来定位对象,然后从原始图像中裁剪它们。

还能这么玩?将Prompt Tuning用于细粒度的图像检索!

作者在上图中展示了原始图像和修改图像的可视化结果。这些可视化图像可以解释为什么以及如何本文的方法可以正确地识别不同的子类别。

还能这么玩?将Prompt Tuning用于细粒度的图像检索!

在上图中,除了显示原始图像和修改图像之外,作者还提供了三种表示模型的判别激活图。

5. 总结

在本文中,作者提出了细粒度的检索提示调整 (FRPT),旨在解决由整个FGOR模型的优化引起的次优解的收敛。FRPT设计结构扰动提示 (SPP) 和类别特定感知头 (CAH),以引导冻结的预训练视觉模型执行非特别的检索任务。从技术上讲,SPP缩放并夸大了一些有助于类别预测的像素,这有助于这种结构扰动促使冻结的预训练模型专注于歧视性细节。CAH通过使用实例归一化消除物种差异来优化由预训练模型提取的语义特征,这使得优化后的特征对同一元类别内的粒度对象敏感。与 fine-tuning方案相比,FRPT具有较少的参数来训练,但由于SPP和CAH,仍然学习具有更大判别和泛化的嵌入,从而解决了由 fi ne-tuning整个FGOR模型引起的次优解的收敛。广泛的实验表明,本文的FRPT具有较少的可学习参数,在三个广泛使用的 fine-grained数据集上实现了最先进的性能。

【项目推荐】

面向小白的顶会论文核心代码库:​https://github.com/xmu-xiaoma666/External-Attention-pytorch​

面向小白的YOLO目标检测库:​https://github.com/iscyy/yoloair​

面向小白的顶刊顶会的论文解析:​https://github.com/xmu-xiaoma666/FightingCV-Paper-Reading​

还能这么玩?将Prompt Tuning用于细粒度的图像检索!

“点个在看,月薪十万!”

“学会点赞,身价千万!”