ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Meta发布的自监督ViT DINO的发展史:从DINO、DINOv2到通用视觉特征提取器DINOv3

Meta发布的自监督ViT DINO的发展史:从DINO、DINOv2到通用视觉特征提取器DINOv3 前言之所以关注到DINOV2一方面在于我解读多个具身机器人模型时——发现他们的视觉基座都用的DINOV2比如rekepOpen-TeleVisionOpenVLACogACTOKAMI二方面在于相比于需要标注数据的「全监督-图像分割SAM」依赖图像 - 文本对进行训练的「弱监督-语义理解CLIP」基于自监督学习的『视觉特征提取器DINO』具备直接从图像本身生成学习信号的优势数据准备门槛更低更容易实现更大规模的数据学习以达到更精细的图像特征泛化性更强不过实话讲Meta发布的自监督ViT DINOv1及其v2论文的可读性是真的不高使得本次解读不易PS本文一开始的标题是《自监督ViT与目标检测从基于ViT的DINO、DINOv2到最新目标检测器Grounding Dino、DINO-X》前两部分「DINOv1及其v2」的含义是自监督ViT后两部分「Grounding Dino和DINO-X」的含义是目标检测器但后按读者Whynot886的建议把这两部分分开了前两部分的内容一开始为Meta发布的自监督ViT——从DINO到DINOv2后两部分的内容详见此文《IDEA-Research推出的一系列检测、分割模型从DINO(改进版DETR)、Grounding Dino、DINO-X到Grounded SAM2》再后来的25年8月中旬DINOv3出来了故又对其解读了下作为本文的第三部分第一部分 DINO自监督ViT1.1 提出背景与相关工作1.1.1 DINO的提出背景近年来Transformer [70] 已经成为视觉识别领域中卷积神经网络convnets的替代方案[19,69,83]。它们的采用伴随着一种受NLP启发的训练策略即在大量数据上进行预训练然后在目标数据集上进行微调[18,55]由此产生的ViT 与卷积网络具有竞争力但尚未显现出明显的优势它们在计算上更为苛刻要求更多的训练数据并且其特征没有表现出独特的属性对此作者质疑视觉领域中Transformer成功受限是否可以通过其预训练中的监督方式来解释。作者的动机是Transformer在自然语言处理领域成功的一个主要因素是使用自监督预训练例如BERT中的close procedure[18]或GPT中的语言建模[55]这些自监督预训练目标使用句子中的词语来创建伪任务比预测每个句子单一标签的监督目标提供了更丰富的学习信号。同样在图像中图像级别的监督通常将图像中包含的丰富视觉信息简化为从预定义的几千个类别中选择的单一概念[60]受以上种种的启发21年4月Meta发布了DINO其基于 ViT 构建在无需标注的情况下可以学习到语义分割、对象检测等任务中高可用的特征其对应的paper为Emerging Properties in Self-Supervised Vision Transformers作者包括Mathilde Caron1,2、Hugo Touvron1,3、Ishan Misra1 Herve Jegou ´1、Julien Mairal2、Piotr Bojanowski1、Armand Joulin1他们来自1 Facebook AI Research、2Inria∗、3 Sorbonne University其对应的GitHub为facebookresearch/dino1.1.2 相关工作自训练和知识蒸馏自训练旨在通过将一小部分初始标注传播到大量未标注的实例来提高特征的质量。这种传播可以通过标签的硬分配[41,78,79]或软分配[76]来完成当使用软标签时该方法通常被称为知识蒸馏[7,35]其主要设计目的是训练一个小网络以模拟大网络的输出来压缩模型Xie等人[76]表明蒸馏可以用于在自训练流程中将软伪标签传播到未标注的数据从而在自训练和知识蒸馏之间建立了一个重要的联系作者的工作基于这一关系并将知识蒸馏扩展到无标签的情况。之前的工作也结合了自监督学习和知识蒸馏[25,63,13,47]实现了自监督模型压缩和性能提升。然而这些工作依赖于预训练的固定教师而作者的教师是在训练过程中动态构建的。这样知识蒸馏不是作为自监督预训练的后处理步骤而是直接作为自监督目标最后作者的工作也与协同蒸馏[1]相关其中学生和教师具有相同的架构并在训练过程中使用蒸馏。然而在协同蒸馏中教师也从学生中蒸馏而在我们的工作中教师通过学生的平均值进行更新1.2 方法1.2.1 知识蒸馏的自监督学习本研究中使用的框架DINO与最近的自监督方法[10-Unsupervised learning of visual features by contrasting cluster assignments,16,12,30,33]共享相同的整体结构然而作者的方法也与知识蒸馏[35- Distilling the knowledge in a neural network]有相似之处下图图2中展示了DINO「模型将输入图像的两种不同随机变换传递给学生和教师网络。两个网络具有相同的架构但参数不同。教师网络的输出以批次计算的均值为中心。每个网络输出一个K维特征该特征通过特征维度上的温度softmax进行归一化。然后用交叉熵损失测量它们的相似性。作者在教师上应用一个停止梯度(sg)操作符 只通过学生传播梯度——We apply astop-gradient (sg) operator on the teacher topropagate gradientsonly through the student。教师参数通过学生参数的指数移动平均(ema)进行更新」总之知识蒸馏是一种学习范式作者训练一个学生网络来匹配给定教师网络的输出分别由和参数化给定输入图像两个网络输出在维上的概率分布分别表示为和。概率P 是通过使用softmax函数对网络g 的输出进行归一化得到的。更准确地说其中是控制的温度参数——输出分布的尖锐度以及一个类似的公式适用于其中温度为。给定一个固定的教师网络作者通过最小化相对于学生网络参数的交叉熵损失来学习匹配这些分布(定义为方程2)其中接下来作者详细说明如何将方程(2)中的问题适应于自监督学习首先使用多裁剪策略[10] 构建图像的不同失真视图或裁剪。更具体地说从给定的图像中生成一组V 的不同视图。该集合包含两个全局视图xg1 和xg2以及几个较小分辨率的局部视图。所有裁剪都会通过学生模型而只有全局视图会通过教师模型因此鼓励” 局部到全局” 的对应关系最小化损失(定义为方程3)这种损失是通用的可以用于任意数量的视图甚至只有两个视图。然而遵循多裁剪的标准设置使用两个分辨率为224×224的全局视图。覆盖原始图像的大部分例如大于50%区域以及几个分辨率为96×96的局部视图。仅覆盖原始图像的小区域例如小于50%。除非另有说明否则将此设置称为DINO的基本参数化两个网络共享相同的架构但具有不同的参数集和。作者通过使用随机梯度下降法最小化方程(3)来学习参数θs额外说一句作者还在算法1中提出了一个伪代码实现对于教师网络与知识蒸馏不同作者没有先验给定的教师因此作者从学生网络的过去迭代中构建它。作者在原论文的第5.2 节研究了教师的不同更新规则并展示了在作者的框架中冻结教师网络在一个epoch 内出乎意料地有效而将学生权重复制给教师则无法收敛特别感兴趣的是在学生权重上使用指数移动平均EMA即动量编码器[33]特别适合他们的框架。更新规则为其中λ 在训练过程中按照余弦调度从0.996 到1 [30]最初动量编码器被引入作为对比学习中队列的替代品[33]。然而在他们的框架中其角色有所不同因为他们没有队列也没有对比损失可能更接近于自我训练中使用的均值教师的角色[65]事实上作者观察到这个教师执行了一种类似于Polyak-Ruppert 平均的模型集成形式具有指数衰减[51, 59]。使用Polyak-Ruppert 平均进行模型集成是提高模型性能的标准做法[38]。作者观察到这个教师在整个训练过程中表现优于学生因此通过提供更高质量的目标特征来指导学生的训练。这种动态在先前的工作中未被观察到[30, 58]对于网络架构神经网络g 由一个主干fViT [19] 或ResNet [34]和一个投影头组成再简要回顾下视觉Transformer(ViT) [19, 70] 的机制作者遵循DeiT [69-Training>其中ViT 架构以分辨率为N ×N 的非重叠连续图像块网格作为输入在本文中作者通常使用N 16(”/16”) 或N 8 (”/8”)然后将这些图像块通过一个线性层以形成一组嵌入在序列中添加一个额外的可学习token [18, 19]这个token的作用是聚合整个序列的信息——为了与之前的研究保持一致将此token称为分类token[CLS]且在其输出处附加投影头h「projection head h」patch token集和[CLS] token被输入到一个带有” 预归一化” 层归一化的标准Transformer 网络[11, 39]「The set of patch tokens and [CLS] token are fed to a standard Transformer network with a“pre-norm” layer normalization[11, 39]说白了所谓的预归一化——就是先Norm再attention 或先Norm再MLP」而其中的Transformer是由自注意力和前馈层组成的序列并与跳跃连接并行。自注意力层通过注意力机制[4] 查看其他token表示来更新token表示「如果对transformer的自注意力机制有所遗忘的话详见此文《Transformer通俗笔记从Word2Vec、Seq2Seq逐步理解到GPT、BERT》」TheTransformer is a sequence of self-attention and feed-forwardlayers, paralleled with skip connections. The self-attentionlayers update the token representations by looking at the other token representations with an attention mechanism [4].下游任务中使用的特征是主干f 的输出。投影头由一个3 层多层感知器MLP组成隐藏维度为2048后接归一化和一个权重归一化的全连接层[61]具有K 维度这与SwAV [10- Unsupervised learning of visual features by contrasting cluster assignments] 的设计相似作者测试了其他投影头这种特定设计似乎对DINO 效果最佳(附录C)。作者没有使用预测器[30,16]导致学生和教师网络中的架构完全相同特别值得注意的是与标准卷积神经网络不同ViT架构默认不使用批量归一化(BN)。因此当将DINO应用于ViT时作者在投影头中也不使用任何BN使系统完全不含BN// 待更第二部分 DINOV2无监督预训练的图像编码器引言通过对训练算法的精细调优、采用更大规模的模型架构以及更丰富的训练数据DINOv2Oquab 等2024取得了令人瞩目的成果首次有自监督学习模型在多项任务上达到或超越了开源 CLIP 变体2.1 相关工作与数据处理2.1.1 相关工作23年4月Meta AI提出DINOv2——是一系列在大型精心挑选的数据上进行无监督预训练的图像编码器其对应的论文为《DINOv2: Learning Robust Visual Features without Supervision》其一作为Maxime Oquab在数据方面作者提出了一种自动化流程来构建一个专用的、多样化的、精心策划的图像数据集而不是像自监督文献中通常所做的那样使用未策划的数据比如下图所示来自精选和非精选数据源的图像首先被映射到嵌入。非精选图像在与精选图像匹配之前会进行去重。最终的组合通过自监督检索系统增强了初始数据集在模型方面作者训练了一个具有10亿参数的ViT模型Dosovitskiy等2021并将其蒸馏成一系列较小的模型这些模型在图像和像素级别的大多数基准测试中超越了最佳可用的通用特征OpenCLIPIlharco等2021而在此之前其实有不少与之相似或相关的工作比如第一类自监督方法侧重于伪任务从图像中构建即从图像中提取信号以预测图像的其余部分图像内自监督训练这个想法在Doersch等人2015的工作中变得普遍他们通过预测给定patch的上下文进行训练。许多其他的前置任务也被引入例如重新上色图像Zhang等人2016、预测变换Gidaris等人2018、图像修复Pathak等人2016或补丁重排序Noroozi Favaro2016Misra Maaten2020最近基于patch的架构如ViTs的出现导致对前置训练的图像修复进行重新审视He等人2022Bao等人2021El-Nouby等人2021可能在特征空间中Assran等人2023Baevski等人2022特别有趣的是He等人2022表明掩码自动编码器MAE学习到的特征在下游任务微调时提供了显著的改进。MAE的这一特性在视频Tong等人2022、音频Xu等人2022和其他模态Girdhar等人2023上得到了进一步验证然而它们的特征需要有监督的微调而DINOV2的特征在未经微调的情况下表现良好。判别式自监督学习第二类与DINOV2更接近的工作是使用判别式信号在图像或图像组之间学习特征这类方法的根源可以追溯到早期的深度学习工作Hadsell等2006但随着实例分类方法的出现而流行起来Dosovitskiy等2016Bojanowski Joulin2017Wu等2018。几项改进基于实例级目标Hénaff等2019He等2020Chen He2021Chen等2020Grill等2020Caron等2021或聚类Caron等2018Asano等2020Caron等2020进行这些方法在ImageNetRussakovsky等2015等标准基准上提供了高性能的冻结特征但难以扩展到更大的模型规模Chen等2021在DINOV2工作中作者重新审视了这些方法在大规模预训练数据集和模型背景下的训练。特别是作者基于Zhou等2022a的研究进行构建发现其特别适合于扩展第三类扩展自监督预训练越来越多的研究集中于自监督学习在数据和模型规模方面的扩展能力Caron等2019Goyal等2019Tian等2021Goyal等2022a。这些研究大多数使用大量未经筛选的数据来训练无监督的模型。他们提供的证据表明判别方法可以随着数据的增加而扩展但由于预训练数据质量较差大多数结果是通过微调特征获得的特别值得注意的是Goyal等2021还表明在有足够预训练数据的情况下这些方法在模型规模扩展方面也受益。这一研究方向质疑了自监督方法在任何数据上工作的能力而我们则专注于生成最佳的预训练编码器第四类相关的工作是自动化数据整理DINOV2的数据集构建借鉴了图像检索领域Wein-zaepfel等人2021Radenović等人2018bBerman等人2019Douze等人2009Tolias等人2016Revaud等人2019。特别是在半监督学习的背景下使用检索来扩充训练集已经被研究过Yalniz等人2019类似地其他人使用标签或其他元数据Mahajan等人2018Radford等人2021或预训练视觉编码器Schuhmann等人20212022来过滤未整理的数据集与这些工作不同的是DINOV2不使用预训练编码器、元数据或监督来过滤图像而是利用图像之间的视觉相似性DINOV2的方法受到文本整理流程的启发Wenzek等人2020其中语言模型在维基百科上训练以对从未整理的来源提取的文本进行评分2.1.2 数据处理作者通过从大量未经过筛选的数据中检索出与几个经过筛选的数据集中的图像相似的图像从而构建了的精选 LVD-142M 数据集接下来介绍下该数据处理流程中的主要组件包括整理/未整理的数据来源、图像去重步骤和检索系统。且该流程不需要任何元数据或文本直接处理图像如上图图3所示数据来源作者选择的精心整理的数据集详见附录表15包括ImageNet-22k、ImageNet-1k的训练集、Google地标以及几个细粒度数据集对于未经整理的数据源作者从一个公开可用的网络爬取数据存储库中收集未经过滤的原始图像数据集比如从存储库中的每个网页提取标签中的图像URL链接。然后丢弃不安全或被域名限制的URL并对下载的图像进行后处理PCA哈希去重、NSFW过滤和模糊处理可识别的面孔。最终得到12亿张独特的图像去重作者应用了Pizzi等人2022年的复制检测流程到未经整理的数据中并移除了近似重复的图像。这减少了冗余并增加了图像的多样性且还移除了在本文使用的任何基准的测试或验证集中包含的图像的近似重复项自监督图像检索作者通过从未经筛选的数据源中检索接近于他们筛选过的数据源的图像来构建我们精心策划的预训练数据集为此首先使用在ImageNet-22k 上预训练的自监督ViT-H/16 网络计算图像嵌入并使用余弦相似度作为图像之间的距离度量然后对未经筛选的数据进行k-means 聚类给定一个用于检索的查询数据集如果它足够大为每个查询图像检索N通常为4个最近邻如果它较小从与每个查询图像对应的聚类中采样M 个图像尽管视觉检查似乎表明对于N 远大于4 的检索质量较好但这会导致更多的冲突即多个查询的最近邻检索结果相同的图像。故作者选择N 4因为它在这方面提供了良好的权衡实现细节作者的管道的去重和检索阶段依赖于Faiss库Johnson等2019来高效地索引和批量搜索最近的嵌入特别是作者大量利用其对GPU加速索引的支持使用带有产品量化码的倒排文件索引Jegou等2010整个处理分布在一个由20个节点组成的计算集群上每个节点配备8个V100-32GB GPU生成LVD-142M数据集用时不到两天2.2 判别式自监督预训练与高效实现// 待更2.3 分别基于DINO、DINOv2提出的SimDINO、SimDINOv2其对应的论文为《Simplifying DINO via Coding Rate Regularization》其对应的项目网址为github.io/SimDINO/其对应的GitHub为github.com/RobinWu218/SimDINO// 待更第三部分 DINOv3(7B)单一冻结视觉骨干网络亦能做好检测和分割论文地址ai.meta.com/research/publications/dinov3/Hugging Face 地址https://huggingface.co/docs/transformers/main/en/model_doc/dinov3博客地址ai.meta.com/blog/dinov3-self-supervised-vision-model/3.1 引言与DINOv3的提出3.1.1 引言说起计算机视觉就绕不开李飞飞及其团队推动的ImageNet和大规模标注数据可随着数据量的激增以及应用场景不断扩展标注成本和可获取性成为了制约视觉模型通用性的主要因素如此便出来了上面Meta发布的自监督DINO、DINOv2然而在实际应用中自监督学习SSL的承诺——即通过利用大量无限制的数据来生成任意大且强大的模型——在大规模下依然具有挑战性。尽管 Oquab 等人2024提出的启发式方法缓解了模型不稳定性和崩溃的问题但随着规模的进一步扩大更多问题随之出现首先如何从无标签数据集中收集有用数据尚不明确其次在常规训练实践中采用余弦调度意味着需要预先知道优化的周期这在对大规模图像数据集进行训练时非常困难第三经过初期训练后特征性能会逐渐下降这一点通过对 patch 相似性映射的可视化检查得到了证实这一现象在更长时间训练、且模型规模大于 ViT-Large300M 参数时尤为明显从而降低了扩展 DINOv2 的实用性3.1.2 DINOv3的提出针对上述问题Meta提出了本研究成果 DINOv3它在大规模自监督学习SSL训练方面取得了突破。且展示了一个单一冻结的自监督学习主干网络可以作为通用视觉编码器在具有挑战性的下游任务中实现了最先进的性能超越了有监督和依赖元数据的预训练策略他们的研究由以下目标驱动训练一个能够跨任务和跨领域通用的基础模型改进现有自监督学习模型在密集特征上的不足发布一系列可直接使用的模型此外作者通过定义ViT架构的自定义变体将主模型的规模提升至7B参数作者引入了现代位置嵌入(轴向RoPE)RoPE-box jittering并开发了一种正则化技术以避免位置伪影不同于DINOv2中采用的多重余弦调度策略作者在训练中对所有超参数采用常数调度训练迭代次数为100万次通过上述技术能够大规模地按照 DINOv2 算法训练模型。然而规模化会导致稠密特征的退化为了解决这一问题作者提出在流程中引入Gram anchoring训练阶段作为核心改进该阶段能够清除特征图中的噪声从而生成表现优异的相似性图并显著提升参数化与非参数化稠密任务的性能3.2 Gram锚定(Gram anchoring)目标“修复”非常退化的局部特征为了充分发挥大规模训练的优势作者计划对7B模型进行更长时间的训练甚至设想其可以无限期训练。正如预期延长训练时间能够提升全球基准测试的表现然而随着训练的持续模型在密集任务上的性能却出现下降这一现象源于特征表示中出现了patch级别的一致性丧失进而削弱了长期训练的价值下面首先分析patch级一致性的丧失然后提出一种新的目标函数以缓解该问题称为Gram锚定3.2.1 训练过程中补丁级一致性的丧失在长时间训练过程中作者观察到全局指标持续提升但在密集预测任务上的性能却显著下降。这一现象在 DINOv2 的训练中曾在较小程度上出现Fan 等人2025的扩展研究中也有讨论然而目前这一问题尚未得到解决。作者在图 5b 和 5c 中展示了该现象分别给出了模型在图像分类和分割任务中不同迭代次数下的表现如上图所示a余弦相似度的变化bViT-g 在 ImageNet1k 线性IN1k和 VOC 分割任务上的准确率cViT-7B 的表现。当patch token与class token之间的余弦相似度较低时分割任务的性能达到最大。随着训练的进行这些相似度逐渐增加而在密集任务上的性能则下降在分类任务中使用 CLS token 在 ImageNet-1k 上训练线性分类器并报告 top-1 准确率在分割任务中在 Pascal VOC 提取的patch特征上训练线性层并报告平均交并比mIoU作者观察到无论是 ViT-g 还是 ViT-7B分类准确率在整个训练过程中都持续提升。然而在大约 20万次迭代后分割性能在两种情况下均出现下降ViT-7B 的分割性能甚至低于早期水平为了更好地理解这种退化现象作者通过可视化patch间余弦相似度来分析patch特征的质量。图6展示了主干网络输出的patch特征与一个patch补丁(以红色高亮显示)之间的余弦相似度图在迭代20万次时相似度图表现得平滑且定位准确说明patch级表征具有一致性。然而当迭代达到60万次及以上时相似度图出现明显退化越来越多与参考patch无关的patch却表现出较高的相似度。这种patch-level一致性的丧失与密集任务(比如图像分割)性能的下降密切相关为了缓解这一问题——针对密集任务性能下降的问题作者提出了一种专门用于正则化patch特征并确保良好patch级一致性的新目标同时保持较高的全局性能3.2.2 Gram锚定目标在作者的实验过程中作者发现学习强判别特征与保持局部一致性之间相对独立这在全局与密集性能之间缺乏相关性中得以体现。虽然将全局DINO损失与局部iBOT损失结合在一起已开始解决这一问题但作者观察到这种平衡并不稳定随着训练的推进全局表征逐渐占据主导地位基于这一发现作者提出了一种新颖的解决方案明确利用这种独立性即作者提出了一种新的目标函数通过强化局部区域一致性的质量来缓解局部区域一致性退化的问题同时不影响特征本身该新的损失函数作用于Gram矩阵即图像中所有局部区域特征两两点积所形成的矩阵作者的目标是使学生网络的Gram矩阵逐步接近早期模型(称为Gram教师)的Gram矩阵作者通过选取教师网络的早期迭代版本作为Gram教师因为其密集特性表现更优通过作用于Gram矩阵而非特征本身局部特征可以自由变化只要相似性结构保持不变_____对此我再解释下说白了就是教师上面的密集特征更丰富所以学生在自由探索的同时保持patch间的相对相似性___________________假设有一幅由P个局部区域组成的图像以及一个在d维空间中工作的网络用对应学生网络和对应Gram教师分别表示的局部特征矩阵作者将损失函数LGram定义如下作者仅在全局裁剪global crops上计算该损失尽管在训练早期即可应用但为了提高效率作者选择在经过100万次迭代后才开始应用有趣的是作者观察到即使在后期才被应用仍然能够“修复”非常退化的局部特征为了进一步提升性能作者每隔1万次迭代就更新一次Gram教师此时Gram教师与主EMA教师完全一致作者将训练的第二阶段称为细化阶段refinement step该阶段优化目标作者在图7中可视化了不同损失的演化过程『展示在训练迭代过程中patch级别的iBOT损失、全局损失DINO应用于全局裁剪以及新引入的Gram损失的演化过程。作者特别标出了使用Gram目标进行细化步骤LRef的迭代』观察到应用Gram目标会显著影响iBOT损失使其下降得更快这表明从图a可知由稳定Gram教师引入的稳定性对iBOT目标产生了积极影响从图b可知相比之下Gram目标对DINO损失影响不大。这一观察结果意味着Gram和iBOT目标对特征的影响方式相似从图c可知DINO损失则以不同的方式影响特征关于性能方面作者观察到新损失函数的影响几乎是立竿见影的。如图8所示引入Gram锚定后在前一万次迭代内对密集任务(图像分割)的性能提升显著在Gram教师更新后ADE20k基准测试也取得了显著进步此外更长时间的训练进一步提升了ObjectNet基准测试的性能而其他全球性基准测试则显示新损失函数带来轻微影响如此表明保持patch-level一致性与学习判别性全局特征之间可以有效协调而在有针对性的正则化下长时间训练也不再牺牲密集任务表现3.2.3 利用高分辨率特征// 待更
返回列表