【读点论文】CoAtNet: Marrying Convolution and Attention for All Data Sizes串行卷积特征和Transformer特征的融合探讨,适应数据量

CoAtNet: Marrying Convolution and Attention for All Data Sizes

Abstract

  • transformer吸引了人们对计算机视觉越来越多的兴趣,但它们仍然落后于最先进的卷积网络。在这项工作中,我们表明,虽然transformer往往具有更大的模型容量,但由于缺乏正确的归纳偏差,它们的泛化可能比卷积网络更差。为了有效地结合这两种架构的优势,我们提出了CoAtNets(念作“coat”nets),这是一个混合模型家族,基于两个关键观点构建:

    • (1)深度卷积和自我注意力可以通过简单的相对注意力自然统一;

    • (2)卷积层和注意层按原则垂直叠加,在提高泛化能力、容量和效率方面具有惊人的效果。

  • 实验表明,在不同的数据集上,我们的CoAtNet在不同的资源约束下实现了最先进的性能:在没有额外数据的情况下,CoAtNet达到了86.0%的ImageNet top-1精度;当使用来自ImageNet-21K的13M张图像进行预训练时,我们的CoAtNet达到了88.56%的top-1精度,与来自JFT-300M的300M张图像进行预训练的vt -huge相匹配,同时使用的数据减少了23倍;值得注意的是,当我们用JFT-3B进一步扩大CoAtNet时,它在ImageNet上达到了90.88%的top-1精度,建立了一个新的最先进的结果。

  • 谷歌提出了一个叫做CoAtNets的模型,这是一个Convolution + Attention的组合模型。该模型实现了ImageNet数据集86.0%的top-1精度,而在使用JFT数据集的情况下实现了89.77%的精度,性能优于现有的所有卷积网络和Transformer!

  • 论文地址:[2106.04803] CoAtNet: Marrying Convolution and Attention for All Data Sizes (arxiv.org)

  • CoAtNet 同时利用了卷积神经网络 (CNN) 和 Transformer 的超强能力,基于 MBConv 块【(1条消息) 【读点论文】MobileNetV2: Inverted Residuals and Linear Bottlenecks 针对V1的专项改进。改变残差方式,改善映射条件。_羞儿的博客-CSDN博客】和相对自注意力将平移同变性(translation equivariance)、输入自适应加权(input-adaptive Weighting)和全局感受野(Global Receptive Field)融合在一起,构建了一个强大的新架构家族。

  • 由谷歌大脑发表在NeurlPS 2021

Introduction

  • 自AlexNet的突破以来,卷积神经网络(ConvNets)一直是计算机视觉的主导模型架构。同时,随着transformer等自注意模型在自然语言处理中的成功,许多前人的工作都试图将注意力的力量引入计算机视觉。最近,Vision Transformer (ViT)表明,仅使用几乎1个普通的Transformer层,就可以在ImageNet-1K上获得合理的性能。更重要的是,当在大规模弱标记JFT-300M数据集上进行预训练时,ViT获得了与最先进的(SOTA) ConvNets相当的结果,这表明Transformer模型在规模上可能比ConvNets具有更高的容量。

  • 虽然ViT在巨大的JFT 300M训练图像上显示了令人印象深刻的结果,但在低数据环境下,它的性能仍然落后于ConvNets。例如,在没有额外的JFT-300M预训练的情况下,ViT的ImageNet精度仍然明显低于具有可比模型大小的ConvNets。后续工作使用特殊的正则化和更强的数据增强来改进最开始的ViT,但在相同的数据量和计算量下,这些ViT变体都不能在ImageNet分类上优于SOTA纯卷积模型。这表明,普通的Transformer层可能缺乏ConvNets所拥有的某些理想的归纳偏差,因此需要大量的数据和计算资源来补偿。

  • 不足为奇的是,最近的许多工作都试图将ConvNets的归纳偏差纳入Transformer模型,方法是为注意力层施加局部接受场,或者用隐式或显式卷积操作增加注意力层和FFN层。然而,这些方法要么是特别的,要么专注于注入特定的性质,缺乏对卷积和注意力结合时各自作用的系统理解。

  • 在这项工作中,我们从机器学习的两个基本方面——泛化和模型容量,系统地研究了杂交卷积和注意问题。我们的研究表明,卷积层由于其强的归纳偏差先验,往往具有更好的泛化和更快的收敛速度,而注意层具有更高的模型容量,可以受益于更大的数据集。将卷积层和注意层结合起来可以获得更好的泛化和容量;然而,这里的一个关键挑战是如何有效地结合它们,以在准确性和效率之间实现更好的平衡。

  • 在本文中,我们研究了两个关键的发现:首先,我们观察到常用的深度卷积可以有效地合并成具有简单相对注意的注意层;其次,简单地以适当的方式堆叠卷积层和注意层,可以惊人地有效地实现更好的泛化和容量。基于这些见解,我们提出了一种简单而有效的网络架构,名为CoAtNet,它兼有ConvNets和transformer的优点。

  • 我们的CoAtNet在不同数据大小的可比资源限制下实现了SOTA性能。具体而言,在低数据条件下,CoAtNet由于具有良好的归纳偏差,继承了ConvNets的良好泛化特性。此外,由于数据丰富,CoAtNet不仅具有Transformer模型的可扩展性,而且收敛速度更快,从而提高了效率。当仅使用ImageNet-1K进行训练时,CoAtNet的top-1准确率达到86.0%,在相似的计算资源和训练条件下,与现有技术NFNet相当。此外,在ImageNet-21K上使用大约10M张图像进行预训练时,在ImageNet-1K上进行微调时,CoAtNet达到了88.56%的top-1精度,与JFT-300M(一个23倍大的数据集)上的ViT-Huge预训练相匹配。最后,当使用JFT-3B进行预训练时,与ViT相比,CoAtNet表现出更好的效率,将ImageNet-1K top-1精度提高到90.88%,而使用的计算量是ViT- g /14现有技术的1.5倍。

  • 研究人员发现,卷积网络和Transformer在机器学习的两个基本方面——泛化和模型容量上各具优势。由于卷积层有较强的归纳偏置(inductive bias),所以卷积网络模型具有更好的泛化能力和更快的收敛速度,而拥有注意机制的Transformer则有更高的模型容量,可以从大数据集中受益。那将卷积层和注意层相结合起来,不就可以同时获得更好的泛化能力和更大的模型容量吗!

  • 将CoAtNets的实现分为两步:

    • 将卷积和自注意结合在一个基本计算块中;

    • 将不同类型的计算块垂直堆叠在一起(垂直布局设计),形成完整的网络。

