【论文精读】ESViT

news2025/1/14 0:48:04

摘要

       基于transformer的SSL方法在ImageNet线性检测任务上取得了最先进的性能,其关键原因在于使用了基于对比学习方法训练单尺度Transformer架构。尽管其简单有效,但现有的基于transformer的SSL(自监督学习)方法需要大量的计算资源才能达到SoTA性能。

       故认为SSL系统的效率与两个因素高度相关:网络架构和预训练任务。故而提出改进:

  • 发现自监督单尺度transformer可自动发现图像局部视图区域之间的语义对应
  • 实证研宄SSL任务下的多尺度vision transformer架构的利弊。其虽然极大地降低了计算复杂度,但发现多尺度架构导致了(1)中性质的损失
  • 提出了基于图像局部视图的区域匹配预训练任务来缓解(2)中的问题,进一步改善了学习到的特征表示
  • 在一系列任务上验证了结合了(2)、(3)技术的算法EsViT,其显著降低了构建SoTA SSL 视觉系统的成本,并在模型精确度与吞吐量和模型大小之间显示出更好的缩放性能

框架

多尺度ViT

       参考swin-transformer。
image

预训练任务

全局视图任务

       给定学生网络和教师网络的增强视图集 V V V V ∗ V^∗ V,构建一组数据对 P = { ( s , t ) ∣ x ^ s ∈ V , x ^ t ∈ V ∗   a n d   s ≠ t } P = \{ (s, t)|\hat x_s ∈ V, \hat x_t ∈V^∗ \ and \ s ≠ t } P={(s,t)x^sV,x^tV and s=t来执行跨视图预测任务(参考DINO):
L V = 1 ∣ P ∣ ∑ ( s , t ) ∈ P M V ( s , t ) M V ( s , t ) = − p s log ⁡ p t L_V=\frac 1 {|P|} \sum_{(s,t) \in P} M_V(s,t) \\ M_V(s,t)=-p_s \log p_t LV=P1(s,t)PMV(s,t)MV(s,t)=pslogpt

        p s = h ( f ( x ^ s ) ) p_s = h(f(\hat x_s)) ps=h(f(x^s)) p t = h ( f ( x ^ t ) ) p_t = h(f(\hat x_t)) pt=h(f(x^t))分别为学生网络和教师网络学习的视图表示, f f f为backbone, h h h为MLP投影头。其中 z t = f ( x ^ t ) z_t = f(\hat x_t) zt=f(x^t)为全局视图特征, z s = f ( x ^ s ) z_s = f(\hat x_s) zs=f(x^s)为局部视图特征。

局部视图任务

       在DINO中, L V L_V LV鼓励全局视图和局部视图之间的特征匹配,而局部视图到局部视图的通信未指定。

       在单尺度transformer中,由于低级特征到高级特征的残差连接有助于后者保持特征可区分性,从而保持良好的区域特征匹配性能。然而,这种特性由于多尺度transformer中的patch merging算子而被稀释,故用 L V L_V LV训练多尺度transformer会导致图像区域匹配性能减弱。 此外,不利用在计算全局视图的过程中得到的局部视图特征 z s z_s zs,可能是一种计算的浪费。

       本文认为计算机视觉中针对局部视图l的预训练任务很重要,这样模型可以充分利用 L V L_V LV提取的局部视图特征,以及利用局部视图特征之间的结构。故而提出一种非对比学习式的区域匹配方法,它们的通信定义:
L R = 1 ∣ P ∣ ∑ ( s , t ) ∈ P M R ( s , t ) M R ( s , t ) = − 1 T ∑ i = 1 T p j ∗ log ⁡ p i j ∗ = arg max ⁡ j z i T z j ∣ ∣ z i ∣ ∣   ∣ ∣ z j ∣ ∣ L_R=\frac 1 {|P|}\sum_{(s,t) \in P}M_R(s,t) \\ M_R(s,t)=-\frac 1 T \sum^T_{i=1}p_{j^*} \log p_i \\ j^*=\argmax_j \frac {z^T_iz_j} {||z_i|| \ ||z_j||} LR=P1(s,t)PMR(s,t)MR(s,t)=T1i=1Tpjlogpij=jargmax∣∣zi∣∣ ∣∣zj∣∣ziTzj

       其中 p i = h ′ ( z i ) p_i = h^′ (z_i) pi=h(zi) p j = h ′ ( z j ) p_j = h^′ (z_j ) pj=h(zj)分别为一个新的MLP头 h ′ h ^′ h,在学生网络和教师网络的局部特征 z i ∈ z s z_i ∈ z_s zizs z j ∈ z t z_j ∈ z_t zjzt上计算的概率输出。 j ∗ j ^∗ j z s z_s zs的第 i i i个特征与 z t z_t zt中具有最大余弦相似度的特征的索引,故 z i z_i zi z j ∗ z_j^ ∗ zj代表两个最佳匹配的局部视图的上下文特征,最小化 L R L_R LR鼓励不同的局部视图上下文学习不变特征,从而捕获局部依赖性。
image
       EsViT的整体预训练目标是 L = L R + L V L = L_R + L_V L=LR+LV,通过最小化学生网络和教师网络的交叉熵损失来学习匹配全局视图和局部视图的特征分布(如上图)。训练过程中交替更新教师/学生网络:

  • 给定一个固定的教师网络,通过最小化交叉熵损失来更新学生网络: θ s ← a r g m i n θ s L ( s , t ; θ s ) θ_s ← arg min_{θ_s} L(s, t; θ_s) θsargminθsL(s,t;θs)
  • 教师模型根据学生权重的指数移动平均(EMA)更新: θ t ← λ θ t + ( 1 − λ ) θ s θ_t ← λθ_t + (1 − λ)θ_s θtλθt+(1λ)θs λ λ λ遵循余弦退火方法,训练期间从0.996到1。

       默认情况下,一开始就可以使用完整的目标 L L L。也可以一开始加载一个仅由 L V L_V LV训练的checkpoints,再添加 L R L_R LR进行持续的预训练,实验中表明这样做能提高性能。

算法伪代码

image

计算复杂度

       在传统的单尺度Transformer架构上应用 L R L_R LR的计算成本可能非常高,为 O ( T 2 ) O(T ^2 ) O(T2)。对于分辨率为 224 × 224 224 × 224 224×224的图像,顶层的ViT/DeiT(patch size 16)的特征图长度将为 T = 196 T = 196 T=196,而multi-stage架构则为 T = 49 T = 49 T=49,这在计算 L R L_R LR时可减少3倍的计算量。

实验

对比试验

image
       上图显示了EsViT在ImageNet上线性分类任务下的速度与精度比较,左图可以看出同样的分类精度,EsViT在更小的参数量下吞吐量大于之前的sota算法如MoCov3、DINO、SimCLRv2等。右图显示EsViT在更少的参数量下,相比其他sota算法能达到更高的精度。
image
       上图为在ImageNet验证集上不同算法的top-1线性检测和k -NN精度的对比。

       与自监督transformer的比较:在相同的线性检测任务和训练数据下,基于DINO和moco的ViT比iGPT具有更高的精度和更小的模型。在相似的模型大小和计算复杂度水平上,EsViT(Swin-B)在绝对值上比DINO(ViT-B/16)提高了2.2%的线性检测精度和2.8%的k -NN精度。EsViT(Swin-B)甚至表现略优于DINO(ViT-B/8)(提高0.3%的线性检测精度和提高1.5%的k -NN精度),但具有4×倍的吞吐量。在使用相同的架构Swin-T时,EsViT预训练任务的性能优于MoBY,显示出更高3%的精度。

       在EsViT中,通过增加窗口大小来实现自注意力中的较长序列,通过考虑W = 14的窗口大小来进行实验。与所有系统相比,所提出的EsViT(Swin-B/ W =14)表现出最佳性能(top-1精度81.3%,top-5精度95.5%,k -NN精度79.3%),并且是3.5×参数高效的,比之前的SoTA MoCo-v3至少有10×更高的吞吐量。

       与大型ConvNets的比较:与SimCLR-v2, BYOL和SwAV报告的SoTA大ResNets进行了比较。其中,SimCLR-v2与SK- resnet报告了在线性探测协议下的最佳精度79.8%,而EsViT实现了更好的准确性,模型参数少16×,吞吐量高8×。
image
       上图为与有监督模型比较。 将其与监督学习的Swin进行比较。观察到使用Swin骨干网络的EsViT始终优于其监督变体。 对于其他尺寸的模型也得出了类似的结论。
image
       上表2显示在COCO检测和分割任务上,EsViT显示出与仅包含 L V L_V LV的变体(在括号中显示)的监督方法类似的结果(Swin-T以3 ×调度训练)。

       上表3显示了不同预训练数据集上预训练的算法在下游分类任务的表现:

  • L R L_R LR在所有数据集上改进了 L V L_V LV(括号中所示)
  • 所有EsViT预训练checkpoints在下游分类任务中都优于监督checkpoints,但性能差异很大,其 中ImageNet-22K检查点表现出最佳的迁移能力
  • ImageNet-1K预训练模型显示了最佳的ImageNet-1K线性检测性能。故认为不仅预训练数据集的大小很重要,图像类别的分布也很重要,更多样化和良好平衡的分布导致更强的泛化能力

消融实验

image
       上表4研究了ResNet-50和其余不同的transformer的对比实验。在本实验中,batch size为1024。所有算法修改为4阶段架构,每个阶段的Transformer层数为2-2-6-2。可以看到 L R L_R LR改进了所有网络架构,包括ResNet-50, Swin, ViL, CvT和PvT。

       上图4表明 L R L_R LR有助于模型收敛,并可作为改进使用view-level训练的模型的辅助工具。
image
        L R L_R LR在非对比学习视图级任务 L V L_V LV的基础上增加了一个非对比区域匹配任务,DenseCL则在对比学习视图级任务MoCo-v2的基础上增加了一个对比区域匹配任务。上图所示,在预训练ResNet-50下相同设置的四种方法进行比较。DenseCL提高了密集视觉预测性能,但会影响分类性能, L R L_R LR提高了这两项任务,特别是分类性能。 非对比方法在密集预测任务中表现出较低的性能。
image
       考虑两个指标,准确率衡量正确匹配区域对的百分比、距离误差表示预测匹配区域与真实区域之间的平均 ℓ 2 ℓ_2 2距离。

       结果如上图,DINO与单尺度transformer在对比学习上表现出了良好性能(0.95,2.49),而多级Transformer架构的使用降低了这种能力(0.66,49.9),使用 L R L_R LR后,区域匹配能力明显恢复(0.91,11.9)。
image
       将 L R L_R LR添加到多尺度transformer架构中,会产生可接受的额外计算成本,而直接将 L R L_R LR添加到单尺度transformer架构中,具有巨大的计算开销。

       如上图,对于每个种设置,采用[内存使用情况(MB)/每次迭代的运行时间(秒/迭代)]格式。在(a)中,当batch size逐渐增加(batch-size=12)时,内存成本对于单尺度架构增加了近4倍,而对于多阶段架构则增加了1.6倍。每次迭代的训练成本增长率(1.47 vs 1.15)也显示了类似的趋势。这表明 L R L_R LR可以更自然地适合多阶段架构。

可视化实验

image
       给定同一图像的两个视图,使用预训练的主干来提取顶层特征 z 1 z_1 z1 z 2 z_2 z2。对于 z 1 z_1 z1中的每个特征向量,在 z 2 z_2 z2中找到最高余弦相似度的特征向量。上图显示了三个方法的两个视图之间的前10个对应关系。

       在(b)中,EsViT与 L V L_V LV倾向于识别在背景中的配对为最匹配的(在这个例子中以错误的方式)。这可能是 L V L_V LV聚合全局特征级别的不变性不一定会诱导局部区域级别的不变性。 L R L_R LR(c)显著地减轻了这一问题,该任务隐式地需要本地匹配。
image
       上图显示最后一层的不同头部中的自注意力。将主对象边缘的局部区域作为query,并将query质量最高的60%的区域用红色高亮显示。

       DINO倾向于自动学习特定类别的注意力图,从而导致前景对象分割,无论其query位于前景或背景。这可能是因为在不同的增强视图中,主要对象仍然是主要的不变性因素。当采用多阶段架构时,此属性将丢失,如EsViT和 L V L_V LV所示。这些图案对于不同的头部是一致的。

       在加入 L R L_R LR之后,注意到不同头部的注意力图变得更加多样化,注意力的熵值变得更加偏斜,被关注的区域更加不同。这可能是因为 L R L_R LR需要每个区域考虑许多匹配任务到不同的增强视图中的区域,每个头自动学习分配任务并完成其中的一些任务。
image
       上图将更多图像的对应关系可视化。DINO使用单尺度transformer能够在温和的增强条件下发现最显著的语义对应关系,即使在训练中没有隐式区域匹配损失。当从单尺度到多尺度Transformer架构(从第一列到第二列)改变时,这种期望的属性会扩大,那么所提出的区域级任务可以缓解这个问题(从第二列到第三列)。

       为了更具体地分析对应关系,注意到以下结果。第一行展示了一个简单的情况,其中只展示了从左到右翻转视图的图像。ground truth对应关系应该是连接两个翻转区域的水平线。单靠视图级预训练任务不足以学习到多阶段Transformer架构的良好对应关系,而区域匹配任务可以显著缓解这一问题。类似的观察结果显示在第3行和第4行。

       进一步研究了更多需要在第2行、第5行和第6行中与现实世界对应的案例。这些视图不是通过数据增强生成,而是经常在更实际的场景中出现:一对多映射,卡通到玩具,场景的季节性变化。提出的区域匹配任务可以在这些情况下工作得很好。
image
       上图为顶层可视化注意力图。观察到,使用单尺度Transformer架构的DINO可以自动识别主要前景物体。然而从单尺度到多尺度Transformer架构(从左列到中列),这种属性会丢失。EsViT中相当多的头部显示了冗余模式,当增加区域级别的匹配任务(从中间列到右边列)时,这个问题可以减少。

       具有单尺度Transformer架构的DINO只学会关注前景对象,即使query是背景区域。这可能是因为DINO模型被训练为学习视图级不变性,预训练数据集ImageNet中的主要对象往往是在不同增强视图中保持不变的主要因素。因此,无论query位置如何,所有背景都会被忽略。这在EsViT中通过区域级预训练任务得到了改进,因为模型被训练为匹配局部视图区域。

       DINO在6个正面中都显示出高熵值(这可能是覆盖主对象所有区域的必要条件)。在EsViT中,增加 L R L_R LR会在自注意力头之间的熵分布比较有趣:增加了熵值较大的头,同时减少了熵值较低的头。换句话说,它使不同头部的注意模式更加多样化。

reference

Chunyuan, L. , Jianwei, Y. , Pengchuan, Z. , Mei, G. , Bin, X. , Xiyang, D. , Lu, Y. , & Jianfeng, G. . (2022). Efficient Self-Supervised Vision Transformers for Representation Learning.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1459210.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络协议汇总

1.HTTP协议 1.认识URL 平时我们俗称的 "网址" 其实就是说的 URL URL中的字符只能是ASCII字符,但是ASCII字符比较少,而URL则常常包含ASCII字符集以外的字符,如非英语字符、汉字、特殊符号等等,所以要对URL进行转换。这个…

举例说明什么是人机耦合

在呼叫中心行业,人机耦合是指将计算机自动化技术与人工服务相结合,以提高呼叫中心的效率和服务质量。具体来说,它包括通过智能语音识别、自然语言处理、机器学习等技术实现自动应答、自动导航、自动响应等功能,以及将人工客服与智…

企业级 文件传输加密应用,干货分享

企业级 文件传输加密应用 简历一直在投,一直无音讯,今天我又从硬盘里翻出一个 好玩的加密软件,这个是 2017年的时候和荷兰某世界500强公司合作的小项目。 今天分享给大家 。 文章目录 企业级 文件传输加密应用1.目的2.软件介绍3.下载好 安装…

C++:C++入门基础

创作不易,感谢三连 !! 一、什么是C C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机&#xff…

MySql重要知识梳理

文章目录 一.索引1.索引概述2.索引优缺点3. 索引结构为什么InnoDB存储引擎选择使用Btree索引结构? 4.索引分类思考InnoDB主键索引的Btree高度为多高? 5. 索引语法1.索引语法2.sql性能分析1.SQL执行频率2.慢查询日志3.explain执行计划 3.索引使用规则1.最左前缀法则2.索引失效…

vue3组件通信方式汇总

前言:本文默认读者有JS基础和Vue基础,如果没有这个两个基础,可能阅读比较困难,建议先看下官方文档,当然,也欢迎评论交流😁 通信方式总结 常见搭配形式 一、props(使用频率最高&#…

Windows 自带的 Linux 子系统(WSL)安装与使用

WSL官网安装教程: https://learn.microsoft.com/zh-cn/windows/wsl/install Windows 自带的Linux子系统,比用VM什么的香太多了。可以自己看官方教程,也可以以下步骤完成。 如果中间遇到我没遇到的问题百度,可以在评论区评论&#…

已解决Application run failed org.springframework.beans.factory.BeanNot

问题原因:SpringBoot的版本与mybiats-puls版本不对应且,spring自带的mybiats与mybiats-puls版本不对应 这里我用的是3.2.2版本的SpringBoot,之前mybiats-puls版本是3.5.3.1有所不同。 问题:版本对不上 解决办法:完整…

虚拟机+麒麟海光+达梦数据库linux 安装教程

一 下载 虚拟机下载地址下载 VMware Workstation Pro | CN 达梦数据库下载地址 产品下载 | 达梦数据库 (dameng.com) 银河麒麟下载地址 国产操作系统、银河麒麟、中标麒麟、开放麒麟、星光麒麟——麒麟软件官方网站 (kylinos.cn) 二 安装 虚拟机安装 https://www.cnblogs…

python 与 neo4j 交互(py2neo 使用)

参考自:neo4j的python.py2neo操作入门 官方文档:The Py2neo Handbook — py2neo 2021.1 安装:pip install py2neo -i https://pypi.tuna.tsinghua.edu.cn/simple 1 节点 / 关系 / 属性 / 路径 节点(Node)和关系(relationship)是构成图的基础…

05 扩展组件:自定义CheckBox组件

系列文章目录 01 Qt自定义风格控件的基本原则-CSDN博客 02 从QLabel聊起:自定义控件扩展-图片控件-CSDN博客 03 从QLabel聊起:自定义控件扩展-文本控件-CSDN博客 04 自定义Button组件:令人抓狂的QToolButton文本图标居中问题-CSDN博客 目…

第二件事 在Java 虚拟机 (JVM)跑一个程序

上篇文章写了 在 WINDOWS上 创建了一个 JVM, 好! 现在在这个 Java 虚拟计算机系统上跑一个Java语言编写的小程序; 题目: 用Java语言 编写一个小程序 在Console界面 打印 整数 1-10 (回头了一下源程序,靠,应…

知识蒸馏实战代码教学一(原理部分)

一、知识蒸馏的来源 知识蒸馏(Knowledge Distillation)源自于一篇由Hinton等人于2015年提出的论文《Distilling the Knowledge in a Neural Network》。这个方法旨在将一个大型、复杂的模型的知识(通常称为教师模型)转移到一个小型…

从零开始手写mmo游戏从框架到爆炸(十五)— 命令行客户端改造

导航:从零开始手写mmo游戏从框架到爆炸(零)—— 导航-CSDN博客 到现在,我们切实需要一个客户端来完整的进行英雄选择,选择地图,打怪等等功能。所以我们需要把之前极为简陋的客户端改造一下。 首先…

初识ONLYOFFICE 8.0:办公软件的革命性升级

引言 随着数字化时代的到来,办公软件已经成为我们日常生活和工作的重要组成部分。在这个充满竞争的市场中,ONLYOFFICE凭借其卓越的性能和功能,脱颖而出,成为许多企业和个人用户的优选。近期,ONLYOFFICE推出了全新的8.…

美格智能联合罗德与施瓦茨完成5G RedCap模组SRM813Q验证,推动5G轻量化全面商用

全球5G发展进入下半场,5G RedCap以其低成本、低功耗的特性成为行业焦点。近日,中国移动携手合作伙伴率先完成全球最大规模、最全场景、最全产业的RedCap现网规模试验,推动首批芯片、终端具备商用条件,RedCap端到端产业已全面达到商…

【Docker】有用的命令

文章目录 DockerDocker 镜像与容器的差异Docker的好处Hypervisor运维 一、安装docker二、启动docker三、获取docker镜像四、创建镜像使用命令行创建镜像使用dockerfile创建镜像 五、docker报错 Docker docker镜像(Image) docker镜像类似于虚拟机镜像&…

Unity3D中刚体、碰撞组件、物理组件的区别详解

前言 Unity3D提供了丰富的功能和组件,其中包括刚体、碰撞组件和物理组件。这些组件在游戏开发中起着非常重要的作用,能够让游戏世界更加真实和有趣。本文将详细介绍这三种组件的区别以及如何在Unity3D中实现它们。 对惹,这里有一个游戏开发…

【AI学习】LangChain学习

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

java8 中文指南3

java8 中文指南3 文章目录 java8 中文指南3Parallel Streams(并行流)Sequential Sort(串行排序)Parallel Sort(并行排序) MapsDate API(日期相关 API)ClockTimezones(时区)LocalTime(本地时间)LocalDate(本地日期)LocalDateTime(本地日期时间) Annotations(注解) 文章来自Java …