首页 > 编程学习 > Swin Transformer V2:扩展容量和分辨率

Swin Transformer V2:扩展容量和分辨率

发布时间:2022/10/1 14:11:41

摘要

https://arxiv.org/pdf/2111.09883.pdf
大规模 NLP 模型已被证明可以显着提高语言任务的性能,并且没有饱和迹象。它们还展示了与人类一样的惊人的少发能力。本文旨在探索计算机视觉中的大规模模型。我们解决了大型视觉模型训练和应用中的三个主要问题,包括训练不稳定性、预训练和微调之间的分辨率差距以及对标记数据的渴望。提出了三种主要技术:1)残差后范数方法结合余弦注意提高训练稳定性; 2) 一种对数空间连续位置偏差方法,可有效地将使用低分辨率图像预训练的模型转移到具有高分辨率输入的下游任务; 3) 一种自我监督的预训练方法 SimMIM,以减少对大量标记图像的需求。通过这些技术,本文成功训练了一个 30 亿参数的 Swin Transformer V2 模型,这是迄今为止最大的密集视觉模型,并使其能够训练分辨率高达 1536 美元×1536 美元的图像。它在 ImageNet-V2 图像分类、COCO 对象检测、ADE20K 语义分割和 Kinetics-400 视频动作分类等 4 个具有代表性的视觉任务上创造了新的性能记录。另请注意,我们的训练比 Google 的十亿级视觉模型高效得多,后者消耗的标记数据少 40 倍,训练时间少 40 倍。代码:https://github.com/microsoft/Swin-Transformer。

介绍

扩展语言模型已经取得了令人难以置信的成功。 它显着提高了模型在语言任务上的性能 并且该模型展示了与人类相似的惊人的少数镜头能力 。 自从有了 3.4 亿参数的 BERT 大模型,语言模型在几年内迅速扩大了 1000 多倍,达到 5300 亿个密集参数和 1.6 万亿个稀疏参数 。 这些大型语言模型还被发现具有越来越强大的小样本能力,类似于人类智能,可用于广泛的语言任务 。

另一方面,视觉模型的推广一直滞后。虽然人们早就认识到,较大的视觉模型通常在视觉任务上表现更好[29,60],但绝对模型大小最近只能达到大约10-20亿个参数[17,27,39,56,80]。更重要的是,与大型语言模型不同,现有的大型视觉模型仅应用于图像分类任务[17,56,80]。
在这里插入图片描述

为了成功地训练大型和通用的视觉模型,我们需要解决几个关键问题。首先,我们的大型视觉模型实验揭示了训练中的不稳定性问题。我们发现,在大模型中,不同层间的激活振幅差异显著增大。仔细观察原始架构就会发现,这是由直接添加回主分支的剩余单元的输出造成的。结果是激活值逐层累积,因此较深层的振幅明显大于较早期的振幅。为了解决这个问题,我们提出了一种新的归一化配置,称为res-post-norm,它将LN层从每个剩余单元的开始移动到后端,如图1所示。我们发现这种新配置在网络层间产生的激活值要温和得多。我们还提出了一个缩放余弦注意来取代之前的点积注意。缩放余弦注意使计算与块输入的振幅无关,注意值不太可能陷入极端。在实验中,这两种方法不仅提高了训练过程的稳定性,而且对较大的模型提高了训练精度。

其次,许多下游视觉任务,如目标检测和语义分割,需要高分辨率的输入图像或大的注意窗口。低分辨率预训练和高分辨率微调之间的窗口大小变化可能相当大。目前常用的做法是对位置偏差图进行双三次插值[22,46]。这个简单的修复有点特别,结果通常不是最优的。我们引入了对数间隔的连续位置偏差(Log-CPB),它通过在对数间隔的坐标输入上应用一个小型元网络来生成任意坐标范围的偏差值。由于元网络采用任何坐标,预训练的模型将能够通过共享元网络的权重自由地跨窗口大小传输。我们方法的一个关键设计是将坐标转换为对数空间,这样即使在目标窗口的大小明显大于训练前的情况下,外推率也可以很低。模型容量和分辨率的扩展也导致现有视觉模型的GPU内存消耗过高。为了解决内存问题,我们结合了一些重要的技术,包括零优化器[54]、激活检查点[12]和一个新的顺序自我注意计算实现。使用这些技术,大大降低了大模型和分辨率的GPU内存消耗,而对训练速度的影响甚微。

