论文导读:DINO -自监督视觉Transformers

news/2024/11/20 1:28:28/

在本篇文章中我们将探讨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


http://www.ppmy.cn/news/894668.html

相关文章

DINO 论文精度,并解析其模型结构 DETR 的变体

截止2022年7月25日,DINO是目标检测的SOTA。 本人根据源码的复现感受和DINO论文的精读心得,撰写本篇博客,希望对你有所帮助。 目录 一、摘要 二、结论 三、解析DINO模型 (1)概述DINO模型借鉴了前人的那些工作 &…

威盛实习生招聘要求

要求: (1) 熟悉ARM架构 (2) 熟悉各外设接口(I2C,UART,SPI,CAN等) (3) 熟练掌握C语言 (4) 对底层硬件驱动编写有一定经验,应用过MCU,DSP等 (5) 有较强的动手能力及创新能力 (6)…

威盛电子- via ASIC 笔试题

威盛电子- via ASIC 笔试题 2007-05-22 1 、用给出的一些门电路,搭出表达式outputen_try? en&nomask : en这一表达式 entry,en,nomask是输入 2、给出电路,将时钟域1的脉冲传到时钟域2,两个时钟域的关系未知 3、给出三分频…

(简单)剑指Offer 21. 调整数组顺序使奇数位于偶数前面 Java

记数组nums的长度为n。从先nums左侧开始遍历,如果遇到的是奇数,就表示这个元素已经调整完成,继续从左往右遍历,直到遇到一个偶数。然后从nums右侧开始遍历,如果遇到的是偶数,就表示这个元素已经调整完成了&…

威盛在线更换IO通道---步骤

在线更换IO通道---步骤 1.运行“IO配置”软件(开始→程序→ControlX 软件包→FB3000MCS 控制策略→IO配置); 2.打开该工程目录下的IO组态配置文件(*.ioc){如C:\XXX工程\IO配置}; 3.选中需要更换IO通道的过程控制站名…

在威盛学习计划

写道 每天都要学习,现有知识储备太少.每天必须工作9个小时 1. 英语学习 1个小时[个人必备技能] 2. js CSS 学习 1个小时[web开发技能] 3. PHP MYSQL 项目实现 5个小时以上 [web应用开发] 4. javame 学习 1个小时 [移动应用开发] 5. C# 学习 1个小时 [桌面应用开发,非web方面…

2017.11-上海威盛电子有限公司面试

日期:2017.11.27号 地点:上海浦东新区张江高科技园区金科路2537号B栋 中国芯科技园 岗位:嵌入式开发 笔试: 时间:9:00 题目记得的如下: 1、考察C语言的知识,指针,数组&#xf…

威盛面试

那两天貌似有点累,很不想去,但最终说服自己,去一下,长点见识。 1面 先让写一个将小端转为大端的宏 表示windows有API,于是说写个函数也行 想了一阵,改了一阵,用循环加移位实现 问volatile关…