
FightingCV
2022/10/26阅读:80主题:默认主题
如何训练用于图像检索的Vision Transformer?Facebook研究员解决了这个问题!
如何训练用于图像检索的Vision Transformer?Facebook研究员解决了这个问题!
【写在前面】
Transformer在自然语言理解以及最近的图像分类方面显示出出色的结果。作者在这里扩展了这项工作并提出了一种基于Transformer的图像检索方法:采用视觉Transformer来生成图像描述符,并使用度量学习目标训练得到的模型,该目标将对比损失与差分熵正则化器相结合。结果表明,与基于卷积的方法相比,Transformer 具有一致且显着的改进。特别是,本文的方法在几个用于类别级检索的公共基准测试(即斯坦福在线产品、In-Shop 和 CUB-200)上优于最先进的方法。此外,本文在 ROxford 和 RParis 上的实验还表明,在可比较的环境中,transformer 在特定对象检索方面具有竞争力,尤其是在短向量表示和低分辨率图像的情况下。
1. 论文和代码地址

Training Vision Transformers for Image Retrieval
论文地址:https://arxiv.org/abs/2102.05644[1]
代码地址:未开源
2. 动机
推理的基本技能之一是能够预测实体之间的相似性,即使之前没有观察到此类实体。在计算机视觉的背景下,学习相似度度量有许多直接的应用,例如基于内容的图像检索、人脸识别和人员重新识别。它也是许多其他计算机视觉任务(如零样本和少样本学习)的关键组成部分。最近,度量学习的进步对于自监督学习的进步至关重要,自监督学习依赖于将两个图像匹配到数据增强作为学习范式。
现代图像检索方法通常依赖于卷积编码器并提取紧凑的图像级描述符。一些早期的方法使用现成的预训练模型提供的激活。然而,专门为图像检索训练的模型取得更好的成绩。已经提出了许多有效的目标函数来惩罚计算的相似性和ground truth之间的差异。此外,研究一直集中在改进采样方法和数据增强策略上。
Transformer已成功用于许多 NLP 任务,最近还用于图像分类的核心计算机视觉任务。这是一个有趣的发展,因为与当前占主导地位的卷积架构相比,适用于计算机视觉的基于Transformer的模型具有一组不同的归纳偏差。这表明此类模型可能会找到替代解决方案并避免卷积主干的典型错误。虽然已经做出了一些努力来探索基于注意力的图像度量学习,但据在这种情况下尚未研究采用普通Transformer。

在这项工作中,作者提出并研究了图像检索Transformer (IRT)。如上图所示,本文的 IRT 模型实例化了一个带有 Transformer 主干的 Siamese 架构。 作者采用了对比损失和差分熵正则化,它有利于表示空间的一致性并提高性能。
作者进行了广泛的实验评估,并通过考虑两个图像检索任务来验证本文的方法。首先,作者研究类别级图像检索的任务,该任务通常用于衡量度量学习的进展。作者还探索特定对象的检索,并将本文的方法与相似设置(相同分辨率和相似复杂度)下的卷积基线进行比较。
本文的主要贡献如下:
-
提出了一种简单的方法来训练基于类别的级别和特定对象检索的视觉Transformer ,并且与具有相似容量的卷积模型相比,实现了具有竞争力的性能。
-
在三个流行的类别级检索基准上建立了最新的技术水平。
-
对于特定的对象检索,在短向量表示(128 个 component)的情况下,在 ROxford 和 RParis 上的结果与以更高的分辨率和 FLOPS 运行的卷积网络相当。
-
展示了微分熵正则化器增强了对比损失并提高了整体性能。
3. 方法
在本节中,在回顾了Transformer架构之后,作者详细介绍了如何将其调整到类别级别和特定对象检索。请注意,在文献中,这些任务已通过不同的技术解决。在本文的案例中,作者对这两个问题使用相同的方法,并逐步介绍它的不同组成部分,如下:
-
-从 ViT 主干中提取现成的特征,在 ImageNet 上进行预训练。
-
-使用度量学习微调Transformer,特别是对比损失。
-
-额外正则化输出特征空间以鼓励一致性。
3.1. Preliminaries: Vision Transformer
让我们回顾一下基于ViT 的模型的主要构建块。输入图像首先被分解为 M 个固定大小的块(例如 16×16)。每个patch被线性投影到 M 个向量形状的token中,并以排列不变的方式用作Transformer的输入。通过向输入token添加可学习的一维位置编码向量来合并位置先验。一个额外的可学习 CLS token被添加到输入序列中,使其对应的输出token用作全局图像表示。
Transformer 由 L 层组成,每一层由两个主要块组成:一个多头自注意 (MSA) 层,它将自注意操作应用于输入token的不同投影,以及一个前馈网络 ( FFN)。 MSA 和 FFN 层之前都是层归一化,然后是skip连接。