通过上述技术,我们成功训练了一个30亿的Swin Transformer模型,并使用Nvidia A100-40G gpu,有效地将其转移到各种图像分辨率高达1,536×1,536的视觉任务中。在我们的模型预训练中,我们还采用了自我监督的预训练来减少对超大标签数据的依赖。与以前的实践(JFT-3B)相比,30亿模型的标记数据少40×,在广泛的视觉基准上实现了最先进的准确性。具体而言,它在ImageNet-V2图像分类验证集[55]上获得了84.0%的top-1精度,在COCO test-dev对象检测集上获得了63.1 / 54.4 box / mask AP,在ADE20K语义分割上获得了59.9 mIoU,在kineics -400视频动作分类上获得了86.8%的top-1精度,比原始Swin Transformer中的最佳数字[46,47]提高了+NA%、+4.4/+3.3、+6.3和+1.9,比之前的最佳记录高出了+0.8%([80])。+1.8/+1.4([74]),+1.5([4])和+1.4%([57])。通过提高在一般视觉任务中具有较强性能的视觉模型的能力和分辨率,就像一个好的语言模型在一般NLP任务中的表现一样,我们的目标是激发更多这方面的研究,从而最终弥合视觉和语言模型之间的能力差距,促进两个领域的联合建模。

2. 相关的工作

语言网络和扩展 自[65]的开创性工作以来,Transformer一直服务于标准网络。从那时起,人们就开始探索这种体系结构的缩放,有效的自我监督学习方法的发明(如遮蔽或自回归语言建模)加速了这一进展[19,52],缩放定律[36]的发现进一步鼓励了这一进展。从那时起,语言模型的容量在几年内急剧增加了1000多倍,从BERT-340M到Megatron-Turing-530B[7, 49, 50, 53]和稀疏开关-Transformer-1.6T[24]。随着容量的增加,各种语言基准测试的准确性得到了显著提高。零发或少发的表现也得到了显著的提高,这是人类一般智力的基础。

视觉网络和扩展 cnn一直是标准的计算机视觉网络[40,41]。自AlexNet[40]以来,架构变得更深更大,极大地推进了各种视觉任务,极大地推动了计算机视觉领域的深度学习浪潮,如VGG[60]、GoogleNet[62]和ResNet citehe2015resnet。在过去的两年中,CNN体系结构进一步扩大到约10亿个参数[27,39],然而,绝对性能可能不那么令人鼓舞,这可能是由于CNN体系结构中的归纳偏差限制了建模能力。

去年,Transformers开始接管一个又一个具有代表性的视觉基准,包括ImageNet-1K图像级分类基准[22]、COCO区域级对象检测基准[46]、ADE20K像素级语义分割基准[46,83]、kineics -400视频动作分类基准[2]等。自这些工作以来,许多vision Transformer变体被提出,以在相对小的尺度上提高精度[14,21,34,42,63,68,71,75,77,78,82]。只有少数作品试图放大视觉Transformers[17,56,80]。然而,它们依赖于一个巨大的带有分类标签的图像数据集,即JFT-3B,并且只应用于图像分类问题。

跨窗口传输/内核分辨率 对于cnn,以往的工作通常在预训练和微调期间固定内核大小。全局视觉变形器,如ViT[22],全局计算注意力,其等效注意力窗口大小与增加的输入图像分辨率成线性正比。对于本地vision Transformer体系结构,例如Swin Transformer[46],窗口大小可以在微调期间固定或更改。允许可变窗口大小在使用中更方便,这样可以被可能可变的整个特征映射整除,并调优接收字段以获得更好的精度。为了处理预训练和微调之间的可变窗口大小,双三次插值是以前常用的做法[22,46]。在本文中,我们提出了一种对数间隔连续位置偏差方法(Log-CPB),它能更平稳地将预先训练好的低分辨率模型权值转移到处理高分辨率窗口。

