卷积嵌入使分层视觉 Transformer 更强大

原文:《Convolutional Embedding Makes Hierarchical Vision Transformer Stronger》

摘要

视觉变换器(ViT)最近在一系列计算机视觉任务中占据主导地位,但在没有适当归纳偏差的情况下,它存在训练数据效率低和局部语义表示能力差的问题。卷积神经网络 (CNN) 本质上捕获区域感知语义,这启发了研究人员将 CNN 重新引入 ViT 架构中,为 ViT 提供理想的归纳偏差。然而,嵌入 ViT 中的微观 CNN 所实现的局部性是否足够好?本文中,我们通过深入探索混合 CNN/ViT 的宏观架构如何提升分层 ViT 的性能,来研究这个问题。特别的,我们研究了令牌嵌入层,别名卷积嵌入(CE)的作用,并系统地揭示了 CE 如何在 ViT 中注入理想的归纳偏差。 此外,我们将最优的 CE 配置应用于最近发布的 4 个最先进的 ViT,有效提升了相应的性能。最后,发布了一系列高效的混合 CNN/ViT(称为 CETNet),它们可以作为通用视觉主干。具体来说,CETNets 在 ImageNet-1K 上实现了84.9%的 Top-1准确率(从头开始训练),在 COCO 基准上实现了48.6%的box mAP,在ADE20K上实现了51.6%的mIoU,大大提高了相应最先进基线的性能。

主要思路

