卷积神经网络(CNN)是计算机视觉中占主导地位的深度神经网络(DNN)体系结构。最近,Transformer和基于多层感知器(MLP)的模型,如Vision Transformer和MLP- mixer,开始引领新的趋势,因为它们在ImageNet分类任务中显示了很好的结果。在本文中,我们对这些DNN结构进行了实证研究,并试图了解它们各自的优缺点。为了确保公平的比较,我们首先开发了一个统一的框架,称为SPACH,它采用独立的空间和信道处理模块。我们在SPACH框架下的实验表明,所有的结构都可以在中等规模下获得相匹配的性能。然而,当网络规模扩大时,它们表现出不同的行为。基于我们的发现,我们提出了两个混合模型使用卷积和Transformer模块。得到的Hybrid-MS-S+模型的top-1精度为83.9%,参数为63M, FLOPS为12.3G。它已经可以与SOTA模型媲美,具有复杂的设计。代码和模型将向公众开放。
引言
自深度神经网络(DNNs)复兴以来,卷积神经网络(CNNs)一直在计算机视觉领域占据主导地位。从图像分类[12]、目标检测[27]到基于像素的分割[11],它们已经在许多视觉任务中证明了有效性。值得注意的是,尽管Transformer结构[37]在自然语言处理(NLP)[8]中取得了巨大的成功,CV社区在相当长的一段时间内仍然关注CNN结构。
Transformer结构最终于去年在CV中隆重亮相。Vision Transformer (ViT)[9]表明,如果训练数据集足够大,直接应用于图像patch序列的纯Transformer可以很好地完成图像分类任务。DeiT[35]进一步证明,通过适当的数据增强和模型正则化,Transformer可以在典型尺度的数据集上成功训练,如ImageNet-1K[7]。有趣的是,在Transformer的热度消失之前,Tolstikhin等人在一篇名为MLP-Mixer[33]的论作中恢复了多层感知器(MLPs)的结构。MLPMixer完全基于应用于空间位置和功能通道的MLPs。当在大数据集上训练时,MLP-Mixer在图像分类基准上获得了相匹配的性能。MLP-Mixer的成功表明,卷积和注意力都不是良好性能所必需的。正如作者所希望的那样,它引发了对MLP的进一步研究[20,26]。
然而,由于来自不同阵营的新网络设计,在图像分类基准上的报告准确性不断提高,因此无法得出CNN、Transformer和MLP之间哪个结构表现最好或最适合视觉任务的结论。这部分是由于追求高分导致了各种技巧和详尽的参数调优。因此,网络结构不能以系统的方式进行公平的比较。本文通过在一个统一的框架中对CNN、Transformer和MLP进行一系列受控实验,填补了这一空白。
我们首先开发一个统一的框架SPACH,如图1所示。它主要被当前的Transformer和MLP框架所采用,因为卷积也可以适用于这个框架,并且总体上对优化是鲁棒的。SPACH框架包含一个即插即用模块,称为混合块,可以实现为卷积层、Transformer层或MLP层。除了混合块,当我们探索不同的结构时,框架中的其他组件都是相同的。这与之前的工作形成了鲜明的对比,之前的工作比较了不同框架中的不同网络结构,这些框架在层级联、规范化和其他非琐碎的实现细节上差异很大。事实上,我们发现这些无结构的组件在模型的最终性能中起着重要的作用,而这在文献中通常被忽视。
在这个统一的框架下,我们设计了一系列的对照实验来比较这三种网络结构。结果表明,在ImageNet-1K上进行预训练后,三种网络结构都能很好地完成图像分类任务。此外,随着网络规模的扩大,每个个体结构都有其独特的特性,导致不同的行为。我们还发现了一些常见的设计选择,它们对SPACH框架的性能有很大的贡献。下面列出了详细的研究结果。
多级设计在CNN模型中是标准的,但在基于Transformer或基于MLP的模型中,它的有效性在很大程度上被忽视了。我们发现,无论选择哪一种网络结构,多级框架的性能都明显优于单级框架。
局部建模是有效和关键的。使用轻量级的深度卷积,卷积模型可以实现与SPACH框架中的Transformer模型相似的性能。通过在MLP和Transformer结构中添加一个局部建模旁路,可以在参数可忽略和FLOPs增加的情况下获得显著的性能提升。
MLP在模型尺寸小的情况下可以获得较好的性能,但当模型尺寸增大时,存在严重的过拟合问题。我们认为,过度拟合是阻碍MLP实现SOTA绩效的主要障碍。
卷积和Transformer是互补的,三种结构中卷积结构泛化能力最好,Transformer结构模型容量最大。这表明卷积仍然是设计轻量级模型的最佳选择,但设计大型模型时应该考虑Transformer。