在NLP中,相对位置偏差法被证明比原始Transformer中使用的绝对位置嵌入法更有利[53][65]。在计算机视觉中,相对位置偏差法更为常用[31,46,75],这可能是因为视觉信号的空间关系在视觉建模中起着更重要的作用。通常的做法是直接学习偏差值作为模型权值。也有一些作品专门研究如何设置和学习偏差项[38,69]。

我们的Log-CPB方法也与早期关于连续卷积和变式的工作有关[30,45,58,67],这些工作利用元网络来处理不规则数据点。我们的Log-CPB方法受到这些努力的启发,同时解决了一个不同的问题,即跨任意窗口大小在视觉变形器中转移相对位置偏差。我们还提出对数间距坐标,以减轻在大尺寸变化之间转移时的外推困难。

3.Swin TransformerV2

3.1. Swin Transformer技术综述

Swin Transformer是一个通用的计算机视觉主干,在区域级目标检测、像素级语义分割和图像级图像分类等各种粒度识别任务中都取得了较强的性能。Swin Transformer的主要思想是将几个重要的视觉先验引入到普通的Transformer编码器中,包括层次结构、局部性和转换不变性,这结合了两者的长处:基本Transformer单元具有强大的建模能力,而视觉先验使其对各种视觉任务友好。

标准配置 众所周知,规范化技术[3、35、64、70]对于稳定训练更深层的体系结构至关重要。原始的Swin Transformer继承了语言Transformer[52]和vanilla ViT[22]中的常见实践,即在不进行大量研究的情况下利用预规范化配置,如图1所示。在接下来的小节中,我们将研究这个默认的规范化配置。

相对位置偏差 是原Swin Transformer中的一个关键组件,它引入了一个附加的参数偏差项来编码自注意计算中的几何关系:
Attention ⁡ ( Q , K , V ) = SoftMax ⁡ ( Q K T / d + B ) V . \operatorname{Attention}(Q, K, V)=\operatorname{SoftMax}\left(Q K^{T} / \sqrt{d}+B\right) V . Attention(Q,K,V)=SoftMax(QKT/d +B)V.
其中 B ∈ R M 2 × M 2 B \in \mathbb{R}^{M^{2} \times M^{2}} BRM2×M2是每个头的相对位置偏差项; Q , K , V ∈ R M 2 × d Q, K, V \in \mathbb{R}^{M^{2} \times d} Q,K,VRM2×d为查询、键和值矩阵;d是查询/键维度, M 2 M^{2} M2是窗口中的补丁数量。相对位置偏差编码视觉元素的相对空间配置,在各种视觉任务中显示出关键作用,特别是在像物体检测这样的密集识别任务中。

在Swin Transformer中,各轴上的相对位置在 [ − M + 1 , M − 1 ] [-M+1, M-1] [M+1,M1]的范围内,相对位置偏差被参数化为偏差矩阵 B ^ ∈ R ( 2 M − 1 ) × ( 2 M − 1 ) \hat{B} \in \mathbb{R}^{(2 M-1) \times(2 M-1)} B^R(2M1)×(2M1), B中的元素来自 B ^ \hat{B} B^。在跨不同窗口大小传输时,利用预训练中学习到的相对位置偏差矩阵,在微调时通过双三次插值初始化不同大小的偏差矩阵。

