【DINO】基于自监督的通用视觉骨干网络

Facebook于2021年提出DINO:Emerging Properties in Self-Supervised Vision Transformers
paper:https://arxiv.org/abs/2104.14294
code:https://github.com/facebookresearch/dino

名字解释:a form of self-DIstillation with NO labels


在这里插入图片描述

论文核心总结:DINO框架与自监督ViT的新兴特性

简单总结本文的动机就是,transformer得益于自然语言的成功才被尝试用在视觉上,而在自然语言中,基于自监督预训练在transformer上取得了很大的成功(比如BERT),那在transformer用在视觉上是不是也可以用自监督取得好的效果呢?

一、主要解决的问题

  1. ViT在视觉任务中的局限性
    监督学习下的Vision Transformer(ViT)相比卷积网络(ConvNets)尚未展现明显优势,计算成本高、依赖大量训练数据,且特征缺乏独特性质。

  2. 自监督学习对ViT的潜力探索
    借鉴NLP中Transformer通过自监督预训练(如BERT)取得突破的经验,探究自监督学习能否为ViT赋予新特性,例如语义分割能力和更强的特征表示。

  3. 现有自监督方法的不足
    传统自监督方法(如对比学习、聚类)在ViT上的应用效果有限,缺乏对ViT架构特性(如自注意力机制)的充分利用。

二、技术创新点

  1. DINO框架:无标签的自蒸馏范式
    将自监督学习重新定义为“无标签知识蒸馏”,通过学生-教师网络结构,让学生网络预测教师网络的输出,教师网络通过动量编码器动态更新(类似Mean Teacher机制),避免依赖对比损失或复杂聚类。

  2. 自监督ViT的新兴特性发现

    • 显式语义分割能力:ViT的自注意力图(尤其是[CLS] token的注意力)能自动捕捉物体边界和场景布局,无需额外监督,如图1。
    • 卓越的k-NN分类性能:自监督ViT特征无需微调,直接作为k-NN分类器即可在ImageNet上达到高准确率,表明特征具有强判别性。
  3. 关键组件的协同优化

    • 动量编码器与multi-crop训练:动量编码器提升教师网络稳定性,multi-crop增强(全局+局部视图)促进“局部-全局”特征对齐。
    • 小patch尺寸的重要性:使用8×8小patch替代传统16×16 patch,显著提升特征分辨率和空间细节捕捉能力。
    • 中心与锐化操作:通过教师输出的中心化(避免维度主导)和锐化(增强分布区分度),简单有效地防止模型崩溃。

三、实现路径

在这里插入图片描述

以单对视图( x1, x2)为例说明 DINO。模型将输入图像的两种不同随机变换分别传入学生网络和教师网络。两个网络架构相同但参数不同。教师网络的输出会以批次上计算的均值进行中心化处理。每个网络都会输出一个 K 维特征,该特征通过特征维度上的温度 softmax进行归一化。随后,通过交叉熵损失衡量它们的相似度。我们在教师网络上应用停止梯度(sg)算子,使梯度仅通过学生网络传播。教师网络的参数通过学生网络参数的指数移动平均(ema)进行更新。
基于知识蒸馏的自监督学习(SSL with Knowledge Distillation)

本文提出的自监督框架DINO,本质是一种无标签的知识蒸馏(self-distillation)方法,其核心是通过“学生-教师网络”架构让模型从数据自身学习特征。以下是具体设计:

