CoAtNet:将卷积和注意力结合到所有数据大小上

Posted AI浩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CoAtNet:将卷积和注意力结合到所有数据大小上相关的知识,希望对你有一定的参考价值。

CoAtNet:将卷积和注意力结合到所有数据大小上

注:Transformers 翻译为变形金刚,这个名字太酷了!

摘要

变形金刚在计算机视觉领域吸引了越来越多的兴趣,但它们仍然落后于最先进的卷积网络。在这项工作中,我们表明,虽然变形金刚往往具有更大的模型容量,但由于缺乏正确的归纳偏置,其泛化能力可能比卷积网络差。为了有效地结合两种体系结构的优势,我们提出了CoAtNets,这是一个基于两个关键观点构建的混合模型家族:

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

(2) 以一种有原则的方式垂直堆叠卷积层和注意层在提高泛化、容量和效率方面出人意料地有效。

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

1 介绍

自从AlexNet[1]取得突破以来,卷积神经网络(ConvNet)一直是计算机视觉的主要模型结构。与此同时,随着自然语言处理领域中变形金刚[6]等自我注意模型的成功,许多以前的工作试图将注意力的力量引入计算机视觉。最近,Vision Transformer(ViT)表明,几乎只有香草变形金刚层,仅在ImageNet-1K[14]上就可以获得合理的性能。更重要的是,当对大规模弱标记JFT-300M数据集进行预训练时,ViT获得了与最先进的(SOTA)CONVnet相当的结果,表明变形金刚模型在规模上可能比CONVnet具有更高的容量。[1]

虽然ViT通过大量JFT 300M训练图像显示了令人印象深刻的效果,但在低数据区,其性能仍落后于CONVNET。例如,在没有额外的JFT-300M预训练的情况下,ViT的ImageNet精度仍然显著低于具有可比模型尺寸的CONVNET[5](见表13)。随后的工作使用特殊的正则化和更强的数据增强来改进普通ViT[16,17,18],但在相同的数据量和计算量下,这些ViT变体在ImageNet分类上都无法超过SOTA卷积模型[19,20]。这表明,普通变形金刚层可能缺少CONVNET所具有的某些理想电感偏置,因此需要大量数据和计算资源进行补偿。毫不奇怪,最近的许多工作一直试图将convnet的感应偏压纳入变形金刚模型,为注意层施加局部感受野[21,22],或用隐式或显式卷积运算增加注意层和FFN层[23,24,25]。然而,这些方法要么是临时的,要么集中于注入特定的属性,缺乏对卷积和注意力在组合时各自作用的系统理解。

在这项工作中,我们从机器学习的两个基本方面——泛化和模型容量——系统地研究了卷积和注意的混合问题。我们的研究表明,由于卷积层具有较强的归纳偏差先验知识,卷积层具有更好的泛化能力和更快的收敛速度,而注意层具有更高的模型容量,可以从更大的数据集中获益。卷积层和注意层相结合可以获得更好的泛化能力和容量;然而,这里的一个关键挑战是如何有效地将它们结合起来,以便在准确性和效率之间实现更好的权衡。在本文中,我们研究了两个关键的观点:首先,我们观察到常用的深度卷积可以有效地合并到具有简单相对注意的注意层中;第二,简单地以适当的方式叠加卷积层和注意层,对于实现更好的泛化和容量可能会非常有效。基于这些见解,我们提出了一种简单而有效的网络体系结构CoAtNet,它兼有ConvNet和Transformer的优点。

我们的CoAtNet在不同数据大小的可比资源限制下实现SOTA性能。具体来说,在低数据条件下,由于有利的归纳偏差,CoAtNet继承了ConvNet的强大泛化特性。此外,由于数据丰富,CoAtNet不仅具有变形金刚模型优越的可扩展性,而且实现了更快的收敛,从而提高了效率。当仅使用ImageNet-1K进行训练时,CoAtNet达到86.0%的top-1精度,在类似计算资源和训练条件下与现有技术NFNet[20]匹配。此外,当在ImageNet-21K上预训练约10万张图像时,CoAtNet在ImageNet-1K上微调时达到88.56%的top-1精度,与在JFT-300M上预训练的ViT(一个23×更大的数据集)匹配。最后,当使用JFT-3B进行预训练时,与ViT相比,CoAtNet表现出更好的效率,并将ImageNet-1K top-1精度提高到90.88%,同时使用ViT-G/14设置的现有技术的1.5倍计算量[26]。

2 模型

在本节中,我们将重点讨论如何“最佳”组合卷积和变形金刚的问题。大致来说,我们将问题分解为两部分:

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

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

随着我们逐渐揭示我们的设计选择,分解的原理将变得更加清晰。

2.1融合卷积和自我注意