ViT 依靠高度灵活的多头自注意力层来优化动态注意力、捕获全局语义并实现良好的泛化能力。然而,最近的研究发现,由于缺乏适当的归纳偏差和局部性,ViT 的可优化性不合格 [59]、训练样本效率低 [15],并且难以对图像中的复杂视觉特征和局部关系进行建模 [38,58] 。大多数现有的工作试图通过两种路径将局部机制引入到 ViT 中。其中一项工作通过非卷积方式缓解归纳偏差问题。liu 等人 [35,18,52] 将注意力计算限制在局部窗口中,使得注意力层具有局部感受野,使得整个网络仍然保持近乎纯粹的基于注意力的架构。同时,由于 CNN 固有的滑动窗口方式、局部感受野和归纳偏差 [2],本质上是更高效的,因此另一项工作直接将 CNN 集成到 ViT 设计中,以硬 [58,33,64] 或软 [15,51] 的方式将卷积归纳偏差引入到 ViT 中。然而,大多数这些工作都集中在修改 ViT 的微观设计以实现局部性,这就引发了一个问题: 通过 ViT 的微观设计获得的归纳偏差是否足够强大,足以为 ViT 赋予局部性? 或者网络的宏观架构设计能否进一步向 ViT 引入理想的归纳偏差? 我们根据以下发现提出上述问题。之前的工作 EarlyConv [59] 指出,简单地用 5 层卷积干替换原始 patchify 干可以在 ImageNet1K 上产生 1-2% 的 top-1 准确率,并提高 ViT 的训练稳定性。随后,CoAtNet [14] 根据观察进一步探索了 CNN 和 ViT 的混合设计:深度卷积可以自然地集成到注意力块中。同时,这些工作表明,卷积层可以有效地在整个网络的浅层引入归纳偏差。然而,当我们回顾现代 CNN 的发展路线图时,在2012年底,AlexNet [32]展示了 CNN 的潜力之后,后续的研究,例如 VGG [44],ResNet [25],DenseNet [30],EfficientNet [49,50],ConvNet2020 [36] 等等,揭示了:即使在网络的深层,卷积也可以有效且高效地表示复杂的视觉特征。我们的研究探索了混合 CNN/ViT 的宏观网络设计。我们希望弥合纯 CNN 网络和纯 ViT 网络之间的差距,并扩展混合 CNN/ViT 网络的局限性。 为了检验这个假设,我们从 CNN 的有效感受野(ERF)开始。正如 Luo 等人的先前工作 [37] 指出的,CNN 的输出在很大程度上取决于它们的ERF。有了更大的 ERF,CNN 就不会遗漏任何重要信息,从而获得更好的预测结果或视觉特征。有了更大的感受野(ERF),CNN 就不会遗漏任何重要信息,从而获得更好的预测结果或视觉特征。在此视角下,我们的探索是通过网络架构的宏观设计,对注意力层施加强大且有效的归纳偏差。我们特别关注分层 ViT 架构的补丁嵌入,别名卷积嵌入(CE)。我们在每个阶段的开始都设置了卷积嵌入(CE),如图2所示。 CE 的目的是调整维度和令牌数量。大多数后续的工作也应用了一个或两个卷积嵌入层 [58,18,67,55,33]。然而,这些嵌入层无法提供足够的 ERF 来捕获具有理想归纳偏差的复杂视觉表示。由于堆叠更多的卷积层可以增加 ERF [37],我们构建了一个仅具有 1 层 CE 的简单基线,并逐渐增加 CE 中的卷积层数量以获得更多变体。同时,保持尽可能小的浮点运算 FLOPs 和参数数量变化。我们观察到,每个阶段 CE 的微小变化都会导致最终模型的性能显着提高。 基于大量实验,我们进一步了解 CE 如何通过注入所需的归纳偏差来影响 CNN/ViT 的混合网络设计。我们做出了一些观察。1) CNN 即使在网络的深层也能带来很强的归纳偏差,使得整个网络更容易训练,更容易捕获更复杂的视觉特征。同时,ViT 让整个网络拥有更高的泛化上限。2)CE可以施加有效的归纳偏差,但不同的卷积层表现出不同的有效性。此外,大的 ERF 对于设计 CE 或向 ViT 注入所需的归纳偏差至关重要,即使它是纯 CNN 网络中的传统设计 [50,37]。3) CNN 甚至可以帮助 ViT 在深度网络中看得更清楚,为指导如何设计混合 CNN/ViT 网络提供有价值的见解。4) 将宏观和微观相结合引入归纳偏差有利于获得基于 ViT 的网络的更高泛化上限。 我们的结果证明了卷积嵌入(CE)和深度混合 CNN/ViT 设计对于视觉任务的重要性。ViT 是 CNN 的通用版本 [10],大量的工作已经证明了基于 ViT 的网络的高度泛化性,这激励研究人员纯注意力网络的性能上限。在发现归纳偏差对于显着提高 ViT 的训练速度和样本效率至关重要之后,人们的努力主要致力于创建 ViT 的微观设计以增强它 [35,15]。同时,EarlyConv [59] 和 CoAtNet [14] 验证了基于 ViT 的网络浅层卷积的效率。我们的研究进一步突破了混合 CNN/ViT 网络宏观设计的界限。我们的结果还表明,即使在 ViTs 网络的深层,正确选择 CNN/ViTs 设计的组合,也可以进一步改善整个网络的上限性能限制。最后,我们提出了一系列混合 CNN/ViT 模型作为通用视觉主干。 总而言之,我们希望本文中提出的发现和讨论能够为社区提供可能的见解,并鼓励人们重新思考 CE 在混合 CNN/ViT 网络设计中的价值。

相关工作

CNN 擅长捕捉局部特征,具有平移、尺度、畸变不变性等优点,而 Transformer 则具有动态注意力、全局感受野、模型容量大的特性。结合卷积层和 Transformer 层可以实现更好的模型泛化和效率。许多研究人员正在尝试将 CNN 和 Transformer 结合起来。一些方法 [56,3,28,57,45,43] 尝试用自注意力模块增强 CNN 主干,或者用 Transformer 层替换部分卷积块。相比之下,受到 ViT [19] 成功的启发,最近的实验尝试利用一些适当的卷积属性来增强 Transformer 主干。 ConViT [15] 引入并行卷积分支将卷积归纳偏差强加到 ViT [19] 中。Localvit [33] 在前馈网络(FFN)组件中添加了深度卷积来提取局部性,CvT [58] 采用卷积投影来计算自注意力矩阵,以实现局部空间上下文的附加建模。除了“内部”融合之外,一些方法 [14,59] 侧重于 Transformer 和 CNN 的结构组合。

