CNN卷土重来!超越Transformer!FAIR重新设计纯卷积架构:ConvNeXt

Posted CVer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CNN卷土重来!超越Transformer!FAIR重新设计纯卷积架构:ConvNeXt相关的知识,希望对你有一定的参考价值。

NLP与视觉架构的一个差异体现在激活函数的实用。ConvNet大多采用ReLU,而ViT大多采用GELU。我们发现:ConvNet中的ReLU可以替换为GELU,同时性能不变(80.6%)。

Fewer Activation Functions. Transformer与ResNet模块的一个小区别:Transformer模块使用了更少的激活函数。类似的,我们对ConvNeXt模块进行下图所示的改进,模型性能从80.6%提升到了81.3%(此时,它具有与Swin-T相当的性能)。

Fewer Normalization Layers Transformer通常具有更少的Normalization层,因此我们移除两个BN层仅保留 卷积之前的一个BN模型的性能提升到了81.4%,超越了Swin-T。

Substituting BN with LN 尽管BN是ConvNet的重要成分,具有加速收敛降低过拟合的作用;但BN对模型性能也存在有害影响。Transformer中的LN对不同的应用场景均具有比较好的性能。直接在原始ResNet中将BN替换为LN会导致性能下降,而组合了上述技术后再将BN替换为LN则能带来性能的提升:81.5%

Separate Downsamling Layers 在ResNet中,每个阶段先采用stride=2的卷积进行下采样;而SwinTransformer则采用了分离式下采样层。我们探索了类似的策略:采用stride=2的卷积进行下采样,但这种方式导致了“不收敛”。进一步研究表明:在下采样处添加Normalization层有助于稳定训练。此时,模型的性能提升到了82.0%,大幅超越了Swin-T的81.3%。

Closing remarks. 到此为止,我们完成了ConvNet的进化之路,得到了超越SwinTransformer的纯ConvNet架构ConvNeXt。需要注意的是,上述设计并没有新颖之处,均得到了研究,但并未进行汇总集成。ConvNeXt具有与SwinTransformer相当的参数量、吞吐量、内存占用,更高的性能,且不需要依赖特定的模块(比如移位窗口注意力、相对位置偏置)

Exmpirical Evaluations on ImageNet

