在本篇文章中我们将探讨DINO 论文的工作原理以及分析它是如何工作的。 我试图让文章保持简单,这样即使是先验知识很少的读者也能够看懂。
一般来说ViT 并不像某些人预期的那样有吸引力:因为它们需要很多的计算资源,并且需要更多的训练数据,最主要的是它们也没有表现出独特的特点。 Caron 等人在 2020 年发表的论文“Emerging Properties in Self-Supervised Vision Transformers”中。 旨在研究为什么有监督的 ViT 还没有起飞,以及是否可以通过对它们应用自监督学习方法来改变这种情况。
传统上的计算机视觉模型,例如:卷积神经网络,总是在人工监督下进行训练。 这意味着人类必须为训练数据创建标签,例如告诉模型图像中有一只狗。
自监督学习允许它在没有任何标签的情况下训练模型。 因此,在计算机视觉任务的情况下,只有图像被提供给模型,网络本身学会理解周围的视觉世界,这是自监督学习的终极目标。
事实证明,将自监督应用于 Vision Transformers 会得到一下我们期望的特性:
该模型学习从语义上分割对象并创建边界。 并且该信息可在自注意力模块中访问。 我们将在后面讨论什么是自注意力。
来自DINO的注意力热图显示了该模型如何令人印象深刻地聚焦于图像最相关的部分。这也作为场景[1]的无监督语义分割
学习到的特征表示,即模型的输出向量,对于执行聚类非常有用。 此外,应用 k-最近邻分类器会产生一些令人印象深刻的分类结果
DINO以自监督的方式学习的簇。这在训练过程中没有使用任何标签。[2]
DINO是如何工作的
DINO 采用一种称为自蒸馏的方法。 这也是名字的由来:没有标签的自蒸馏
自蒸馏创造了一个教师和一个学生网络。 这两个网络都具有完全相同的模型架构。 DINO 的一大优势在于在这一点上完全灵活:可以使用 新兴的ViT 或 传统的卷积都是可以的,例如流行的 ResNet-50。
DINO 训练过程的简化概述: 一张图片被裁剪成两种尺寸,然后输入学生和教师网络。 对教师的输出应用居中操作,并且两个输出都通过 softmax 层归一化整理。 [2]
为了交叉熵作为损失函数为模型反向传播提供更新参数的策略。
两个 softmax 输出都传递到损失函数中,使用随机梯度下降 (SGD) 执行反向传播。在这里的反向传播是通过学生网络执行的,这时教师的权重尚未更新的原因。 为了更新教师模型,DINO 对学生权重使用指数移动平均 (EMA),将学生网络的模型参数传输到教师网络。 [2]
这就是训练过程的一个概述。 在我们看一些结果之前,让我们快速看看这篇论文使用了哪些模型。
正如我们将在结果中看到的,DINO 与 ViT 一起使用时效果最佳,特别是 ViT-B/8 效果最佳。 但是如前所述,DINO 也可以与传统的卷积一起使用。
结果
为了应用该模型,作者以 3 层多层感知器 (MLP) 的形式在transformer 顶部添加了一个投影头。 虽然它们呈现了一系列不同的结果,但本篇文章专注于我认为最相关的结果。
ImageNet 上的线性和KNN分类
在我看来,最相关的是将 KNN分类器应用于训练特征表示时的分类性能。 如本文的介绍所示,DINO 对不同类别的聚类效果非常好。 又是这张图:
这种巨大的分离是清晰可见的,代表相似物体的簇彼此更近。这意味着在没有标签监督的情况下,只通过自监督的预训练,就可以实现高准确率的分类。此外,DINO似乎可以很好地进行线性分类。要了解更多细节,请参阅这个表,作者将DINO与其他最先进的自监督前训练方法进行了比较:
与其他自监督的训练方法的表现比较。对于ImageNet[1]上的线性和k-NN分类任务,DINO优于所有这些方法
高准确率的注意力和完全无监督的语义分割
在视觉上最令人印象深刻的当然是由自注意机制产生的分割结果。就像人类一样,模型关注场景中的相关对象,即使遮挡了部分图像结果还是一样的。虽然在本文中没有进行定量评估,但这种可视化提供了对模型工作过程的更透明解释,并增加了对其能力的可解释性。
总结
在本文中简单介绍了 DINO的工作原理,这是一篇利用 Vision Transformers 中自监督学习的论文。 虽然我希望这个文章能让你对这篇论文有一个很好的初步了解,但还有很多东西要发现。 因此,建议自己阅读这篇论文。
引用
[1] https://ai.facebook.com/blog/dino-paws-computer-vision-with-self-supervised-transformers-and-10x-more-efficient-training/
[2] https://arxiv.org/pdf/2104.14294.pdf
本文作者:Leon Sick