放大模型容量和窗口分辨率的问题 当我们扩大Swin Transformer的容量和窗口分辨率时,我们观察到两个问题。

  • 放大模型容量时的不稳定性问题。如图2所示,当我们将原始Swin Transformer模型从小尺寸扩大到大尺寸时,较深层的激活值显著增加。最高和最低振幅层之间的差异已达到极值104。当我们将其进一步扩大到较大的规模(6.58亿个参数)时,它无法完成训练,如图3所示。
    在这里插入图片描述

  • 跨窗口分辨率传输模型时性能下降。如表1第一行所示,当我们通过双三次插值方法直接测试预训练的ImageNet-1K模型(256 × 256图像,8 × 8窗口大小)在更大的图像分辨率和窗口大小下的准确性时,精度显著下降。可能值得重新检查原始Swin Transformer中的相对位置偏差方法。
    在这里插入图片描述

在接下来的小节中,我们介绍了解决这些问题的技术,包括剩余后归一化和缩放余弦注意,以解决不稳定性问题,以及对数间隔连续位置偏差方法,以解决跨窗口分辨率传输的问题。
在这里插入图片描述

3.2. 放大模型容量

如3.1节所述,最初的Swin Transformer(和大多数视觉Transformer)在每个块的开始采用层规范层,继承自vanilla ViT。当我们扩大模型容量时,在更深的层观察到激活值的显著增加。事实上,在预归一化配置中,每个剩余块的输出激活值直接合并回主支路,主支路的振幅在更深的层越来越大。不同层间振幅差异较大,导致训练不稳定。

归一化后 为了缓解这个问题,我们建议使用残差后归一化方法,如图1所示。在这种方法中,每个残差块的输出在归并回主分支之前都是归一化的,当层越深时主分支的振幅不会积累。如图2所示,这种方法的激活振幅比原始的预归一化配置要温和得多。

在我们最大的模型训练中,我们在主分支上每6个Transformer块引入一个额外的层归一化层,以进一步稳定训练。

按比例缩小的余弦的注意力 在原始的自注意计算中,像素对的相似项作为查询和关键向量的点积计算。我们发现,当该方法应用于大型视觉模型时,学习到的某些块和头部的注意地图往往由少数像素对主导,特别是在res-post-范数配置中。为了解决这个问题,我们提出了一种缩放余弦注意方法,通过缩放余弦函数计算像素对i和j的注意logit:

Sim ⁡ ( q i , k j ) = cos ⁡ ( q i , k j ) / τ + B i j (2) \operatorname{Sim}\left(\mathbf{q}_{i}, \mathbf{k}_{j}\right)=\cos \left(\mathbf{q}_{i}, \mathbf{k}_{j}\right) / \tau+B_{i j} \tag{2} Sim(qi,kj)=cos(qi,kj)/τ+Bij(2)

其中 B i j B_{i j} Bij是像素i和j之间的相对位置偏差; τ \tau τ是一个可学习的标量,不跨头和层共享。 τ \tau τ设置大于0.01。余弦函数是自然归一化的,因此可以有较温和的注意值。

3.3. 放大窗口分辨率

在本小节中,我们将介绍一种对数间隔的连续位置偏差方法,这样相对位置偏差就可以在不同的窗口分辨率之间平滑地传递。

连续相对位置偏差 连续位置偏差方法没有直接优化参数化偏差,而是在相对坐标上采用了一个小型元网络:
B ( Δ x , Δ y ) = G ( Δ x , Δ y ) , B(\Delta x, \Delta y)=\mathcal{G}(\Delta x, \Delta y), B(ΔxΔy)=G(ΔxΔy)

其中 G \mathcal{G} G是一个小网络,例如,默认情况下,中间有一个ReLU激活的2层MLP。

元网络 G \mathcal{G} G为任意相对坐标生成偏置值,因此可以自然地转移到具有任意变化窗口大小的微调任务中。在推理中,每个相对位置的偏差值可以预先计算并存储为模型参数,从而使推理与原始的参数化偏差方法相同。

Log-spaced坐标 当在不同的窗口大小之间传输时,需要外推相对坐标范围的很大一部分。为了缓解这个问题,我们建议使用对数间距坐标来代替原来的线性间距坐标:

