DINO和DINOv2的注意力
1. DINO
DINO 是 Meta 在2021年提出的一种的自监督学习方法,名称来源于 knowledge
distillation with no labels,即无标签知识蒸馏。
和其他 inter-view 的自监督方法类似,DINO 将输入图像 的两种不同的随机变换 传递给学生和教师网络,这两个网络具有相同的结构,但参数不同。教师网络的输出以每个 batch 的平均值为中心。每个网络输出一个 K 维特征,用 softmax 进行归一化。然后最小化交叉熵损失,也就是提高教师网络和学生网络参数的相似性。梯度仅通过学生传播,教师参数使用学生参数的指数移动平均值 (ema) 进行更新。
教师网络比学生网络多了一个 centering 操作,用于避免模型崩溃,相当于对教师网络的参数加入了一个可以通过 EMA 更新参数的 bias :。
DINO伪代码DINO 最惊人的效果是在无监督下学习的模型可以将注意力非常好地集中在物体上,多头注意力中不同的 head 甚至可以关注到同一物体不同的区域或者不同的物体。
无监督训练下的自注意力 多头注意力可视乎定性结果表明,最后一个注意力层会关注图像中语义一致的部分,并经常产生可解释的注意力图。利用这些特性,建立在 DINO 的基础之上的物体发现算法(如 LOST,Sim´eoni et al.,2021),通过收集注意力图中的信息,在没有监督的情况下检测物体。
2. DINOv2
DINOv2 是在 DINO 基础上用更多数据和更多 tricks 训练出来的,在很多任务上都取得了很好的表现。
但值得注意的是论文中并没有给出像 DINO 论文中一样的注意力可视化图,而是可视乎了图像 patch 的 PCA。
PCA 可视乎原因就在于 DINOv2 的注意力可视化出来并不如 DINO 一样完美集中在图像物体上,而是在某些 token 上会有异常高的值出现,被称为”伪影“。
在ViT的注意力图谱中观察到的伪影这些伪影的特点:
- 高范数值(high norm token)
- 在大型模型的训练过程中会出现
- 出现在信息冗余的 patch 上
- 几乎不包含 local 信息
- 包含 global 信息
对于这种现象,一种解释是在 ViT 的训练过程中 token 的数量是有限的,因此模型需要充分利用 token,将信息冗余位置的 token 用于储存全局信息。
3. Vison Transformer need registers
模型储存全局信息是件好事,但是我们并不希望丢弃局部信息,因为这有可能损害下游任务的表现。
解决方法就是多加几个 token,让模型用于储存额外的全局信息,这些token被叫做寄存器,具有可学习的参数,在 transformer 的最后一层被丢弃。
加入 register之后的注意力图加入 register token 之后,[CLS] token 可以很到的集中在图中的主要物体上,而 register 则会关注到一些不同的区域。
加入寄存器机制首次在 Memory Transformers (Burtsev et al., 2020) 中提出,改进了 NLP 中的翻译任务。使用特殊 token 扩展 Transformer 序列在 BERT 中得到了普及(Devlin et al., 2019)。然而,大多数方法添加新 token,要么为网络提供新信息,例如 BERT 中的 [SEP] token,要么收集 token 信息,并使用它们的输出值作为模型的输出,例如分类中的 [cls] token。
而 [reg] token 既不提供信息也不直接用于任务,只是为无处安放的 global 信息提供了一个安放之处,顺便提高了模型的可解释性。
由于这种”伪影“只在大规模训练中出现,我的猜想是,模型有足够多的参数和数据去学习,会从数据中学到很多信息,图像中天然的包含了很多隐含的信息,比如"咖啡应该在咖啡杯里而不是咖啡杯的托盘里”这种抽象又没用的知识,对于下游任务可能毫无帮助,但是对于让模型更加“智能”是很重要的。也许我们需要更多的评估指标去了解视觉模型究竟从数据中学到了什么。
参考:
[1] Caron M, Touvron H, Misra I, et al. Emerging properties in self-supervised vision transformers[C]//Proceedings of the IEEE/CVF international conference on computer vision. 2021: 9650-9660.
[2] Oquab M, Darcet T, Moutakanni T, et al. Dinov2: Learning robust visual features without supervision[J]. arXiv preprint arXiv:2304.07193, 2023.
[3] Darcet T, Oquab M, Mairal J, et al. Vision transformers need registers[J]. arXiv preprint arXiv:2309.16588, 2023.
[4] 代码: https://github.com/facebookresearch/dinov2
[5] (这个也是我) https://bigfishtwo.github.io/posts/dinos/