Model

  • 在本节中,我们将重点讨论如何“最佳地”结合卷积和transformer的问题。大致来说,我们将问题分解为两个部分:

    • 如何在一个基本的计算块中结合卷积和自我注意?

    • 如何将不同类型的计算块垂直堆叠在一起,形成一个完整的网络?

  • 随着我们逐渐揭示我们的设计选择,分解的基本原理将变得更加清晰。首先,由于Transformer和MBConv中的FFN模块都采用了“反向瓶颈”的设计,加上深度卷积和自我注意都可以用预定义的感受野中的加权和来表示,CoAtNets主要采用MBConv卷积块。具体来说,卷积依赖于一个固定核从局部感受野收集信息,相比之下,自注意允许感受野成为整个空间位置,并基于对(xi,xj)之间的重归一化成对相似性来计算权重.

Merging Convolution and Self-Attention
  • 对于卷积,我们主要关注MBConv块,它利用深度卷积来捕获空间相互作用。这一选择的一个关键原因是Transformer和MBConv中的FFN模块都采用了“反向瓶颈”的设计,首先将输入的通道大小扩大4倍,然后将4x宽的隐藏状态投影回原始通道大小,以实现残差连接。

  • 除了反向瓶颈的相似性之外,我们还注意到深度卷积和自我注意都可以表示为预定义的接受域中每维值的加权和。具体来说,卷积依赖于一个固定的核来收集来自局部接受域的信息

    • y i = ∑ j ∈ L i w i − j ⊙ x j ( d e p t h w i s e   c o n v o l i t i o n ) y_i=\sum_{j\in\mathcal{L_i}}w_{i-j}\odot x_j(depthwise~convolition) yi=jLiwijxj(depthwise convolition)

    • 其中,xi, yi∈RD分别为位置i的输入和输出,L(i)表示i的局部邻域,例如图像处理中以i为中心的3x3网格。

  • 相比之下,自我注意允许感受野是整个空间位置,并基于重新归一化的成对相似度计算权重(xi, xj):

    • y i = ∑ j ∈ G e x p ( x i T x j ) ∑ k ∈ G e x p ( x i T x k ) x j ( s e l f   a t t e n t i o n ) y_i=\sum_{j\in\mathcal{G}}\frac{exp(x_i^Tx_j)}{\sum_{k\in\mathcal{G}}exp(x_i^Tx_k)}x_j(self~attention) yi=jGkGexp(xiTxk)exp(xiTxj)xj(self attention)

    • 其中G表示全局空间空间。在讨论如何最好地结合它们之前,比较一下它们的相对优点和缺点是值得的,这有助于找出我们希望保留的优点。

  • 首先,深度卷积核wi−j是一个静态值的与输入无关的参数,而注意权值Ai,j动态地依赖于输入的表示方式。因此,自我注意力更容易捕捉不同空间位置之间复杂的关系相互作用,这是我们在处理高级概念时最渴望的特性。然而,这种灵活性带来了更容易过拟合的风险,特别是在数据有限的情况下。

  • 其次,请注意,给定任何位置对(i, j),相应的卷积权值wi - j只关心它们之间的相对移位,即i−j,而不是i或j的具体值。这个性质通常被称为平移等价,它被发现可以提高在有限大小的数据集下的泛化。由于使用了赦免位置嵌入,标准Transformer (ViT)缺乏这种特性。这部分解释了为什么当数据集不是特别大时,卷积神经网络通常比transformer更好

  • 最后,感受野的大小是自我注意和卷积之间最关键的区别之一。一般来说,更大的接受域提供更多的上下文信息,这可能导致更高的模型容量。因此,全局接受域是视觉自我注意的关键动机。然而,一个大的接受场需要更多的计算。在全局注意的情况下,复杂性是空间大小的二次型,这是应用自我注意模型的基本权衡。

    • 在这里插入图片描述

    • Desirable properties found in convolution or self-attention.

  • 一个结合深度卷积和自注意的理想模型需要具备以上3个特性,而研究人员的实现方法很简单:在Softmax归一化前或后,将全局静态卷积核自适应注意矩阵求和。将卷积和注意力结合起来之后,就可以开始堆叠整个网络。全局上下文在空间大小(spatial size)方面具有二次复杂性,如果直接将上述公式中的相对注意应用到原始图像输入,会因为普通尺寸图像中过多的像素,导致计算速度过慢。因此,要构建一个在实际操作中可行的模型,研究人员选择在feature map达到可管理水平后,进行一些下采样以减小空间大小,再使用全局相对注意。其中下采样可以像ViT那样用具有积极步幅(stride,例如16x16)的 convolution stem或像ConvNets里具有渐进池的多级网络来实现。研究人员按照上面两种方法堆叠出5个变体:C-C-C-C、C-C-C-T、C-C-T-T和C-T-T-T以及ViTᵣₑₗ,其中C和T分别表示卷积和Transformer。

  • 为了作出选择,他们进行了对照实验,选出了泛化能力和模型容量最好的两个:C-C-T-T和C-T-T-T,优中选优,最终选择了迁移性能更好的C-C-T-T

  • 根据上面的比较,一个理想的模型应该能够结合上表中的3个理想属性。与Eqn1中深度卷积的形式相似。等式2自我注意可以实现这一点的一个简单的想法是简单地将全局静态卷积核与自适应注意矩阵求和,在Softmax归一化之后或之前,即:

    • y i p o s t = ∑ j ∈ G ( e x p ( x i T x j ) ∑ k ∈ G e x p ( x i T x k ) + w i − j ) x j y i p r e = ∑ j ∈ G ( e x p ( x i T x j ) + w i − j ∑ k ∈ G e x p ( x i T x k ) + w i − j ) x j y_i^{post}=\sum_{j\in G}(\frac{exp(x_i^Tx_j)}{\sum_{k\in\mathcal{G}}exp(x_i^Tx_k)}+w_{i-j})x_j\\ y_i^{pre}=\sum_{j\in G}(\frac{exp(x_i^Tx_j)+w_{i-j}}{\sum_{k\in\mathcal{G}}exp(x_i^Tx_k)+w_{i-j}})x_j yipost=jG(kGexp(xiTxk)exp(xiTxj)+wij)xjyipre=jG(kGexp(xiTxk)+wijexp(xiTxj)+wij)xj

    • 有趣的是,虽然这个想法似乎过于简化,但预标准化版本ypre对应于相对自我注意力的一个特定变体。在这种情况下,注意权重Ai,j是由平移等效方差的wi−j和输入自适应x>i xj共同决定的,根据它们的相对大小,它们可以同时享有这两种效应。重要的是,请注意,为了启用全局卷积核而不增加参数的数量,我们将wi−j的符号重新加载为标量(即w∈RO(|G|)),而不是Eqn(1).中的向量。 w的标量公式的另一个优点是,为所有(i, j)检索wi−j显然包含在计算成对点积注意中,因此导致最小的额外成本(见附录A.1)。考虑到这些好处,我们将在Eqn(3)中使用带有预归一化相对注意变量的Transformer块。作为提出的CoAtNet模型的关键组成部分。