Δ x ^ = sign ⁡ ( x ) ⋅ log ⁡ ( 1 + ∣ Δ x ∣ ) , Δ y ^ = sign ⁡ ( y ) ⋅ log ⁡ ( 1 + ∣ Δ y ∣ ) , (4) \begin{array}{l} \widehat{\Delta x}=\operatorname{sign}(x) \cdot \log (1+|\Delta x|), \\ \widehat{\Delta y}=\operatorname{sign}(y) \cdot \log (1+|\Delta y|), \end{array} \tag{4} Δx =sign(x)log(1+∣Δx),Δy =sign(y)log(1+∣Δy),(4)

其中 Δ x , Δ y \Delta x, \Delta y ΔxΔy Δ x ^ , Δ y ^ \widehat{\Delta x},\widehat {\Delta y} Δx ,Δy 分别为线性缩放坐标和对数间距坐标。

通过使用对数间隔坐标,当我们跨窗口分辨率转移相对位置偏差时,所需的外推比将比使用原始线性间隔坐标小得多。例如,使用原始原始坐标,将预训练的8 × 8窗口大小转换为微调后的16 × 16窗口大小,输入坐标范围从[−7;7]×[−7;7][−15;15]×[−15;15)。外推比为 8 7 \frac{8}{7} 78 =原始范围的1.14倍。使用对数间隔坐标,输入范围将从[−2:079;2:079]×[−2:079;2:079][−2:773;2:773]×[−2:773;2:773]。外推比为原范围的0.33倍,比使用原线间距坐标外推比约小4倍。

表1比较了不同位置偏差计算方法的传输性能。可以看出,对数间距CPB(连续位置偏差)方法的性能最好,特别是当转移到更大的窗口大小时。

3.4. Self-Supervised 预训练

较大的模型更需要数据。为了解决数据饥渴问题,以前的大型视觉模型通常使用巨大的标签数据,如JFT-3B[17,56,80]。在这项工作中,我们开发了一种自监督预训练方法SimMIM[72],以减轻对标记数据的需求。通过这种方法,我们成功地训练了一个具有30亿参数的强大Swin Transformer模型,在4个代表性的视觉基准上实现了最先进的(SOTA),只使用了7000万张标签图像(JFT-3B中的1/40)。

3.5. 实现节省GPU内存

另一个问题在于,当容量和分辨率都很大时,常规实现的GPU内存消耗是难以承受的。为了解决内存问题,我们采用了以下实现:

  • 零冗余优化器(ZeRO)[54]。在优化器的一般数据并行实现中,模型参数和优化状态被广播到每个GPU。这种实现对GPU内存消耗非常不利,例如,当使用AdamW优化器和fp32权重/状态时,一个具有30亿个参数的模型将消耗48G的GPU内存。使用ZeRO优化器,模型参数和相应的优化状态将被分割并分布到多个gpu上,这大大减少了内存消耗。我们采用DeepSpeed框架,并在实验中使用ZeRO stage-1选项。该优化对训练速度影响不大。

  • 激活检查点[12]。Transformer层中的特性映射也会消耗大量GPU内存,当图像和窗口分辨率较高时,这可能会造成瓶颈。激活检查点技术可以显著降低内存消耗,同时训练速度降低30%。

  • 顺序self-attention计算。在非常大的分辨率上训练大型模型,例如,一个1,536×1,536分辨率的图像,窗口大小为32×32,即使使用上述两种优化技术,普通的A100 gpu (40GB内存)仍然是负担不起的。我们发现,在这种情况下,自我注意模块构成了瓶颈。为了解决这一问题,我们采用顺序实现自注意计算的方法,而不是使用以前的批量计算方法。这种优化应用于前两个阶段的层,对整体训练速度的影响很小。

通过这些实现,我们成功地用Nvidia A100-40G gpu训练了一个3B模型,用于COCO目标检测,输入图像分辨率为1,536×1,536,以及kineics -400动作分类,输入分辨率为320 × 320 × 8。

3.6. 模型配置