混合 CNN/ViT 网络设计

一般的分层 ViTs 模型架构如图 2 所示。将卷积干应用于输入图像以提取低级特征,然后通常经过四个阶段来逐渐提取不同尺度的深度表示。 每个阶段由一个卷积嵌入(CE)块和一组 ViT 块组成。更具体地说,CE 块位于每个阶段的开始,旨在调整维度、改变数量并降低输入令牌的分辨率。对于两个相邻的阶段,缩减因子设置为 2。之后,这些令牌将被馈送到以下 ViT 块以生成全局上下文。综上所述,所提出的网络包含五个阶段(S0、S1、S2、S3、S4),其中 S0 是卷积干。 原始的分层 ViT 架构 [35] 遵循 CNN 网络 VGG [44] 的传统设计,目标是使令牌能够在越来越大的空间足迹上表示越来越复杂的视觉模式。我们的目标是为分层架构的 ViT 块施加理想的归纳偏差。因此,我们的探索针对纯 CNN 结构的两条路径:宏观设计和微观设计。

宏观设计

卷积 stem 在基于 ViT 的网络设计中,Stem 关注的是为后续全局注意力模块提取正确的归纳偏差。在早期阶段保持足够的感受野(ERF)以提取丰富的视觉特征是必要的 [59]。考虑到参数数量和 FLOPs 预算,以及我们注意到 S0 可以与 S1 的 CE 合并,我们的 Stem 最终由 4 个 Fused-MBConvs [21] 层和 1 个常规卷积层组成。具体来说,S0 包含 2 个 Fused-MBConv,步长分别为 2 和 1。S1 的 CE 与 S0 的 CE 构成相同,在最后跟随一个 1×1 卷积以匹配通道,并通过层归一化进行归一化 [1]。我们选择 Fused-MBConv 来组成 Stem 的另一个原因是 EfficientNetV2 [50] 表明 Fused-MBConv 在实现更好的泛化能力和容量方面非常有效,并且使训练收敛速度更快 [59]。此外,与 EfficientNetV2 一样,Fused-MBConv 和 MBConv [42] 的隐藏状态扩展比率被安排为 1 或 2。这样的设置允许卷积 Stem 具有更少的参数和 FLOPs,而不会损失准确性。有关 Fused-MBConv 和 MBConv 的更多详细信息,请参阅补充材料。 卷积嵌入 在接下来的阶段 S2、S3 和 S4 中,每个阶段包含一个 CE 块和一组 ViT 块。CE 块通过卷积归纳偏差捕获不同的深度表示,以供后续注意模块使用。值得注意的是,EarlyConv [59] 和 CoAtNet [14] 指出堆叠卷积结构可以增强早期的 ViT。然而,正如我们在表 8 中所示,我们认为 CNN 也能够表示与网络深层中的 ViT 相同(甚至更好)的深层特征。同时,保持嵌入层的 CNN 设计自然会向后续 ViT 引入适当的归纳偏差,并保留样本高效的学习特性。考虑到相同的计算资源约束,CE 仅采用有效且高效的卷积。 S2、S3、S4的CE采用 MBConv 作为基本单元。

微观设计

局部增强的窗口自注意力 之前的工作 [35] 用局部窗口限制注意力计算,以将计算复杂度从二次降低到线性。同时,在某种程度上,局部窗口将归纳偏差注入到 ViT 中。同时,一系列工作 [58,55] 尝试将 CNN 直接集成到 ViT 中以引入卷积归纳偏差,但它们的计算复杂度仍然是二次的。我们提出了一个简单的局部增强窗口自注意力(LEWin),以利用快速注意力计算和局部归纳偏差。受 CvT 的启发,我们在局部移位窗口中对输入令牌执行了卷积投影。卷积投影通过深度可分离卷积实现,内核大小为 3 × 3,步幅为 1,填充为 1。LEWin 可以表示为: 其中 是卷积投影之前局部窗口中未受扰动的令牌, 分别表示第 个块的 WMSA 或 S-WMSA 模块和 MLP 模块的输出特征。W-MSA 和 SW-MSA 分别基于 SWin [35] 的常规窗口和移位窗口定义基于窗口的多头自注意力。