Vertical Layout Design

  • 在找到一种将卷积和注意力结合起来的简洁方法之后,我们接下来考虑如何利用它来堆叠整个网络。

  • 正如我们上面所讨论的,全局上下文的复杂性与空间大小相比是二次的。因此,如果我们直接应用Eqn(3)中的相对注意力。对于原始图像的输入,由于任何普通大小的图像都有大量的像素,计算速度会非常慢。因此,要构建一个在实践中可行的网络,我们主要有三个选择:

    • A,在特征图达到可管理水平后,进行一定的下采样以减小空间大小,并利用全局相对注意力。

    • B,强制局部注意,就像卷积一样,将注意力中的全局接受场G限制在局部场L。

    • C,将二次Softmax注意替换为特定的线性注意变量,该注意变量在空间大小上只具有线性复杂度。

  • 将与输入数据的size呈平方关系的Self-Attention换成线性的Attention,但是Performance不好

  • 加强局部注意力,将全局感知限制为局部感知,但是在TPU上计算非常慢;限制了模型的学习能力。

  • 我们简单地尝试了第三点,但没有得到一个相当好的结果。对于第二点,我们发现实现局部注意涉及许多需要大量内存访问的非平凡形状格式化操作。在我们选择的加速器(TPU)上,这样的操作结果是极其缓慢的,这不仅违背了加速全球关注的初衷,而且也损害了模型的容量。因此,由于最近的一些工作研究了这种变体,我们将重点研究第一点,并将我们的结果与我们的实证研究中的结果进行比较。

  • 对于选项(A),下采样可以通过以下方式实现:

    • (1)像ViT中那样具有积极步幅(例如,步幅16x16)的卷积干

    • (2)像ConvNets中那样具有逐步池化的多级网络。通过这些选择,我们得到了5个变量的搜索空间,并在对照实验中进行了比较。

    • 当使用ViT Stem时,我们直接堆叠相对注意的L transformer块,我们将其表示为VITREL。

    • 当采用多级布局时,我们模拟ConvNets构造5级网络(S0, S1, S2, S3和S4),空间分辨率从S0到S4逐渐降低。在每个阶段的开始,我们总是将空间大小减小2倍,并增加通道数量。

  • 第一阶段S0是一个简单的2层convolutional Stem, S1总是使用MBConv block with squeeze-励磁(SE),因为空间尺寸太大,无法引起全局关注。从S2到S4,我们考虑MBConv块或Transformer块,约束条件是卷积阶段必须出现在Transformer阶段之前。该约束是基于卷积在处理早期阶段更常见的局部模式方面更好的先验。这导致了四种具有越来越多Transformer阶段的变体,C-C-C-C, C-C-C-T, C-C-T-T和C-T-T-T,其中C和T分别表示卷积和Transformer。

  • 为了系统地研究设计选择,我们考虑了泛化能力和模型容量两个基本方面:对于泛化,我们感兴趣的是训练损失和评估精度之间的差距;如果两个模型具有相同的训练损失,则评价精度越高的模型泛化能力越强,因为它能更好地泛化到未见过的评价数据集。在训练数据量有限的情况下,泛化能力对数据效率尤为重要。对于模型容量,我们衡量模型拟合大型训练数据集的能力。当训练数据丰富且不存在过拟合问题时,经过合理的训练步骤,容量越高的模型最终性能越好。请注意,由于简单地增加模型大小可以导致更高的模型容量,为了进行有意义的比较,我们确保5个变量的模型大小具有可比性。

  • 为了比较泛化和模型能力,我们分别在ImageNet-1K (1.3M)和JFT (>300M)数据集上训练不同变体的混合模型300和3个epoch,两者都没有任何正则化或增强。下图总结了两个数据集上的训练损失和评估精度。

    • 在这里插入图片描述

    • 不同数据量下模型泛化能力的比较。为了公平比较,所有模型都具有相似的参数大小和计算成本。

  • 从ImageNet-1K结果中,一个关键的观察是,就泛化能力(即训练和评估指标之间的差距)而言,我们有

    • C − C − C − C ≈ C − C − C − T ≥ C − C − T − T > C − T − T − T ≫ V I T R E L . C-C-C-C ≈ C-C-C-T ≥ C-C-T-T > C-T-T-T \gg VIT_{REL}. CCCCCCCTCCTT>CTTTVITREL.
  • 特别是,VITREL明显比变体差很多,我们推测这与其积极的下采样Stem中缺乏适当的低水平信息处理有关。在多阶段变体中,总体趋势是模型的卷积阶段越多,泛化差距越小。

  • 对于模型容量,通过JFT比较,训练结束时的训练和评价指标的排名如下:

  • C − C − T − T ≈ C − T − T − T > V I T R E L > C − C − C − T > C − C − C − C . C-C-T-T ≈ C-T-T-T > VIT_{REL} > C-C-C-T > C-C-C-C. CCTTCTTT>VITREL>CCCT>CCCC.

  • 重要的是,这表明仅仅拥有更多的Transformer块并不一定意味着更高的视觉处理能力。一方面,虽然最初情况更糟,但VITREL最终赶上了具有更多MBConv阶段的两个变体,这表明Transformer区块的容量优势。另一方面,C-C-T-T和C-T-T-T都明显优于VITREL,这表明具有积极步幅的ViT stem可能丢失了太多信息,从而限制了模型容量。更有趣的是,C-C-T-T≈c - t - t这一事实表明,对于处理低级信息,像卷积这样的静态局部操作可以像自适应全局注意机制一样有能力,同时大大节省了计算量和内存使用。

  • 最后,为了在C-C-T-T和c -t -t之间做出选择,我们进行了另一个可转移性测试——我们在ImageNet-1K上对上述两个JFT预训练模型进行了30个epoch的微调,并比较了它们的转移性能。从下表中可以看出,在训练前表现相同的情况下,C-C-T-T的传输精度明显优于c -t -t。

    • 在这里插入图片描述

    • Transferability test results.

  • 从通用性、模型容量、可移植性和效率等方面考虑,将C-C-T-T多阶段布局应用于CoAtNet。更多的模型细节包含在附录A.1中。