我们为Swin Transformer V2的4种配置维护原始Swin Transformer的阶段、块和通道设置:

  • SwinV2-T: C=96 , #. block ={2,2,6,2}
  • SwinV2-S/B/L: C=96 / 128 / 192 , #.block ={2,2,18,2}

C表示第一阶段的通道数。

我们进一步将Swin Transformer V2放大到其巨大尺寸和巨大尺寸,分别拥有6.58亿参数和30亿参数:

  • SwinV2-H: C=352 , #. block ={2,2,18,2}
  • SwinV2-G: C=512 , #. block ={2,2,42,4}

对于SwinV2-H和SwinV2-G,我们在主分支上每6层添加一个额外的层归一化层。为了节省实验时间,我们只使用SwinV2-G进行大规模实验。SwinV2-H用于另一项关于自我监督学习的平行研究[72]。

4. 实验

4.1. 任务和数据集

我们对ImageNet-1K图像分类(V1和V2)[18,55]、COCO对象检测[44]和ADE20K语义分割[85]进行了实验。在3B模型实验中,我们也报告了Kinetics-400视频动作识别[37]的准确性。

  • 图像分类。使用ImageNet-1K V1和V2 val[18,55]进行评估。ImageNet-22K[18]具有14M图像和22K类别,可选地用于预训练。对于我们最大的SwinV2-G模型的预训练,使用了一个私人收集的ImageNet-22K-ext数据集,包含7000万张图像。对于该数据集,使用ImageNet-1K V1和V2验证集进行重复删除过程[51],以排除重叠图像。
  • 对象检测。COCO[44]用于评估。对于我们最大的模型实验,我们使用Object 365 v2数据集[59],在图像分类前训练阶段和COCO微调阶段之间使用额外的检测前训练阶段。
  • 语义分割。采用ADE20K[85]。
  • 视频分类。Kinetics-400 (K400)[37]用于评估。

训练前和微调设置将在附录中详细介绍。

4.2. 扩大实验

我们首先通过将模型放大到30亿参数和高图像/窗口分辨率,在各种代表性的视觉基准上展示了结果。

SwinV2-G实验设置 我们在训练前采用了更小的192 × 192图像分辨率,以节省训练成本。我们采取两步训练前的方法。首先,使用自监督方法[72]在ImageNet-22K-ext数据集上预训练模型20个epoch。其次,利用该数据集上的图像分类任务进一步对模型进行30个epoch的预训练。详细的预培训和微调设置在附录中描述。

在接下来的段落中,我们报告了SwinV2-G在代表性视力基准上的准确性。请注意,由于我们的主要目标是探索如何可行地扩大模型容量和窗口分辨率,以及视觉任务是否能从显著增大的容量中受益,所以我们没有特别地在比较中对齐复杂性或训练前数据。
ImageNet-1K图像分类结果 表2比较了SwinV2-G模型与之前ImageNet-1K V1和V2分类上的最大/最佳视觉模型。SwinV2-G是目前最大的密集视觉模型。在ImageNet V2基准测试中,它的准确率达到了84.0%,比之前的最佳准确率(83.3%)提高了0.7%。我们在ImageNet-1K V1上的准确性略低(90.17% vs 90.88%)。性能差异可能来自于不同程度的数据集超调[55]。还需要注意的是,我们使用了更少的训练迭代和更低的图像分辨率,相比之前的工作,但性能非常好。
在这里插入图片描述

我们还分别将SwinV2-B和SwinV2-L与原始SwinV1-B和SwinV1-L进行了比较,结果分别为+0.8%和+0.4%的增益。SwinV2-L的增益比SwinV2-B的缩小可能意味着,如果超过这个大小,就需要更多的标记数据,更强的正则化,或高级的自监督学习方法。

COCO目标检测结果 表3比较了SwinV2-G模型与以前COCO对象检测和实例分割的最佳结果。它在COCO test-dev上达到了63.1/54.4 box/max AP,比之前的最佳数字(61.3/53.0倍[74])提高了1.8/1.4。这表明,放大视觉模型有利于目标检测的密集视觉识别任务。我们的方法可以在测试中使用不同的窗口大小来获得额外的好处,这可能归功于有效的Log-spaced CPB方法。
在这里插入图片描述