上表展示了本文使用的神经网络模型。它们都仅在 ImageNet1k上进行了预训练。为了与其他检索方法进行公平比较,作者选择使用 ViT 架构的 DeiT-Small 变体作为本文的主要模型。DeiT-Small 模型具有相对紧凑的尺寸,使其在参数计数和 FLOPS 方面与广泛采用的 ResNet-50 卷积模型相当。此外,作者还提供了一些大型模型(如 ResNet-101 和 DeiT-Base)的分析和结果Base 以及具有高级预训练的 DeiT 变体。
3.2. IRTO: off-the-shelf features with Transformers
作者首先考虑简单的方法 IRTO,直接从在 ImageNet 上预训练的Transformer中提取特征。该策略与使用卷积网络进行图像检索的早期工作一致,这些工作具有激活特征。
作者提取了一个紧凑的向量描述符,它在全局范围内表示图像。在 ViT 架构中,预分类层输出 M + 1 个向量,对应于 M 个输入patch和一个类 (CLS) 嵌入。
在引用池化方法 CLS 中,作者遵循 BERT和 ViT 模型的精神,并将此类嵌入视为全局图像描述符。此外,作者研究了卷积度量学习模型通常使用的全局池化方法的性能,包括平均、最大值和广义平均 (GeM) 池化,并将它们应用于 M 个输出token。
作者遵循在池化后将描述符向量投影到单位球中的常见做法。在目标维度小于架构提供的维度的情况下,此外可以选择在对其进行归一化之前通过主成分分析 (PCA) 减少向量。
3.3. IRTL: Learning the Metric for Image Retrieval
作者现在考虑一种用于图像检索的度量学习方法,用 IRTL 表示。它是类别级别和特定对象检索的主要方法。在本文的例子中,作者将它与Transformer而不是卷积神经网络结合起来。作者采用带有跨batch记忆的对比损失,并为度量学习目标默认固定边距 β = 0.5。
对比损失最大化具有相同标签 y(或任何其他预定义相似性规则)的样本的编码低维表示 之间的相似性。同时,它最小化了具有不匹配标签的样本表示之间的相似性,这些标签被称为负样本。对于对比损失,只有相似度高于恒定边距 β 的负对对损失有贡献。这可以防止训练信号被简单的负值淹没。形式上,一个batch大小为 N 的对比损失定义为:
表示 被假定为 l2 归一化,因此内积等价于余弦相似度。
3.4. IRTR: Differential Entropy Regularization
最近,一些工作研究了一组成对损失之间的联系以及学习表示 和相应的真实标签 之间的互信息最大化。本文对对比损失的特殊情况感兴趣。互信息定义为:
对比损失的正项导致条件微分熵 的最小化,其中直观地,属于同一类别的样本表示被训练为更相似:
另一方面,这种损失的负项负责防止所有样本表示都折叠到一个点的琐碎解决方案。因此,它最大化了学习表示的熵:
边际 β 在训练动态中起着重要作用。 β 的低值允许探索更多的负样本。然而在这种情况下,简单的负数会主导训练并导致性能停滞不前。相反,较高的 β 值只会接受难负样本,可能会导致噪声梯度和不稳定的训练。
受负对比项的熵最大化观点的启发,作者添加了一个熵最大化项,该项与边缘接受的负样本无关。具体来说,作者使用微分熵损失。它基于 Kozachenko & Leonenko微分熵估计器:

其中 。换句话说,这种正则化最大化了每个点与其最近邻点之间的距离,从而缓解了崩溃问题。只需将正则化项添加到由正则化强度系数 λ 加权的对比损失中: 。
直观地说,不同的熵正则化通过增加它们与正样本以及样本负样本的距离来防止不同样本的表示在超球面上过于靠近。具有极小距离的难负片是训练信号中的主要噪声源。
3.5. Analysis
作者研究了在使用对比损失进行训练时输出表示空间的行为,以及通过差分熵正则化增加这种损失如何影响空间属性和模型性能。

在上图中,作者检查了来自现成的 ImageNet 预训练模型以及使用对比损失训练的模型的特征的主要成分的累积能量。作者观察到,与未经训练的模型相比,经过对比损失训练后的特征在维度上会出现崩溃。这表明嵌入空间的表示能力没有得到有效利用,因为对齐优于均匀性,而两者都是良好表示所必需的。当我们通过差分熵正则化增加对比损失时,累积能量会分布在更多维度上(参见上图,λ 值非零)。较高的 λ 值缓解了维度崩溃问题。

另一个观察结果是,基于 Transformer 的架构比 convnet 受崩溃的影响更小(参见上图)。尽管与 ResNet-50 模型相比具有较低的外部维度,但 DeiT-Small 特征更多地分布在主要成分上。这种行为的一个可能原因是在多头注意力中,每个输入特征在注意力操作之前被投影到不同的子空间,从而降低了崩溃的风险。
4.实验

本文方法在不同数据集上和SOTA的对比结果。


消融实验结果。

不同变体的相似度分布结果。
5. 总结
在本文中,作者探索了如何使Transformer架构适应度量学习和图像检索。在这种情况下,作者重新审视了对比损失公式,并表明基于单位超球面上的差分熵损失扩展向量的正则化器可以提高基于Transformer的模型以及卷积模型的性能。因此,作者建立了类别级图像检索的最新技术。最后,作者证明,对于可比较的设置,基于Transformer的模型是用于特定对象检索的卷积骨干网的有吸引力的替代方案,尤其是对于短向量表示。它们的性能与复杂度更高的卷积网络相比具有竞争力。
【项目推荐】
面向小白的顶会论文核心代码库:https://github.com/xmu-xiaoma666/External-Attention-pytorch[2]
面向小白的YOLO目标检测库:https://github.com/iscyy/yoloair[3]
面向小白的顶刊顶会的论文解析:https://github.com/xmu-xiaoma666/FightingCV-Paper-Reading[4]

“点个在看,月薪十万!” “学会点赞,身价千万!”
【技术交流】
已建立深度学习公众号——FightingCV,关注于最新论文解读、基础知识巩固、学术科研交流,欢迎大家关注!!!
请关注FightingCV公众号,并后台回复ECCV2022即可获得ECCV中稿论文汇总列表。
推荐加入FightingCV交流群,每日会发送论文解析、算法和代码的干货分享,进行学术交流,加群请添加小助手wx:FightngCV666,备注:地区-学校(公司)-名称

参考资料
https://arxiv.org/abs/2102.05644: https://arxiv.org/abs/2102.05644
[2]https://github.com/xmu-xiaoma666/External-Attention-pytorch: https://github.com/xmu-xiaoma666/External-Attention-pytorch
[3]https://github.com/iscyy/yoloair: https://github.com/iscyy/yoloair
[4]https://github.com/xmu-xiaoma666/FightingCV-Paper-Reading: https://github.com/xmu-xiaoma666/FightingCV-Paper-Reading
作者介绍

FightingCV
公众号 FightingCV