对于卷积,我们主要关注MBConv块[27],它采用深度卷积[28]来捕获空间交互。选择此选项的一个关键原因是,Transformer和MBConv中的FFN模块均采用“反向瓶颈”设计,该设计首先将输入的通道大小扩展4倍,然后将4倍宽的隐藏状态投影回原始通道大小,以实现剩余连接。

除了倒转瓶颈的相似性外,我们还注意到深度卷积和自我注意都可以表示为预定义感受野中每维值的加权和。具体地说,卷积依赖于一个固定的内核从一个局部感受野收集信息
y i = ∑ j ∈ C ( i ) w i − j ⊙ x j  (depthwise convolution)  y_i=\\sum_j \\in C(i) w_i-j \\odot x_j \\quad \\text (depthwise convolution) yi=jC(i)wijxj (depthwise convolution) 
其中 x i , y i ∈ R D x_i, y_i \\in \\mathbbR^D xi,yiRD分别是位置 i 的输入和输出, L ( i ) \\mathcalL(i) L(i) 表示 i 的局部邻域,例如图像处理中以 i 为中心的 3x3 网格。

相比之下,自我注意允许感受野成为整个空间位置,并基于对之间的重新标准化成对相似性计算权重(xi,xj):
y i = ∑ j ∈ G exp ⁡ ( x i ⊤ x j ) ∑ k ∈ G exp ⁡ ( x i ⊤ x k ) ⏟ A i j x j y_i=\\sum_j \\in \\mathcalG \\underbrace\\frac\\exp \\left(x_i^\\top x_j\\right)\\sum_k \\in \\mathcalG \\exp \\left(x_i^\\top x_k\\right)_A_i j x_j yi=jGAij kGexp(xixk)exp(xixj)xj

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

•首先,depthwise 卷积核 w i − j w_i-j wij是一个与输入无关的静态值参数,而注意力权重 A i , j A_i,j Ai,j动态地取决于输入的表示。 因此,自注意力更容易捕捉不同空间位置之间复杂的关系交互,这是我们在处理高级概念时最想要的特性。 然而,灵活性伴随着更容易过度拟合的风险,尤其是在数据有限的情况下。

•其次,注意给定任意位置对(i; j),对应的卷积权重 w i , j w_i,j wi,j只关心它们之间的相对位移,即 i − j i-j ij,而不关心i或j的具体值。 这个属性通常被称为翻译等效性,已经发现它可以提高有限大小数据集下的泛化能力 [29]。 由于使用绝对位置嵌入,标准 Transformer (ViT) 缺少此属性。 这部分解释了为什么当数据集不是很大时,ConvNets 通常比 Transformers 更好。

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

鉴于上述比较,一个理想的模型应该能够将三个理想特性结合在一起

表1。与方程n中的深度卷积形式类似。(1) 和Eqn中的自我关注。(2) ,可以实现这一点的简单想法是,在Softmax归一化之后或之前,简单地将全局静态卷积核与自适应注意矩阵相加,即。
y i pos  = ∑ j ∈ G ( exp ⁡ ( x i ⊤ x j ) ∑ k ∈ G exp ⁡ ( x i ⊤ x k ) + w i − j ) x j  or  y i pre  = ∑ j ∈ G exp ⁡ ( x i ⊤ x j + w i − j ) ∑ k ∈ G exp ⁡ ( x i ⊤ x k + w i − k ) x j . y_i^\\text pos =\\sum_j \\in \\mathcalG\\left(\\frac\\exp \\left(x_i^\\top x_j\\right)\\sum_k \\in \\mathcalG \\exp \\left(x_i^\\top x_k\\right)+w_i-j\\right) x_j \\text or y_i^\\text pre =\\sum_j \\in \\mathcalG \\frac\\exp \\left(x_i^\\top x_j+w_i-j\\right)\\sum_k \\in \\mathcalG \\exp \\left(x_i^\\top x_k+w_i-k\\right) x_j . yipos =jG(kGexp(xixk)exp(xixj)+wij)xj or yipre =jGkGexp(xixk+wik)exp(xixj+wij)xj.
有趣的是,虽然这个想法似乎过于简化,但预训练版本 y p r e y^pre ypre 对应于相对自我注意的特定变体 [30, 31]。 在这种情况下,注意力权重 A i , j A_i,j Ai,j由平移等方差的 w i , j w_i,j wi,j和输入自适应 x i ⊤ x j x_i^\\top x_j xixCoatnet网络code

注意力机制 | CNN-BiLSTM-Attention基于卷积-双向长短期记忆网络结合注意力机制多输入单输出回归预测(Matlab程序)

CoAtNet实战:使用CoAtNet对植物幼苗进行分类(pytorch)

知识蒸馏NST算法实战:使用CoatNet蒸馏ResNet18

知识蒸馏NST算法实战:使用CoatNet蒸馏ResNet18

知识蒸馏实战:使用CoatNet蒸馏ResNet