CETNet 变体

我们考虑 CETNet 的三种不同网络配置,以便在相似的模型大小和计算复杂性条件下与其他 ViT 主干进行比较。通过改变基础通道维度和每个阶段的 ViT 块数量,我们构建了微型、小型和基础模型三种变体,即 CETNet-T、CETNet-S 和 CETNet-B。有关更详细的配置,请参阅我们的补充材料。

研究卷积嵌入的作用

本节系统地了解混合 CNN/ViT 网络如何从 CE 中受益。由于我们需要在计算预算、模型泛化和模型容量 CE 之间仔细权衡,因此本工作主要探讨了两个设计选择:CE 的 CNN 层数和 CE 的基本单元。此外,我们通过将 CE 集成到 4 个流行的分层 ViT 模型中来展示 CE 的优越性。最后,我们进一步研究了 CNN 在混合 CNN/ViT 网络设计中的作用。

堆叠数的影响

我们首先探讨有效感受野(ERF)的大小如何影响网络的计算预算和性能。正如我们在 3.1 节中提到的,S0 和 S1 的 CE 组合为一个完整的 CNN 干。在本节的其余部分中,我们将其称为第一个 分别表示 S2、S3、S4 的 CE。为了探索基本单元堆叠数量的影响,我们稍微修改了 SWin-Tiny [35] 模型,用纯 CNN 替换其补丁嵌入和补丁合并模块。我们选择 MBConv 作为 CE 的基本单元,并逐渐将CE的层数从1层增加到3、5、7。 如表5所示,随着 CE 包含更多的 MBConv,Param 和 FLOPs 增长,性能从 81.8% 增至 82.6%。3 层 CE 模型的 FLOP 略高于具有相同 Param (28.13M vs. 28.11M) 的 1 层 CE (4.48G vs. 4.55G)。此外,值得注意的是,从 5 层 CE 到 7 层 CE,性能增长可以忽略不计。因此,我们采用 5 层设置,提供大的 ERF [63,50],作为 CETNet 的最终配置。

不同 CNN 块的影响

接下来我们探讨不同 CNN 架构注入卷积归纳偏差的效果如何。CE 层旨在为后续的注意力模块提供丰富的特征。CNN 的有效感受野(ERF)决定了它可以覆盖和处理的信息。正如 luo 等人提到的,堆叠更多层、子采样和具有大 ERF 的 CNN,例如膨胀卷积 [63] 可以放大 CNN 网络的 ERF。为了找到 CE 的有效基本单元,我们使用 CETNet-Tiny (CETNet-T) 模型作为基线,并用一些最近的 CNN 构建块替换 CE,例如 MBConv [42]、DenseNet [30]、ShuffleNet [68]、ResNetConvs[25]、SeresNetConvs [29] 和 GhostNetConvs [22]。根据之前的研究,所有候选卷积层堆叠为 5 层。为了公平比较,所有模型变体都被构造为具有相似的参数数量和 FLOP。 从表6可以看出,当 CETNet-T 早期的 Fused-MBConv s替换为 MBConvs 时,top-1准确率提高了0.1%,并且我们观察到训练速度下降了12%。 此外,CETNet-T 和 PureMB 模型实现了比其他候选卷积更高的性能。我们认为这可能是 CoAtNet [14] 指出的深度卷积和 ViT 之间的内在关系,这一点得到了 GhostNet 和 shuffleNet 模型的进一步验证,它们的 top-1 准确率分别为 82.6% 和 82.4%。此外,我们注意到,CNN 可以帮助 ViT 看到更好的视角,在 CE 情况下,卷积中的密集连接不一定会损害性能。结果表明,我们的 DenseNet 模型也可以实现 82.5% 的 top-1 准确率,这与 CETNet-T、PureMB、GhostNet 和 shuffleNet 模型的性能相当。然而,ResNet 和 SeresNet 的性能较差。我们推测基本单元在堆叠数相同的情况下具有不同的 ERF。