1. 学生-教师网络架构与蒸馏目标
  • 核心思想:训练学生网络 g s g_s gs模仿教师网络 g t g_t gt的输出分布,通过交叉熵损失让学生网络的输出接近教师网络。
  • 网络结构:学生和教师网络采用相同架构 g = h ∘ f g = h \circ f g=hf,其中 f f f为骨干网络(ViT或ResNet), h h h为投影头( 3 层多层感知器(MLP),其后紧跟l2归一化和一个具有K维度的权重归一化全连接层,,也是通过测试发现这种最有效);两者参数不同 θ s \theta_s θs为学生参数, θ t \theta_t θt为教师参数)。
  • 损失函数:对同一样本的不同多裁切视图,计算教师输出与学生输出的交叉熵损失。具体而言:
    • 通过multi-crop从图像生成多个视图集合 V V V,含2个224*224的全局视图 x 1 g , x 2 g x_1^g, x_2^g x1g,x2g和多个96*96局部视图;
    • 学生网络处理所有视图,教师网络仅处理全局视图,以实现局部和全局的关联;
    • 损失为教师全局视图输出与学生其他视图输出的交叉熵之和:
      min ⁡ θ s ∑ x ∈ { x 1 g , x 2 g } ∑ x ′ ∈ V x ′ ≠ x H ( P t ( x ) , P s ( x ′ ) ) \min_{\theta_s} \sum_{x \in \{x_1^g, x_2^g\}} \sum_{\substack{x' \in V \\ x' \neq x}} H(P_t(x), P_s(x')) θsminx{x1g,x2g}xVx=xH(Pt(x),Ps(x))
      其中 H H H为交叉熵, P t , P s P_t, P_s Pt,Ps分别为教师和学生输出的概率分布(经softmax归一化)。
2. 教师网络的动态更新

教师网络并非预先训练好的固定模型,而是基于学生网络的历史参数动态构建:

  • 更新规则:采用动量编码器(momentum encoder),教师参数通过学生参数的指数移动平均更新(在5.2节中验证该方式最有效,直接复制学生的参数会不收敛):
    θ t ← λ θ t + ( 1 − λ ) θ s \theta_t \leftarrow \lambda \theta_t + (1-\lambda) \theta_s θtλθt+(1λ)θs
    其中 λ \lambda λ按余弦调度从0.996增至1,类似Polyak-Ruppert平均,实现模型集成效果。
  • 优势:教师网络性能始终优于学生,为学生提供更高质量的学习目标。
3. 网络架构细节
  • 骨干网络:支持ViT(如ViT-S/16、ViT-B/8)和ResNet(如ResNet-50),ViT默认不含BatchNorm(BN)。
  • 投影头:3层MLP(隐藏维度2048)+ ℓ 2 \ell_2 2归一化 + 权重归一化全连接层(输出维度 K K K。ViT的投影头同样不含BN,实现全BN-free系统。
    在这里插入图片描述
4. 避免模型崩溃的机制

模型崩溃指输出分布退化(如所有输入对应相同输出),DINO通过以下操作避免:

  • 中心化(Centering):对教师输出进行均值偏移校正,中心 C C C通过指数移动平均更新:
    C ← m C + ( 1 − m ) ⋅ 1 B ∑ i = 1 B g θ t ( x i ) C \leftarrow mC + (1-m) \cdot \frac{1}{B} \sum_{i=1}^B g_{\theta_t}(x_i) CmC+(1m)B1i=1Bgθt(xi)
    防止单维度主导输出。
  • 锐化(Sharpening):教师输出通过低温度 τ t \tau_t τt的softmax增强分布区分度(温度越低,分布越集中),与中心化平衡以避免退化到均匀分布。

中心化操作可防止单一维度占主导地位,但会促使模型向均匀分布崩溃,而锐化操作则产生相反的效果。同时应用这两种操作可平衡它们的作用,在动量教师网络存在的情况下,足以避免崩溃。选择这种方法来避免崩溃,是以一定的稳定性为代价,换取对批次的低依赖性

实现细节与评估协议
1. 实现细节
  • 预训练数据:在ImageNet无标签数据集上训练。
  • 优化器与调度:AdamW优化器,批次大小1024(16 GPUs);学习率前10个epoch线性热身至 0.0005 × batchsize / 256 0.0005 \times \text{batchsize}/256 0.0005×batchsize/256,随后余弦衰减;权重衰减从0.04余弦调度至0.4。
  • 温度参数:学生温度 τ s = 0.1 \tau_s = 0.1 τs=0.1;教师温度 τ t \tau_t τt前30个epoch从0.04线性增至0.07。
  • 数据增强:采用BYOL的增强策略(色彩抖动、高斯模糊、曝光调整)+ multi-crop训练(2个224×224全局视图 + 多个96×96局部视图),通过双三次插值适配ViT的位置嵌入。
2. 评估协议
  • 线性评估:冻结预训练特征,训练线性分类器(SGD,100个epoch)。
  • 微调评估:用预训练权重初始化模型,在下游任务上微调。
  • k-NN评估:冻结模型,存储下游任务训练集特征;对测试样本,通过k近邻(k=20)的标签投票分类,相比以上两种方式无需调参或数据增强

四、突出效果

  1. ImageNet分类性能

    • 线性评估:ViT-B/8在ImageNet上达到80.1% top-1准确率,超越同期自监督ConvNet(如ResNet-50)和监督ViT。
    • k-NN分类:ViT-S/8无需微调,k-NN准确率达78.3%,接近线性评估结果,验证特征判别性。
      在这里插入图片描述
  2. 下游任务泛化能力

    • 语义分割:自注意力图直接用于视频实例分割(DAVIS 2017),ViT-B/8的(J&F)m指标达71.4%,超越监督ViT。
    • 图像检索与复制检测:在Google Landmarks和Copydays数据集上,DINO ViT特征优于监督模型和传统自监督方法。
  3. 下游任务迁移学习

    • DINO 预训练的 ViT 微调性能均超过监督预训练的 ViT
      在这里插入图片描述

总结

DINO通过将自监督学习重构为无标签自蒸馏,结合动量编码器、multi-crop训练和小patch设计,首次在ViT中揭示了自监督下的语义分割能力和强k-NN特征,不仅刷新了ImageNet自监督性能,还为理解ViT的表征机制提供了新视角。


其他解释与问题思考

  • 温度softmax是什么?——https://blog.youkuaiyun.com/u013172930/article/details/146239521
  • DINO网络由骨干网络+映射头组成,而下游网络只用到了骨干网络输出的特征,那为什么还要映射头呢?直接用骨干网络的特征的去计算loss不行吗?——作者在附录C中说,"Similarly to other self-supervised frameworks, using a projection head [12] improves greatly the accuracy of our method", 所以实际上这是前人的经验+作者自己验证后的最优结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

↣life♚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值