基于前述ConvNeXt架构,我们构建了ConvNeXt-T/S/B/L以对标Swin-T/S/B/L。此外,我们还构建了一个更大的ConvNeXt-XL以进一步测试ConvNeXt的缩放性。不同变种模型的区别在于通道数、模块数,详细信息如下:

  • ConvNeXt-T: C=,B=
  • ConvNeXt-S: C=,B=
  • ConvNeXt-B: C=,B=
  • ConvNeXt-L: C=,B=
  • ConvNeXt-XL: C=参考技术A ©作者 | 小欣

    CNN广泛应用于计算机视觉的各种任务中,比如分类,检测,分割,CNN通过共享卷积核提取特征,减少网络参数数量,提高模型效率,另一方面CNN具有平移不变性,即无论特征被移动到图像的哪个位置,网络都能检测到这些特征。

    尽管CNN存在很多优势,但是其感受野通常很小,不利于捕获全局特征。

    视觉Transformer由于能够捕获一张图片的全局信息,因此在许多视觉任务中超越许多CNN结构。

    ViT是第一个替代CNN,使用纯Transformer的结构,输入一张224×224×3的图片,ViT将其分成14×14=196个非重叠的patches,每个patch的大小是16×16×3,然后将这些patch输入到堆叠的多个transformer编码器中。

    CNN的成功依赖于其两个固有的归纳偏置,即平移不变性和局部相关性,而视觉Transformer结构通常缺少这种特性,导致通常需要大量数据才能超越CNN的表现,CNN在小数据集上的表现通常比纯Transformer结构要好。

    CNN感受野有限导致很难捕获全局信息,而Transformer可以捕获长距离依赖关系,因此ViT出现之后有许多工作尝试将CNN和Transformer结合,使得网络结构能够继承CNN和Transformer的优点,并且最大程度保留全局和局部特征。

    Transformer是一种基于注意力的编码器-解码器结构,最初应用于自然语言处理领域,一些研究最近尝试将Transformer应用到计算机视觉领域。

    在Transformer应用到视觉之前,卷积神经网络是主要研究内容。受到自注意力在NLP领域的影响,一些基于CNN的结构尝试通过加入自注意力层捕获长距离依赖关系,也有另外一些工作直接尝试用自注意力模块替代卷积,但是纯注意力模块结构仍然没有最先进的CNN结构表现好。

    Transformer中有两个主要部分,多头自注意力层和全连接层,最近,Cordonnier et al.在研究中表明卷积可以通过使用多头自注意力层达到同样的效果。

    Transformer 理论上比CNN能得到更好的模型表现,但是因为计算全局注意力导致巨大的计算损失,特别是在浅层网络中,特征图越大,计算复杂度越高,因此一些方法提出将Transformer插入到CNN主干网络中,或者使用一个Transformer模块替代某一个卷积模块。

    BoTNet.[1] 通过使用Multi-Head Self-Attention(MHSA)替代ResNet Bottleneck中的3×3卷积,其他没有任何改变,形成新的网络结构,称为Bottleneck Transformer,相比于ResNet等网络提高了在分类,目标检测等任务中的表现,在ImageNet分类任务中达到84.7%的准确率,并且比EfficientNet快1.64倍。

    BoTNet中使用的MHSA和Transformer中的MHSA有一定的区别,首先,BoTNet中使用Batch Normalization,而Transformer中使用Layer Normalization,其次,Transformer中使用一个在全连接层中使用一个非线性激活,BoT(Bottleneck Transformer)模块中使用三个非线性激活,最后Transformer中的MHSA模块包含一个输出映射,而BoT中的MHSA没有。

    CNN有局部性和平移不变性,局部性关注特征图中相邻的点,平移不变性就是对于不同区域使用相同的匹配规则,虽然CNN的归纳偏差使得网络在少量数据上表现较好,但是这也限制了在充分数据上的表现,因此有一些工作尝试将CNN的归纳偏差引入Transformer加速网络收敛。

    DeiT.[2] 为了减小ViT对于大量数据的依赖,Touvron et al.提出了Data-efficient image Transformer(Deit),提高网络在小量数据上的表现,通过使用数据增强和正则化技术,与此同时还引入了蒸馏策略,即使用一个教师网络去指导学生网络,通常来说使用CNN要比Transformer作为教师模型效果要好,CNN模型可以将其归纳偏置引入到Transformer。

    作者使用两种蒸馏方式,一种是硬蒸馏,一种是软蒸馏 ,软蒸馏通过计算学生模型和教师模型分别经过softmax之后的KL散度,硬蒸馏通过使用教师模型的预测作为真实标签。

    DeiT中引入了一个新的distillation token,和class token的作用类似,和其他token之间通过自注意力交互,作者发现class token和distillation token会收敛于不同的向量,余弦距离为0.06,说明这两个token希望得到相似但不相同的目标,为了证明distillation token的有效性是由于知识蒸馏的作用,通过对比实验将distillation token换成class token,就是使用两个class token,最终效果不如加入distillation token。

    对比卷积神经网络和Transformer在Imagenet上的分类表现:

    ConViT.[3] 通过引入gated positional self-attention(GPSA)层模仿卷积层带来的局部性,将GPSA替代一部分 self-attention层,然后每一个注意力头通过调整可学习的门控参数来调整对于位置信息和上下文信息的关注程度。GPSA层的输出可以表示为:

    其中,

    是一个可学习的向量去模仿卷积,

    是一个固定的相对位置编码,

    是一个可学习门控参数去调整对上下文和位置信息的关注程度。

    Cordonnier et al.[4] 在论文中证明多头自注意机制可通过调整头的数量和可学习的位置编码来近似达到卷积层的效果。

    对比ConViT和DeiT在Imagenet-1k上的表现,以及不同大小训练集对结果的影响

    CeiT.[5] 改变了patch到token的方式,先将图片通过卷积和最大池化再切分成patch,最开始对图片使用卷积操作可以捕获图片的低级特征,即I2

    并且使用了Layer-wise class token Attention(LCA)去结合多层特征,提出了Locally-Enhanced Feed-Forward Netword(LeFF),将最开始的全连接层(Feed-forward network)替换成了LeFF层,MSA(Multi-head self-attention)层保持不变,用于捕获全局信息,LeFF层用于捕获局部信息,最终的效果要比DeiT好。

    Early Conv.[6] Xiao et al.通过使用多个步长为2的3×3卷积核替代ViT中最初的stem(步长为16的16×16卷积),使得网络在ImageNet-1k上取得1-2%的提高,并且稳定性和泛化能力在下游任务中都有所提高,对于学习率的选择和优化器的选择没有那么敏感,并且收敛速度也更快。

    这篇文章表面在ViT模型中使用一个小的卷积核相比于最初的ViT使得模型有更好的泛化能力。

    CoAtNet.[7] Dai et al. 提出a Convolution and Attention NetWord(CoAtNet),通过引入深度卷积到注意力模块中,深度卷积中一个卷积核负责一个通道,一个通道只被一个卷积核计算,相比于正常卷积,其参数和运算成本相对比较低,在浅层网络中堆叠卷积层,比较了不同的堆叠方式,比如C-C-C-T,C-T-T-T,C-C-C-T,其中C代表卷积模块,T代表Transformer模块。

    通过综合考虑模型泛化能力,迁移能力,模型在训练集上的表现,最后使用C-C-T-T 这种堆叠方式。在没有额外训练数据的情况下,CoAtNet达到了86%的准确率,在ImageNet-21K上预训练时,达到了88.56%的准确率。

    参考文献

    [1] A. Srinivas, T.-Y. Lin, N. Parmar, J. Shlens, P. Abbeel, and A. Vaswani, “Bottleneck transformers for visual recognition.” in Proc. CVPR, 2021.

    [2] H. Touvron, M. Cord, D. Matthijs, F. Massa, A. Sablayrolles, and H. Jegou, “Training data-effificient image transformers & distillation through attention,” in Proc. ICLR, 2021.

    [3] S. d’Ascoli, H. Touvron, M. Leavitt, A. Morcos, G. Biroli, and L. Sa gun, “Convit: Improving vision transformers with soft convolutional inductive biases,” in Proc. ICLR, 2021.

    [4] Cordonnier, J.-B., Loukas, A., and Jaggi, M. On the relationship between self-attention and convolutional layers. arXiv preprint arXiv:1911.03584, 2019.

    [5] K. Yuan, S. Guo, Z. Liu, A. Zhou, F. Yu, and W. Wu, “Incorporating convolution designs into visual transformers,” in Proc. ICCV, 2021.

    [6] T. Xiao, M. Singh, E. Mintun, T. Darrell, P. Dollar, and R. B. Girshick, “Early convolutions help transformers see better,” ArXiv, vol. abs/2106.14881, 2021.

    [7] Z. Dai, H. Liu, Q. V. Le, and M. Tan, “Coatnet: Marrying convolution and attention for all data sizes,” arXiv preprint arXiv:2106.04803, 2021.

    私信我领取 目标检测与R-CNN/数据分析的应用/电商数据分析/数据分析在医疗领域的应用/NLP学员项目展示/中文NLP的介绍与实际应用/NLP系列直播课/NLP前沿模型训练营等 干货学习资源。

    以上是关于CNN卷土重来!超越Transformer!FAIR重新设计纯卷积架构:ConvNeXt的主要内容,如果未能解决你的问题,请参考以下文章

    CNN和Transformer相结合的模型

    Transformer模仿大脑,在预测大脑成像上超越42个模型,还能够模拟感官与大脑之间的传输...

    视觉Transformer中的输入可视化方法

    当可变形注意力机制引入Vision Transformer

    三大特征提取器(RNN/CNN/Transformer)

    Swin Transformer对CNN的降维打击