作者提出将patch表示按视图排序作为一项新的自监督学习信号来改进预训练表示。 为此,作者引入了NeCo:Patch邻域一致性,这是一种新型的训练损失,它要求学生在学生模型和教师模型之间实现与参考批有关的patch Level 最近邻一致性。作者的方法利用在预训练表示上应用的不同可微排序方法,例如DINOv2-registers来提振学习信号并进一步提高它们。 这种密集的预后训练导致各种模型和数据集上的优越性能,仅在单个GPU上需要19个小时。 作者证明这种方法可以生成高质量的密集特征编码器,并确定了多个最新的state-of-the-art结果:在ADE20k和Pascal VOC上,非参数上下文语义分割分别提高了+ 5.5%和+ 6%; 在COCO-Things和-Stuff上的线性分割评估分别提高了+ 7.2%和+ 5.7%。
密集自我监督学习训练特征提取器,以在没有监督的情况下为图像中的每个像素或块产生表示。近年来,该领域取得了显著的进展,主要改善了无监督语义分割 ,以图像为中心的代表学习 ,以及其他密集的下游任务,如物体追踪和目标检测。
特别有趣的一个密集预训练编码器的用例是由Balazevic等人开发的[10]。他们提出将语义分割作为最近邻检索问题来解决,利用空间块的特征。这种非参数方法不仅反映了大型语言模型(LLMs) [11]中的上下文学习,还能快速、可靠地工作,尤其是在数据有限的情况下。
受到这个想法的启发,作者把这个评估方法反过来,提出将最近邻检索作为编码器的训练机制。通过将最近邻关系集成到训练阶段,作者旨在训练可以自然聚类和区分复杂视觉相似性的模型。这种方法承诺可以产生专门针对上下文任务的深度语义空间特征,提高其适应性和鲁棒性。然而,虽然具有前景,但它面临两个主要挑战。
首先,监督源。在评估中,使用真实标签,但作者感兴趣的是获得更好的自我监督表示。以前的工作 [10; 9]基本上通过将密集学习转换为图像级学习来解决这个问题,但作者提供更实用和通用的解决方案。作者仅仅从已经图像级的预训练模型开始,并进一步调整它们。作者称之为"密集后预训练"阶段,并证明它是这个问题的有效和快速解决方案,仅在一个GPU上进行调优,在19小时内完成了ViT-S/16型号的调整。
第二个挑战是最邻近检索的离散性,它不会产生梯度。为了克服这一点,作者应用了一个原用于排序监督的可微分排序方法 [12],作者可以用它来反向传播梯度。如作者所证明的那样,这使得算法更加高效和有效。作者的方法强制执行Patch Neighbor Consistency,所以作者称它为NeCo。作者证明它可以应用于图像级预训练模型,如DINO [13],密集训练的模型,如iBOT [14],Leopart [1],CrIBO [9]和DINOv2 [15, 16],以获得更好的上下文场景理解特征。尽管作者的NeCo训练任务并不像,但作者的方法在非监督语义和线性分割等下游基准测试中也一直保持一致的改进。
总的来说,作者的贡献可以总结如下:
密集自监督学习
密集自监督学习方法旨在在像素或图块 Level 生成可分类的表示,而不是在图像 Level 。由于图像层面的自监督学习方法并不一定产生表达密集表示,因此这个领域引起了广泛关注。
CroC[4]是最近的一种方法,提出了一种密集自监督损失来解决该问题。它应用了不同视图之间的联合聚类,确保同一目标捕捉到的聚类中心相似。Leopart[1]通过应用密集聚类损失来提高预训练模型的密集表示。在此基础上,Timetuning[2]发现在标注无标签视频的模态时间轴上的微调预训练 Backbone 网络可以增强密集推理能力。最近,Hummingbird[10]提出了一种通过训练中利用图像内和跨图像内的注意机制和注意力来获得强大的上下文场景理解,从而实现强大的在 context 场景理解。CrIBo[9]则进一步通过在图像目标之间强制遵守cross-image最近邻一致性,实现了 state-of-the-art 的结果。
作者采用最近邻一致性,主要是因为在-context场景理解中获得了良好的结果,但是有两个主要差异:(1) 而不是使用图像或目标 Level 的池化版本;(2) 在原始聚类结果的基础上,作者还确保了对于同一图像的同一聚类从不同视图中邻居的顺序相似。这些变化导致更多的语义性图块级特征,直接提高了密集任务,例如语义分割的上下文理解,并稳定了训练。因为在这种情况下,不需要通过聚类方法来推理目标级的特征,而训练过程中的聚类方法可能是不稳定的。
无监督目标分割。有许多研究针对无监督目标分割。这些工作的目标是学习语义性图块级表示,而非利用已经冻结的预训练 Backbone 网络并训练另一个模型以明确解决语义分割。例如,Seitzer等人训练了槽注意编码器和解码器模块[45],将DINO[13]预训练的特征用每个输入图像的几张图片进行重建。这个过程可以实现每张图像的目标群集映射,其中每张图片的每个槽都代表图像中的一个独立的目标或图像中的部分目标。
与对比,作者的方法学习各种目标的不同特征,并使用作为密集表示例如语义分割的中间体进行密集任务。
这些特征可用于开发针对特定数据集的群集映射,以满足语义分割的用例。
该论文的目标旨在建立一个特征空间,其中,对于给定的输入,表示相同目标的 Patch 显示出相似的特征,而表示不同目标的目标显示出独特的特征。自监督方法在这个过程中面临的关键挑战之一是定义图像 Patch 之间的相似性。尽管来自同一目标的 Patch (例如,一只猫)应比来自不同目标(例如,一条狗)的 Patch 更相似,但它们仍然可能会描绘目标的不同的部分(例如,猫的尾巴和腿)。部分物体表示和整体物体表示都有重要的应用。因此,仅针对每个目标建立一个聚类是不够的。相反,这需要准确地定义相似性的顺序,这样,表示同一目标及其部分的目标的 Patch 之间的相似性更大,而与其他目标的 Patch 之间的相似性更小。为此,作者的方法通过提取输入的密集特征,计算其配对距离,并在 batch 中的最近邻居的顺序上施加一致性,来实现这一目标。图1提供了该方法的整体概述,下面作者将详细描述该方法。
特征提取和对齐. 对于输入图像 ,作者使用深度可分离卷积(DSC)并采用随机的变换来创建两个不同的视图 和 。这些视图被分成 个单独的 Patch ,其中 和 分别表示输入图像的高度和宽度, 表示 Patch 大小。 Patch 被表示为 和 ,并输入到特征提取器中。
作者利用视觉Transformer (ViT) 架构 [46]作为基础,并采用教师-学生框架。在教师模型中,学生和教师模型分别是 和 。教师的权重使用学生权重随时间指数加权更新。
由于生成的视图覆盖输入的不同部分,提取的特征不必然对应于相同的目标。为此,作者通过应用根据裁剪扩展参数调整的 RoI Align [47],来对特征进行对齐。这个过程为教师和学生网络创建了空间对齐的密集特征,分别表示为 和 。然后,这些特征被强制维持最近邻居一致的顺序,以确保更强大和有意义的特征表示。
成对距离计算.为了识别 Patch 图块的最接近邻居,作者需要从批量图像中提取特征并计算它们相对于 和 的距离。为了实现这一目标,作者将批量图像输入到学生网络 中,以获得批量特征 。作者从这些 Patch 中随机采样一个很小的比例 ,以获得参考 Patch ,作者使用这些特征来比较作者的和 特征的最接近邻居。为此,作者根据余弦相似度计算距离,
(2)
接下来,将这些距离矩阵以可微分的方式排序,以生成一个损失,它强制在两个视图之间进行相似的排序。
可微分距离排序.为了确定最近邻居的顺序,需要对距离矩阵进行排序。然而,传统的排序算法无法传递梯度,因为它们使用非可微分操作,如 和 ,以便在序列中的 a<bs="\left(d_{1},\ldots,d_{R}\right)r="" 是序列的长度,作者使用最近工作="" [17]="" 中定义的这些操作的松弛、可微分版本,如下所示:<="" p="">
在本研究中,作者使用了逆温度参数β>0的函数,其中β是操作数的陡峭程度参数。这条曲线呈现出S形,并在x=0处聚集。随着β接近无穷大,松弛收敛到离散交换操作。这种操作可以定义在近似交换矩阵中,该矩阵本质上是单位矩阵,除了定义为 ,, 和 以外,(见式7)。这样,在序列中的交换双(,)的一步与将矩阵 与该序列相乘等同。整个序列的最后交换矩阵由所采用的排序算法决定。例如,在奇偶排序算法中,步骤的交换矩阵 被定义为:
其中 是当t为奇数时是奇数索引集合,当t为偶数时是偶数索引集合。获得总体交换矩阵的方法是多次求和所有步骤的排序矩阵,。如[12]所示,这些步骤中的任意个步骤就足以实现有效的排序。在离散情况下,对于每个列,交换矩阵恰好有且只有一个1,它指示序列中的第几项应放入第i列。在放松版本中,列值表示可能的序列元素分布。在作者的情况下,距离矩阵中的第i行表示第i个学生特征到所有参考特征的距离。
通过其排序矩阵,元素可以被视为参考特征被第i个特征的第k个最近邻居的概率。因此,为了保持每个ROI-aligned patch feature的最近邻居顺序,作者计算针对和的所有行,并强制它们相似。这导致了一系列最终矩阵和,它们被用于训练损失。
训练损失。在计算置换矩阵之后,作者针对每个对齐 Patch 的特征使用交叉熵损失对最接近邻居的顺序进行相似性约束。 Patch 的置换矩阵的损失定义如下:
为了确保邻居的稳健一致性,作者在两个方向上计算交叉熵损失并求和。考虑所有 Patch 的最终训练损失,将两个方向的损失相加:。这确保了学生在和老师特征在两个方向上的最近邻居顺序具有连续一致的不同iable性。
比较方法。作者将方法与最先进的密集自监督学习方法进行比较,包括CrIBo [9],Hummingbird [10],TimeT [2]和Leopart [1]。为了提供更全面的评估,作者还包括具有注册的DINOv2增强方法DINOv2R [15; 16],因为它展示了强大的密集能力。此外,作者将方法与最优秀的无监督语义分割方法进行了比较,如COMUS [44]。
训练。作者在ViT-Small和ViT-Base上运行作者的实验,使用14的 Patch 大小。作者从各种预训练的 Backbone 中开始,除非特别说明,否则使用具有注册的DINOv2。作者对这些模型在单个NVIDIA RTX A6000-46GB GPU上预训练25个COCO周期,大约需要19个小时。关于其他训练细节,请参阅附录A。
评估。在作者所有的评估中,作者都丢弃了投影头,遵循之前的许多工作[13; 1; 2],并直接使用视觉 Transformer Backbone 的时空标记。所有实验中的结果都报告为均值交并集(mIoU)。作者进行了四种类型的评估:线性分割微调与1x1卷积,端到端分割与Segmenter头[48],聚类与超聚类语义分割[1; 2],以及密集最近邻检索[10]。对于聚类与超聚类,作者应用K-Means到时空标记,将K设置为真实目标的数量和高值,如300和500,正如之前[1; 2]中所用。然后,作者提取目标聚类图,并使用匈牙利匹配[49]进行匹配。对于密集最近邻检索,作者遵循[10]的协议实现,具体实现请参见[50]。
数据集。作者在ImageNet-100 [51],Pascal VOC12 [52],和COCO [53]上训练模型以进行消融实验,并将COCO作为所有最先进比较的主要训练数据集。对于评估,作者使用Pascal VOC12 [52],COCO [53],ADE20k [54]和Pascal Context [55]的验证集。对于在COCO [56]上的微调和特征迁移能力评估,作者使用训练集的10%进行训练,而其他数据集则使用完整的训练切分。
在这一节中,作者首先比较了通过最近邻检索和无监督语义分割任务获得的NeCo冷冻特征与最先进的最小二乘学习方法的性能。然后,作者通过将NeCo应用于五个不同的预训练模型,证明了其多功能性,并展示了它在这些密集特征上的一致性改进。最后,作者使用线性目标分割和端到端微调Segmentor对所学习的密集表示在其他数据集上的可迁移性进行了评估。
视觉最近邻学习评估。作者将作者的方法与最近提出的用于评估视觉模型最近邻推理的基准[10]进行比较。与传统线性分割方法不同,这种评估不需要微调或端到端训练。相反,它通过在验证图像( Query )和训练样本(键)之间匹配 patch Level 的,特征级的最近邻相似度来创建验证分割图。这种方法灵感来自 NLPstrategies,测试模型从几个示例中学习任务的能力。结果如图2所示。如图所示,NeCo 在 Pascal 和 ADE20k 上分别比 CrIBo 和 DINov2R 提高了 4%至 13%。NeCo 与其他方法之间的性能差距在数据效率领域增加,尤其是当模型较大时。这一改进归因于作者方法明确执行的 patch Level 最近邻一致性,导致即使图像较少,捕获的 patch Level 表示仍然有效。相比之下,其他方法可能促进图像 Level [10]或目标 Level [9]一致性,导致池化向量之间的冗余,可能导致在小型数据集中不足的语义 patch Level 表示。作者的方法在少量图像上的出色性能使视觉模型向最近邻学习风格的通才推理迈进了一步。有关完整表格和高模型缩放结果的详细信息,请参阅附录 B.3。有关可视化,请参阅附录 C。
基于冷冻聚类的评估。接下来,作者在每个数据集中的不同目标上衡量作者学习的密集特征的质量。理想情况下,作者希望属于同一目标的所有 patch 特征在聚类时应被分配到同一聚类。如果学习的表示更加精细,例如学习目标部分而不是整个目标(例如手或脸而不是一个人),它们应在整个数据集中始终覆盖相同的部分。为了衡量这一点,作者从所有图像中提取密集特征并应用各种 K 值进行 -means 聚类以创建每个图像的聚类图。然后将这些聚类图与 GT 使用匈牙利匹配[49],并报告它们的 mIoU。对于第一种情况,K 等于 GT 的物体数量。此外,为了考虑第二种情况,作者还报告了超聚类设置下的性能。
表1a的结果显示出,在各种数据集和指标上比CrIBo平均好14.5%。注意,这种好处不是由于DINOv2R的初始化,因为它在平均上比CrIBo低4%。在表1b中,作者报告了当K与实际物体的数量相匹配时的聚类性能,只将聚类应用于[1, 2]中使用的预训练方法提取的前景 Patch 。在没有依赖自训练的情况下,作者至少比其他方法快5.1%,而不依赖自训练,而COMUS中的自训练方法需要针对每个类别训练一个独立的分割头。
线性语义分割评价。在本实验中,作者将预训练 Backbone 固定,并在空间特征上训练一个线性层来解决有监督的语义分割任务。双线性插值用于将空间特征分辨率与图像尺寸匹配,从而使像素级交叉熵损失的应用成为可能。与端到端微调相比,这种设置提供了更好评价预训练模型的方式,后者全部学习参数都被覆盖了。表2中的结果显示,在所有数据集上比CrIBo至少快10%,并且在DINOv2R上比DINOv2R快5%到7%。这些显著的改进表明,表示相同物体或物体部分的部分在特征空间中的相似性较高,因为一个简单的线性层可以利用这些特征进行强大的语义分割。
兼容性与不同预训练 Backbone 。如表3所示,作者的方法对不同的自监督学习初始化具有可移植性,在不同指标和数据集上的改进分别约为4%到30%。令人惊讶的是,《NeCo》甚至增强了专门针对密集任务设计的方法的性能,例如CrIBo、TimeT和CrIBo。CrIBo在对超聚类的评估中实现了约5%的性能提高,这衡量了在预训练期间学习到的表示的细微粒度和语义。因此,表示CrIBo的NeCo能提取出更具区分性的特征,从而提高迁移性能,这在Pascal VOC和COCO-Things上的线性分类性能分别提高了0.5%和3.7%。
端到端全模型微调评估。自监督预训练的一个优势是将学习到的通用语义特征转移到专业的下游任务,提高端到端全模型微调设置下的性能。作者通过在特征提取器之上添加Segmenter [48]的基于 Transformer 的解码器来评估NeCo的这种能力,并对整个网络进行全模型微调进行语义分割。 Backbone 网络的 spatial 特征与K可学习的class tokens一起输入到 Transformer 解码器中。这些class和spatial tokens被映射到彼此以获得patch Level 的预测,这些预测然后被上采样以匹配输入图像大小,强制执行像素 Level 的交叉熵损失。作者在Table 4中报告在Pascal VOC,Pascal Context,COCO-Stuff和ADE20k上的mIoU得分。尽管所有参数均进行调整,但结果显示NeCo学习到更优秀的特征,导致在下游任务上获得更好的性能,比CrIBo提高了近4%。值得注意的是,虽然DINOv2R在各种任务(包括语义分割)上显示出强大的迁移结果,这是由于在142M图像的大数据集上进行训练和采用密集和分类损失的组合,但NeCo仍然超过了它。通过仅在COCO上训练19个GPU小时(即原始计算量的百分之一),作者获得了持续的收益,打破了新的最先进水平。
作者通过对Pascal VOC12和ADE20k进行参数调整的NeCo训练,来检查作者的方法的基本参数。作者使用每个参数组学到的冻结表示来评估其线性分割和上下文场景理解能力。在对上下文场景理解评估中,作者使用了训练数据的,将空间维数降为,并将线性分割评估的训练周期设置为20周期。参数量的信息将在附录B中详细说明。
Patch选择方法。作者在表4(a)中展示了从前景、背景或两者中选择Patch的效果。作者发现从前景中选择Patch与背景选择相比,在3个指标上提高了1%。然而,当选择两个位置的Patch时,性能达到最佳。这一改进归因于训练使用以场景为中心的图像,其中背景通常包含有意义的物体,有助于提高性能。
使用教师。作者在表4(b)中分析了教师-学生架构在Table 4(b)中的作用。如所示,使用经过指数移动平均更新的教师网络可以显著提高最近邻选择方法。作者在表4(c)中评估了从同一图像(内)或不同批次图像(间)选择最近邻的影响。结果表明,跨图像选择Patch可以显著提高各个方面大约0.4%至1%的性能。后者方法中参与Patch的更大多样性可能导致这种改进。
训练数据集。表4(d)展示了基于ImageNet-100、Pascal和 COCO数据集训练的影响。ImageNet-100包含相对简单的图像,即物体较少,而Pascal和COCO具有更复杂的场景,即多个物体。作者的方法在多物场景上始终获得改进,如在COCO上的性能比ImageNet-100提高了2%至7%。这种改进归因于多物场景中每一批次物体的数量和多样性更大,这通过需要区分更多的物体提供更强烈的学习信号。有趣的是,尽管Pascal已经在该数据集上进行过训练,作者在Pascal上再次对DINOv2R进行微调所观察到的额外性能提升,再次证实了作者提出的损失函数的有效性。
排序算法。作者在表4(e)中分析了改变排序算法的效果。作者的方法在不同的排序方法下表现出稳健的性能,使用Bitonic排序获得最佳性能,平均性能略有改善。作者在附录B.4中提供了关于排序陡度参数对方法的稳健性进行表4(e)的讨论。由于作者的方法对参数变化较为敏感。
更广泛的影响。通过利用预训练模型,作者的方法对模型训练的碳足迹产生了影响。类似于一旦LLM训练完成,它就可以重新使用并进行微调,作者证明这对视觉基础模型是可以实现的。作者的微调仅需要 19 GPU-h,但训练出了在稠密图像理解方面远远更好的模型。作者认为这项工作推动了后预训练方法的研究。
结论。在这项工作中,作者提出 Patch Nearest Neighbor Consistency 作为自监督 Backbone 的稠密后预训练的新方法。通过将作者的方法应用于包括DINOv2-registers模型在内的许多 Backbone ,作者在冻结聚类、语义分割和完整微调方面极大地改进了这些模型,实现了多项新的 state-of-the-art 性能。