Related Work

  • 卷积网络构建块。卷积网络(ConvNets)已经成为许多计算机视觉任务的主要神经架构。传统上,正则卷积,如ResNet块,在大规模ConvNets中很受欢迎;相比之下,深度卷积由于其较低的计算成本和较小的参数大小在移动平台上很受欢迎。最近的研究表明,基于深度卷积的改进的反向残差瓶颈(MBConv)既能获得较高的精度,又能获得更好的效率。如第2节所述,由于MBConv和Transformer块之间的强连接,本文主要使用MBConv作为卷积构建块。

  • 自我关注和transformer。transformer的关键成分是自我注意,已被广泛应用于神经语言处理和语音理解。独立的自我注意网络作为早期的研究表明,单独的自我注意可以很好地处理不同的视觉任务,尽管存在一些实际困难。最近,ViT将一个vanilla Transformer应用于ImageNet分类,并在大规模JFT数据集上进行预训练后取得了令人印象深刻的结果。然而,在训练数据有限的情况下,ViT在很大程度上仍然落后于最先进的ConvNets。在此之后,最近的许多工作都集中在提高视觉变形金刚的数据效率和模型效率上。为了更全面地回顾视觉transformer,我们建议读者参考专门的综述[A survey on visual transformer,Transformers in vision: A survey]

  • 相对的注意。在相对注意的总称下,文献中有各种变体。一般来说,我们可以将它们分为两类:(a)额外的input-dependent版本相对关注分数是输入状态的函数f (xi, xj,i−j),和(b) input-independent版本f(i−j)。CoAtNet属于input-independent版本的变体,类似于一个用于T5,但与T5,我们既不跨层共享相对注意参数也不使用用桶装的机制。作为输入独立性的一个好处,为所有(i, j)对获得f(i−j)在计算上比TPU上依赖输入的版本便宜得多。此外,在推理时,只需要计算一次并缓存以供将来使用。最近的工作[Swin transformer]也使用了这种与输入无关的参数化,但它将接受字段限制为本地窗口。

  • 结合了卷积和自我注意。将卷积和自我注意结合起来进行视觉识别的想法并不新鲜。一种常见的方法是用显式的自注意或非局部模块来增强ConvNet主干,或者用标准的自注意或更灵活的线性注意和卷积的混合来替换某些卷积层。虽然自我关注通常会提高精度,但它们通常会带来额外的计算成本,因此通常被视为ConvNets的附加组件,类似于挤压-激励模块。相比之下,在ViT和ResNet-ViT成功之后,另一个流行的研究方向是从Transformer骨干网开始,并试图将显式卷积或卷积的一些理想属性合并到Transformer骨干网中.

  • 虽然我们的工作也属于这一类,但我们表明,我们的相对注意力实例化是深度卷积和基于内容的注意力的自然混合,具有最小的额外成本。更重要的是,我们从泛化和模型容量的角度出发,系统地进行了垂直布局设计,展示了不同网络阶段如何以及为什么偏爱不同类型的层。因此,与简单地使用现成的ConvNet作为主干层的模型(如ResNet-ViT)相比,CoAtNet在整体尺寸增加时也会扩展Convolution阶段(S2)。另一方面,相对于使用局部注意力的模型,CoAtNet始终对S3和S4使用全注意力来保证模型容量,因为S3占据了大部分的计算量和参数。