CE 的推广

然后,我们尝试将 CE 设计推广到 CV 的更多 ViT 主干。在这里,我们将我们的 CE 设计、 的 5 层 Fused-MBConv 以及 的 5 层 MBConv 分别应用于 4 个流行的主干网:CvT [58]、PVT [55]、SWin [35] ,和 CSWin [18]。为了公平比较,我们稍微改变了 4 个模型的结构,删除了一些 ViT 块,以保持它们的参数数量和 FLOP 保持与原始版本相似的水平。此外,我们还修改了 CvT 和 PVT 的小规模模型变体 CvT-13 和 PVT-S。如表 7 所示,这些修改后的模型分别比原始模型提高了 0.5% 和 1.3%。此外,当将我们的设计引入 SWin 和 CSWin 时,即使在较低的参数数和 FLOPs 场景下,所有对应方案的 top-1 精度也得到了提高。具体来看,Swin 对应的修改模型分别上涨1.2%、0.6%和0.7%,CSwin 对应的修改模型分别上涨0.9%、0.5%和0.5%。这些结果表明,CE 可以轻松地与其他 ViT 模型集成,并显着提高这些 ViT 模型的性能。

了解 CNN 在混合 CNN/ViT 设计中的作用

最后,我们探讨了混合 CNN/ViT 网络深层的 CNN 如何改善 ViT。之前的工作 [59,14,38] 表明浅层 CNN 结构足以将卷积归纳偏差引入所有后续 ViT 块。然而,人们可能会注意到 并不位于网络的浅层。充分理解:1)深层的 CNN 是否增强了后续 ViT 块的归纳偏差;2)混合 CNN/ViT 设计如何影响网络的最终性能。我们进行以下实验。从宏观上看,CETNet 可以被视为“C-T-C-T-C-T-C-T”,其中 C 和 T 分别表示 CE 和 ViT 块,其中 是 Fused-MBConv, 是MBConv。我们进行了三个主要实验:CNN 到 ViT、ViT 到 CNN 以及其他。在 CNN 到 ViT 组中,我们逐渐用 Transformer 代替卷积。在 CNN 组中,我们做了相反的事情。正如我们所看到的,在早期阶段仅采用 CNN 并不是最佳选择。此外,所有混合模型在 CNN 到 ViT 中的性能均优于纯 ViT 模型。此外,与 ViT 与 CNN 相比,人们可能会注意到,在深层架构中,更多 ViT 优于更多 CNN。此外,在网络深层有:混合CNN/ViT ≥ 纯ViT ≥ 纯CNN。在其他组中,我们进一步向观众列出了一些变体的实验结果,并希望任何可能的见解可以引起对混合 CNN/ViT 网络设计的重新思考。

结论

本文提出了一种生成混合 CNN/ViT 架构的原则方法。基于在ViTs中注入理想的归纳偏置的思想,我们提出了 1)基于使用卷积嵌入及其对架构归纳偏差的影响,将 CNN/ViT 组合到单个架构中的概念理解。2)混合架构的微观和宏观细节的概念框架,其中在小细节和大细节级别上做出不同的设计决策,以对架构施加归纳偏差。此外,我们还提供了一系列模型,称为 CETNet,它们作为通用视觉主干,并在数据大小受限的情况下在各种视觉任务上实现了 SOTA 性能。我们希望我们的发现能够引发对网络设计的重新思考,并扩展混合 CNN/ViT 网络的局限性。