Abstract
在过去的十年里,CNN一直是计算机视觉领域的霸主,但最近,Transformer正在崛起。然而,自注意的二次计算代价已成为实践中的一个严重问题。在这种背景下,已经有很多关于没有CNN和自我注意的架构的研究。特别是,MLP-Mixer是使用MLP设计的一个简单的想法,却达到了可与Vision Transformer相媲美的精度。然而,该体系结构中唯一的归纳偏差是token的嵌入。因此,仍然有可能在架构本身中构建一个非卷积的归纳偏差,我们使用两个简单的想法来构建归纳偏差。一种方法是垂直和水平分割token-mixing块。另一种方法是使一些token-mixing通道之间的空间相关性更紧密。通过这种方法,我们能够提高MLP-Mixer的准确性,同时减少其参数和计算复杂性。与其他基于MLP的模型相比,我们所提出的模型RaftMLP在计算复杂度、参数数量和实际内存使用量方面具有良好的平衡。此外,我们的工作表明,基于MLP的模型有潜力通过采用归纳偏差( inductive bias)取代CNN。PyTorch版本的源代码可以在https://github.com/okojoalg/raft-mlp上找到。
1. Introduction
在过去的十年中,基于CNN的深度架构在计算机视觉领域得到了发展。这些模型中的第一个是AlexNet[18],随后是其他著名的模型,如VGG[24]、GoogLeNet[25]和ResNet[13]。这些基于CNN的模型在图像分类、目标检测、语义分割和图像生成等任务中都显示出了很高的准确性。采用卷积,它们利用了图像固有的归纳偏差。与此同时,Transformer[33]近年来在自然语言处理(NLP)领域取得了成功。灵感来自于这一成功,Vision Transformer(ViT)[10]被提出。ViT是一个基于Transformer的视觉模型,用Self-Attention取代了CNN。ViT的主要思想是根据图像的空间位置将其划分为多个patch,并使用这些patch作为标记应用Transformer。ViT发表后不久,陆续完成了各种相关的工作[1、4、9、11、12、20、34、37、40、41]。他们已经表明,在图像分类和各种图像识别和生成任务中,基于Transformer的模型可以与基于CNN的模型竞争,甚至超过后者。尽管与基于CNN的模型相比,基于Transformer的模型对图像的归纳偏差较小,但它们通过使用大量参数和计算复杂性来弥补这一点。此外,它是成功的,因为它可以捕获全局相关性,因为它取代了卷积的局部接受域与全局注意。
最近,人们对提高计算密集型自我注意的计算复杂性的研究兴趣不断增加。最终,一些研究[22,29,30]声称,没有自我注意,MLP本身就足够了。特别是MLP-Mixer[29]进行了大量基于MLP的实验,图像分类的准确率并不比ViT好,但结果是可以比较的。与ViT一样,基于MLP的模型首先从映像生成token。后期只是MLP、transposition,和激活函数的组合操作。需要注意的重要一点是transposition。通过transposition,我们可以在token-mixing和channel-mixing之间进行切换。channel-mixing块相当于CNN中的1x1卷积,而token-mixing块是一种可以捕获token之间全局相关性的思想。
MLP-Mixer的奇妙之处在于,它展示了与现有模型竞争的可能性,具有简单直接的架构,没有卷积或自我注意。特别是,一个简单的基于MLP的模型可以与现有模型竞争的事实,导致我们考虑卷积的后继者。这个想法引起了许多研究者的兴趣,他们想知道我们是否能超越在主流中已经有十年了的经典的卷积模型。在这种情况下,我们的目标不是仅仅追求精度,而是通过合并一个简单的归纳偏差来实现更好的精度,而不需要卷积或类似卷积的架构。本文提出了RaftMLP,它由较小的归纳偏差的MLP-Mixer组成。
如图1所示,我们将token-mixing块依次划分为垂直混合块和水平混合块。在标准的MLP-Mixer中,patches的相关性在原始二维图像的垂直和水平方向上没有归纳偏差。在我们提出的模型中,我们隐含地假设水平对齐的patch序列与其他水平对齐的patch序列具有相似的相关性,作为一种归纳偏差。垂直对齐的patch序列也是如此。此外,我们还在输入垂直混合块(vertical-mixing)和水平混合块(horizontal-mixing)之前,对一些通道进行了连接。节理通道与两个mixing块共享。因此,我们假设某些通道之间存在几何关系。
这里将原始的空间与通道 MLP 交叉堆叠的结构修改为了垂直、水平、通道三个级联的结构。
我们将证明,该模型具有简单的归纳偏差,不含卷积包含,优于MLP-Mixer,并可与基于MLP的模型和其他知名模型相媲美。然后,我们将讨论不使用卷积或自我注意结果的架构的未来可能性。
2. Related Work
Transformer[33]最初是为NLP提出的,很快就开始应用到其他领域,包括可视化任务。特别是在图像识别中,[3,16,35]引入了注意增强卷积。[23]研究了独立的视觉任务注意,而不是卷积增强,结果表明,在ImageNet分类任务中,完全自我注意版本的ResNet-50优于原始ResNet。
在[5,10]中研究了更多类似Transformer的架构,这些架构通过自注意处理输入token,而不是通过注意增强CNN。特别是在[10]中,提出了基于bert型纯Transformer的ViT来处理ImageNet数据集等高分辨率输入。ViT使用大规模数据集进行预训练,并转移到ImageNet,与最先进的CNN相比,它提供了更好的结果。
基于MLP的模型最近,有人提出了几种基于CNN的架构的替代方案,这些方案很简单,尽管没有使用卷积或自我注意(self-attention),但可以与CNN竞争[22,29,30]。MLP- mixer[29]用简单的交叉MLP取代了ViT的自我注意层。尽管简单,MLP-Mixer取得了与ViT竞争的结果。gMLP[19]由一个基于mlp的模组和乘法门控组成,是MLP-Mixer的替代方案,在更少的参数下实现了更高的精度。
MLP-Mixer: An all-MLP Architecture for Vision_HHzdh的博客-CSDN博客
(gMLP)Pay Attention to MLPs_HHzdh的博客-CSDN博客
像Transformer和MLP这样的通用归纳偏差具有吸引人的可能性,但它缺乏像卷积这样的归纳偏差,这意味着与CNN相比,它的预训练需要大量的数据。
3. Method
3.1. Background
MLP-Mixer[29]在输入后立即将输入的图像分割成相同大小的patches。MLP有两种类型:第一种是token-mixing块,另一种是channel-mixing块。我们将图像的高度h和宽度w转换为表示带有高度和宽度的token,表示为p。如果h和w能被p整除,通过将该image视为这些token的集合,我们可以将该图像视为一个数据数组,其中, ,通道,c表示输入图像的通道。则token的数量为:。token-mixing块是跨越token轴的映射。相比之下,channel-mixing块是作用于通道的轴线的映射,c也就是通道的数量。两个模块包含相同的模块:每个通道进行层归一化(LN)[2],高斯误差线性单位(GELU)[14]和MLP。具体地说,看下面的方程:
其中表示输入张量,表示输出张量,, ,表示展开因子。为简单起见,省略了MLP中的偏差项。在token-mixing块中,a=s,在channel-mixing块中,a=c。而且,token轴和channel轴在这两种mixing之间排列。这样,MLP-Mixer[29]由transposition和两种类型的mixing块组成。
3.2. Vertical-mixing and Horizontal-mixing Block
在前面的小节中,我们讨论了token-mixing块。原始的token-mixing块不反映输入图像的任何二维结构,如高度或宽度方向。换句话说,图像独有的归纳偏差不包括在符号混合块中。因此,MLP-Mixer[29]除了第一个patch如何制作外,对图像没有 inductive bias。为了合并类似于图像的归纳偏差,我们将这个块分解为混合了每个垂直轴和水平轴的块。下面描述我们的方法。
垂直混合块是作用于垂直轴的映射。具体来说,该映射沿着水平轴捕获相关性,沿着通道和水平维度利用相同的MLP。该映射对每个通道、GELU和剩余连接进行层归一化。这个混合块的组件与原始的token-mixing相同。
类似地,水平混合块是作用于水平轴的的映射,并打乱水平轴。结构是双轴的,只替换垂直轴和水平轴。我们建议用垂直混合和水平混合的连续应用来代替符号混合,假设在二维图像的垂直和水平序列上有意义的相关。该结构如图1所示。公式如下:
raft-token-mixing块伪代码(Pytorch-like)
注意,这里的特征图是四个四个一组,即r的平方等于4,r=2,也就是筏数是2。
3.3. Channel Raft
让我们假设一些特征图组具有依赖于空间属性的相关性。在这种假设下,一些特征地图会有一些垂直或水平方向的模式。我们可以通过将几个特征图整合到垂直和水平的随机中来实现一个 induction bias来捕捉这种空间相关性。如图2所示,这可以通过排列特征映射来实现,将张量重塑为一个具有个通道的张量。此外,我们还对新张量进行了垂直混合和水平混合块。在这种情况下,在每个混合中所做的层标准化是针对原始通道的。我们把这种结构称为channel raft。我们将整个垂直混合和水平混合块以及通道筏定义为 raft-token-mixing块。raft-token-mixing块和channel-mixing块一起称为RaftMLP块。
3.4. Impact on Computational Costs
我们将讨论我们提出的方法的计算复杂性,忽略标准化和激活函数。这里,表示patch的高度,表示patch的宽度,以及表示膨胀系数。
Number of parameters。传统token-mixing块的MLPs参数为:
……(4)
相比之下,用于垂直混合块的参数为:
……(5)
水平混合块的MLPs参数为:
……(6)
换句话说,raft-token-mixing块所需的参数总数是:
……(7)
也就是说这意味着,当我们设和忽略时,内存成本可以降低。
Number of multiply-accumulate。如果我们忽略偏差项,用于传统token-mixing块的MLP要求累加。相比之下,raft-token-mixing块只需要。假设,raft-token-mixing只需要与传统的token-mixing块的的倍数累积。简单地说,如果r选择使,然后乘累加比传统的token-mixing块有优势。
4. Experimental Evaluation
5. Discussion
6. Conclusion
总之,我们已经证明,与普通MLP-Mixer[29]相比,raft-token-mixing块的引入提高了在ImageNet-1K数据集[7]上训练时的准确性。尽管与MLP-Mixer[29]相比,raft-token-mixing只是略微减少了参数和FLOPS的数量,但它有助于提高精度。可以得出结论,在现有的基于MLP的模型中加入非卷积和非自我注意的归纳偏差可以提高模型的准确性。