Experiments

  • 在本节中,我们将在可比设置下比较CoAtNet与以前的结果。为了完整起见,这里没有提到的所有超参数都包含在附录A.2中。
Experiment Setting
  • CoAtNet模型系列。为了与不同大小的现有模型进行比较,我们还设计了一系列CoAtNet模型,如下表所示。总的来说,我们总是将S1到S4的通道数量增加一倍,同时确保Stem S0的宽度小于或等于S1的宽度。此外,为了简单起见,在增加网络深度时,我们只缩放S2和S3中的块数量。

  • 在这里插入图片描述

  • L表示块的数量,D表示隐藏维度(#channels)。对于所有的Conv和MBConv块,我们总是使用内核大小为3。对于所有Transformer块,我们将每个注意头的大小设置为32,遵循。反向瓶颈的膨胀率始终为4,而SE的膨胀(收缩)率始终为0.25。

  • 评估协议。我们的实验重点是图像分类。为了评估模型在不同数据大小下的性能,我们使用了三个越来越大的数据集,即ImageNet-1K (1.28M图像),ImageNet-21K (12.7M图像)和JFT (300M图像)。在之前的工作之后,我们首先在三个数据集上分别以分辨率224对300、90和14个epoch预训练我们的模型。然后,我们在ImageNet-1K上对预训练模型进行30个epoch的微调,得到相应的评估精度。一个例外是ImageNet-1K在分辨率为224时的性能,这可以在预训练结束时直接获得。请注意,与使用Transformer块的其他模型类似,直接评估在ImageNet-1K上以更大分辨率预训练的模型,而不进行微调,通常会导致性能下降。因此,只要输入分辨率发生变化,就需要进行微调。

  • 数据增强与正则化。在这项工作中,我们只考虑了两种广泛使用的数据增强,即RandAugment和MixUp,以及三种常用的技术,包括随机深度,标签平滑和权重衰减,来正则化模型。直观地,增强和正则化方法的特定超参数取决于模型大小和数据规模,其中强正则化通常应用于较大的模型和较小的数据集。

  • 在一般原则下,当前范式下的一个复杂问题是如何随着数据大小的变化调整预训练和微调的正则化。具体来说,我们有一个有趣的观察,如果某种类型的增强在预训练期间完全禁用,那么在微调期间简单地打开它很可能会损害性能,而不是提高性能。我们推测这可能与数据分布的变化有关。因此,对于所提模型的某些运行,我们在两个较大的数据集(ImageNet21-K和JFT)上进行预训练时,故意应用RandAugment和小程度的随机深度。尽管这样的正则化可能会损害训练前的指标,但这允许在微调期间进行更通用的正则化和增强,从而提高下游性能

Main Results

  • 仅使用ImageNet-1K数据集的实验结果如表4所示。在类似的条件下,所提出的CoAtNet模型不仅优于ViT变体,而且还匹配最佳的纯卷积架构,即EfficientNet-V2和NFNets。此外,我们还在下图中可视化了分辨率为224x224的所有结果。正如我们所看到的,CoAtNet比以前的带有注意力模块的模型扩展性更好。

    • 在这里插入图片描述

    • 精度到flops缩放曲线在ImageNet-1K仅设置为224x224。

  • 从下表和下图中可以看出,当使用ImageNet-21K进行预训练时,CoAtNet的优势更加明显,大大优于之前的所有模型。值得注意的是,最好的CoAtNet变体实现了88.56%的top-1精度,匹配88.55%的ViTH/14性能,这需要在23倍大的专利弱标记数据集(JFT)上预训练2.3倍大的ViT模型,多2.2倍的步骤。这标志着数据效率和计算效率的显著提高。

    • 在这里插入图片描述

    • 在ImageNet上建模性能。K仅表示仅在ImageNet-1K上进行训练;21K+1K表示在ImageNet-21K上进行预训练,在ImageNet-1K上进行微调;PT-RA表示在21K预训练期间应用RandAugment, E150表示21K预训练的150个epoch,比标准的90个epoch更长。更多结果见附录A.3。

    • 在这里插入图片描述

    • ImageNet-21K在ImageNet-1K设置下的精度到参数缩放曲线。

  • 最后,在下表中,我们使用JFT300M和JFT- 3b进一步评估了大规模数据体制下的CoAtNet。令人鼓舞的是,我们的CoAtNet-4几乎可以与NFNet-F4+设置的JFT-300M的最佳性能相媲美,同时在TPU训练时间和参数计数方面效率提高了2倍。当我们扩大模型以消耗与NFNet-F4+类似的训练资源时,CoAtNet-5在top-1上的准确率达到89.77%,优于之前在类似设置下的结果。

    • 此外,随着我们进一步将训练资源向vitg /14所使用的水平推进,并利用相同的JFT-3B数据集,使用更大的规模,计算量减少了4倍以上,CoAtNet-6能够匹配vitg /14的90.45%的性能,并且计算量减少了1.5倍,CoAtNet-7在top-1上达到89.77%的精度90.88%,实现了新的最先进的性能。

Ablation Studies

  • 在本节中,我们将对比CoAtNet的设计选择。

  • 首先,将卷积和注意力结合到一个计算单元中,研究了相对注意力的重要性。具体来说,我们比较了两个模型,一个有相对注意力,另一个没有,在ImageNet-1K单独和ImageNet-21K传输设置下。从下表可以看出,仅使用ImageNet-1K时,相对注意力明显优于标准注意力,泛化效果更好。此外,在ImageNet-21K传输设置下,相对注意力变体获得了更好的传输精度,尽管它们在训练前表现非常接近。这表明相对注意在视觉加工中的主要优势不在于能力的提高,而在于泛化能力的提高。

  • 在这里插入图片描述

  • Ablation on relative attention.

  • 其次,由于具有MBConv块的S2和具有相对Transformer块的S3占据了CoAtNet的大部分计算量,如何将计算量在S2 (MBConv)和S3 (Transformer)之间分割以获得良好的性能是一个问题。在实践中,它归结为决定每个阶段的块数,我们将其称为“布局”设计。出于这个目的,我们比较了在下表中试验过的几种不同的布局。

  • 如果我们保持S2和S3中的块总数固定,并在每个阶段改变数量,我们观察到V0是V1和V2之间的最佳点。基本上,S3中拥有更多的Transformer块通常会带来更好的性能,直到S2中的MBConv块的数量太小而无法很好地泛化。

  • 为了进一步评估最佳点是否也适用于传输设置,在传输设置中,更高的容量通常被认为更重要,我们进一步比较了ImageNet21K传输到ImageNet-1K设置下的V0和V1。有趣的是,尽管V1和V0在ImageNet-21K预训练中表现相同,但V1的传输精度明显落后于V0。这再次表明了卷积在实现良好的可移植性和泛化方面的重要性

  • 最后,我们研究了模型细节的两种选择,即每个注意力头的维度(默认为32)以及MBConv块中使用的归一化类型(默认为BatchNorm)。从下表中,我们可以看到头大小从32增加到64会略微影响性能,尽管它实际上会显著提高TPU速度。在实践中,这将是一个可以进行的质量-速度权衡。另一方面,BatchNorm和LayerNorm具有几乎相同的性能,而BatchNorm在TPU上要快10 - 20%,这取决于每核批处理的大小。

    • 在这里插入图片描述

    • Ablation on head size and normalization type.

Conclusion

  • 在本文中,我们系统地研究了卷积和transformer的性质,这导致了一种有原则的方法,将它们组合成一个名为CoAtNet的新模型家族。大量的实验表明,CoAtNet既像ConvNets一样具有良好的泛化能力,又像Transformers一样具有卓越的模型容量,在不同的数据大小和计算预算下都能实现最先进的性能。

  • 请注意,本文目前主要关注用于模型开发的ImageNet分类。然而,我们相信我们的方法适用于更广泛的应用,如对象检测和语义分割。我们将把它们留给以后的工作。

A Appendix

A.1Model Details
  • 首先,CoAtNet的概述如下图所示。

    • 在这里插入图片描述

    • Overview of the proposed CoAtNet.

  • 为了在Eqn. 3中实现尺寸为[H×W]的2D图像的预范数版相对注意力,我们为每个头创建一个大小为[(2H−1)×(2W−1)]的可训练参数P,其最大距离分别为2H−1和2W−1。那么,对于两个空间位置(i, j)和(i0, j0),在基于1的索引下,对应的相对偏差为Pi−i0+H,j−j0+W。为了实现,我们需要从[(2H−1)× (2W−1)]矩阵中索引H2W 2元素。在TPU上,我们分别沿高度轴和宽度轴使用两个ein和来索引复杂度为O(HW (H + W))的相对偏差,这严格地包含在O(H2W 2D)注意复杂度中。在gpu上,使用gather可以更有效地完成索引,它只需要内存访问。注意,在推理时,可以预先计算并缓存从[(2H−1)× (2W−1)]矩阵中索引H2W 2元素,以进一步提高吞吐量。

  • 当在更大的分辨率上进行微调时,我们只需使用双线性插值将大小[(2H−1)× (2W−1)]增加到所需的大小[(2H0−1)× (2W 0−1)]对于任何H0 > H和w0 > W。

  • 为了促进模型架构中的同质性,我们一致地对MBConv和Transformer块使用预激活结构,即:

    • x ← x + m o d u l e ( n o r m ( x ) ) x\leftarrow x+module(norm(x)) xx+module(norm(x))

    • 其中Module表示MBConv, Self-Attention或FFN模块,Norm对应MBConv的BatchNorm和Self-Attention和FFN的LayerNorm。我们已经尝试在MBConv块中使用LayerNorm,它实现了相同的性能,但在我们的加速器(TPU)上显着较慢。一般来说,我们建议你的设备上使用速度更快的。遵循同样的思想,高斯误差线性单元(GELUs)被用作MBConv块和Transformer块中的激活函数。

  • 对于S1到S4每个阶段内的第一个块,分别对残差分支和身份分支进行独立的下采样。具体来说,对于Transformer块,stride 2的标准最大池化直接应用于自注意模块的两个分支的输入状态,类似于Funnel Transformer。此外,对身份分支应用信道投影来放大隐藏大小。因此,下采样自注意模块可以表示为

    • x ← P r o j e c t ( P o o l ( x ) ) + a t t e n t i o n ( P o o l ( N o r m ( x ) ) ) x\leftarrow Project(Pool(x))+attention(Pool(Norm(x))) xProject(Pool(x))+attention(Pool(Norm(x)))

    • 对于MBConv块,残差分支中的下采样是通过对归一化输入进行stride-2卷积来实现的,即:

    • x ← P r o j e c t ( P o o l ( x ) ) + C o n v ( D e p t h C o n v ( C o n v ( N o r m ( x ) , s t r i d e = 2 ) ) ) x\leftarrow Project(Pool(x))+Conv(DepthConv(Conv(Norm(x),stride=2))) xProject(Pool(x))+Conv(DepthConv(Conv(Norm(x),stride=2)))

  • 这与标准MBConv不同,标准MBConv通过对反向瓶颈隐藏状态应用stride2深度卷积来完成下采样。我们后来发现使用stride-2深度卷积是有帮助的,但在模型较小时速度较慢,而在模型缩放时则没有那么快,如下表所示。因此,如果没有特别提到,在正文中报告的数字使用了Eqn(5)中的下采样实现。在实践中,这可能是另一个质量-速度的权衡,可以调整为较小的模型。

  • 与在ViT中添加一个额外的令牌来执行分类不同,我们将全局平均池应用于最后阶段的输出以获得简单的表示。

A.2Hyper-Parameters
  • 下表总结了第4节中主要实验所使用的超参数。JFT实验中使用的CoAtNet-5模型尺寸如表11所示。与下表中的标准CoAtNet模型不同,我们将每个注意头的大小设置为64,而不是CoAtNet-5的32,因为这可以实现更好的速度-性能权衡。

    • 在这里插入图片描述

    • 主要实验中使用的超参数。斜杠“/”用于分隔用于各种CoAtNet模型大小的不同超参数。?:为了微调略大的CoAtNet-3, RandAugment的2,20被使用。†:RandAugment of 2,5应用于后文表中CoAtNet-4的PT-RA变体。

  • 对于CoAtNet-6和CoAtNet-7,为了减少内存消耗,我们将S2的2/3 MBConv块移动到S3中,并将其隐藏维度翻倍。虽然这一修改并没有改变flop方面的复杂性,但这将使这些MBConv块的激活相关内存使用减少一半,这使我们能够构建一个更大的模型。通过这种调整,S3变成了混合块类型和隐藏维度的阶段。此外,我们将注意力头的大小进一步增加到128,以促进速度-性能的权衡。具体尺寸如下表所示。基本上,CoAtNet-6和CoAtNet-7的深度相同,但宽度不同。

    • 在这里插入图片描述

    • Model sizes for the scaled models.

A.3Complete Comparison
  • 仅在ImageNet-1K设置下完成比较。

    • 在这里插入图片描述
  • 在ImageNet-21K预训练+ ImageNet-1K调优设置下完成比较。“PT-RA”表示在21K预训练期间应用RandAugment,“E150”表示预训练150次,比标准的90次要长。

    • 在这里插入图片描述
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Building RESTful Web Services with Spring 5 – Second Edition: Leverage the power of Spring 5.0, Java SE 9, and Spring Boot 2.0 Find out how to implement the REST architecture to build resilient software in Java with the help of the Spring 5.0 framework. REST is an architectural style that tackles the challenges of building scalable web services. In today’s connected world, APIs have taken a central role on the web. APIs provide the fabric through which systems interact, and REST has become synonymous with APIs.The depth, breadth, and ease of use of Spring makes it one of the most attractive frameworks in the Java ecosystem. Marrying the two technologies is therefore a very natural choice.This book takes you through the design of RESTful web services and leverages the Spring Framework to implement these services. Starting from the basics of the philosophy behind REST, you’ll go through the steps of designing and implementing an enterprise-grade RESTful web service. Taking a practical approach, each chapter provides code samples that you can apply to your own circumstances.This second edition brings forth the power of the latest Spring 5.0 release, working with MVC built-in as well as the front end framework. It then goes beyond the use of Spring to explores approaches to tackle resilience, security, and scalability concerns. Improve performance of your applications with the new HTTP 2.0 standards. You’ll learn techniques to deal with security in Spring and discover how to implement unit and integration test strategies.Finally, the book ends by walking you through building a Java client for your RESTful web service, along with some scaling techniques using the new Spring Reactive libraries. What You Will Learn Deep dive into the principles behind REST Expose CRUD operations through RESTful endpoints with the Spring Framework Devise response formats and error handling strategies, offering a consistent and flexible structure to simplify integration for service consumers Follow the best approaches for dealing with a service’s evolution while maintaining backward compatibility Understand techniques to secure web services Comply with the best ways to test RESTful web services, including tips for load testing Optimise and scale web services using techniques such as caching and clustering

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羞儿

写作是兴趣,打赏看心情

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值