ADE20K语义分割结果 表4比较了SwinV2-G模型与之前在ADE20K语义分割基准测试上的最佳结果。它在ADE20K val集上达到59.9 mIoU,比之前的最佳值(58.4 ×[4])高出1.5。这表明,放大视觉模型有利于像素级的视觉识别任务。在测试时使用更大的窗口大小可以额外带来+0.2增益,这可能归因于有效的Log-spaced CPB方法。
在这里插入图片描述

Kinetics-400视频动作分类结果 表5比较了SwinV2-G模型与kineics -400动作分类基准的以前最佳结果。它达到86.8%的top-1精度,比之前的最佳数字[57]+1.4%。这表明,扩大视觉模型也有利于视频识别任务。在这种情况下,在测试时使用更大的窗口大小还可以带来+0.2%的额外好处,这可能归功于有效的Log-spaced CPB方法。
在这里插入图片描述

4.3. 消融实验

消融res-后范数和缩放余弦注意力 表6弱化了对Swin Transformer应用提出的res-post范数和缩放余弦注意方法的性能。这两种方法都提高了微型、小型和基础尺寸的精度,总体提高分别为+0.2%、+0.4%和+0.5%,表明该方法更有利于较大的模型。它也被证明有利于ViT架构(+0.4%)。提出的归一化方法也比其他一些归一化方法性能更好,如表7所示。
在这里插入图片描述
在这里插入图片描述

更重要的是,后范数和尺度余弦注意的结合稳定了训练。如图2所示,虽然原始Swin Transformer的深层激活值几乎在大(L)尺寸下爆炸,但新版本的激活值有更温和的行为。在一个巨大的模型上,自监督预训练[72]使用原始的Swin Transformer发散,而使用Swin Transformer V2模型训练效果良好。
通过不同的方法提高窗口分辨率 表1和表8分别在ImageNet-1K图像分类、COCO目标检测和ADE20K语义分割3个下游视觉任务中,将窗口分辨率从预训练的256 × 256缩放到更大的尺寸,降低了3种方法的性能。可以看出:1)不同方法在训练前的准确率相近(81.7% ~ 81.8%);2)当转移到下游任务时,两种连续位置偏差(CPB)方法的性能一致优于Swin Transformer V1中使用的参数化位置偏差方法。与线性间隔法相比,对数间隔法稍好一些;3)训练前和微调之间分辨率的变化越大,提出的对数间隔CPB方法的效益越大。
在这里插入图片描述

在表1和表8中,我们还报告了使用目标窗口分辨率而不进行微调的准确性(参见ImageNet-1K实验中每列的第一个数字)。当窗口大小从8个扩大到24个时,识别准确率仍然不错(78.9% vs . 81.8%),而原始方法的前1的准确率从81.7%显著下降到68.7%。还需要注意的是,在没有微调的情况下,使用预训练模型从未见过的12窗口大小甚至可以比原始精度高出0.4%。这表明我们可以通过调整测试时间窗口来提高准确性,如表3、4和5所示。

5. 结论

我们提出了将Swin Transformer缩放到30亿个参数的技术,并使其能够使用高达1,536×1,536分辨率的图像进行训练,包括res-post-norm和缩放余弦注意,以使模型更容易缩放容量,以及对数间隔的连续相对位置偏差方法,使模型更有效地跨窗口分辨率传输。改编的架构被命名为Swin Transformer V2,通过扩大容量和分辨率,它在4个代表性的视觉基准上创造了新的记录。通过这些强有力的结果,我们希望能够激发更多这方面的研究,从而最终弥合视觉和语言模型之间的能力差距,促进这两个领域的联合建模。

Copyright © 2010-2022 mfbz.cn 版权所有 |关于我们| 联系方式|豫ICP备15888888号