文章目录
题目: MetaFormer 才是你进行视觉任务真正需要的架构
Github链接:https://github.com/sail-sg/poolformer
论文链接:https://arxiv.org/pdf/2111.11418v3
Abstract
Transformer在计算机视觉任务中展现出了巨大的潜力。普遍认为,其基于注意力的token混合模块对模型的性能贡献最大。然而,最近的研究表明,Transformer中基于注意力的模块可以被空间多层感知器(MLP)替代,并且所得的模型仍然表现良好。基于这一观察,我们假设对于模型的性能而言,Transformer的通用架构比特定的token混合模块更为关键。为了验证这一点,我们特意将Transformer中的注意力模块替换为一个极其简单的空间池化操作,仅进行基本的token混合。令人惊讶的是,我们发现由此衍生的模型PoolFormer在多个计算机视觉任务上取得了具有竞争力的性能。例如,在ImageNet - 1K数据集上,PoolFormer的 top - 1准确率达到82.1%,超越了经过精心调优的Vision Transformer(视觉Transformer)/类似MLP的基线模型DeiT - B/ResMLP - B24,准确率分别高出0.3%和1.1%,同时参数减少了35%和52%,乘加运算次数(MACs)减少了50%和62%。PoolFormer的有效性验证了我们的假设,并促使我们提出“MetaFormer”的概念,这是一种从Transformer中抽象出来的通用架构,不指定具体的token混合器。基于大量的实验,我们认为MetaFormer是近期Transformer和类似MLP的模型在视觉任务中取得优异结果的关键因素。这项工作呼吁未来更多的研究致力于改进MetaFormer,而不是专注于token混合模块。此外,我们提出的PoolFormer可以作为未来MetaFormer架构设计的起始基线。
深度理解
这段摘要主要围绕Transformer在计算机视觉领域的研究展开。传统观点认为Transformer中的注意力机制是其性能的关键,但近期研究发现注意力模块可被替换且模型性能依旧不错。作者团队提出Transformer的通用架构或许更为重要,并通过实验将注意力模块替换为简单的空间池化操作,创建了PoolFormer模型。实验结果表明PoolFormer不仅性能超越一些基线模型,还在参数数量和计算量上有显著优势。基于此,作者提出MetaFormer概念,强调它在模型取得好结果中的关键作用,并建议未来研究重点改进MetaFormer,同时PoolFormer可作为后续相关架构设计的基础。 这一研究为Transformer在计算机视觉领域的架构优化和未来研究方向提供了新的思路和视角。
1. Introduction(引言)
Transformer在计算机视觉领域引起了广泛关注并取得了巨大成功[3, 8, 44, 55]。自从Vision Transformer(ViT)[17]这一开创性工作将纯Transformer应用于图像分类任务以来,许多后续模型不断涌现,旨在进一步改进,并在各种计算机视觉任务中取得了优异的性能[36, 53, 63]。
如图1(a)所示,Transformer编码器由两个部分组成。一个是用于在token间混合信息的注意力模块,我们将其称为token混合器。另一个部分包含剩余的模块,例如通道多层感知器(MLP)和残差连接。通过将注意力模块视为一种特定的token混合器,我们进一步将整个Transformer抽象为一种通用架构MetaFormer,其中不指定具体的token混合器,如图1(a)所示。
图1. MetaFormer以及基于MetaFormer的模型在ImageNet - 1K验证集上的性能。如图(a)所示,我们将MetaFormer表示为一种从Transformer[56]中抽象出来的通用架构,其中不指定token混合器。当使用注意力/空间MLP作为token混合器时,MetaFormer就实例化为Transformer/类似MLP的模型。我们认为,Transformer/类似MLP模型的能力主要源于通用架构MetaFormer,而不是所配备的特定token混合器。为了证明这一结果,我们采用一个极其简单的非参数算子——池化,来进行极其基础的token混合。令人惊讶的是,所得的模型PoolFormer持续优于经过精心调优的视觉Transformer[17]基线模型(DeiT[53])和类似MLP的[51]基线模型(ResMLP[52]),如图(b)所示。这有力地支持了这样一种观点,即MetaFormer实际上是我们取得具有竞争力性能所需要的架构。图(b)中的RSB - ResNet指的是来自“ResNet Strikes Back”[59]的结果,其中ResNet[24]是使用改进的训练流程训练300个epoch得到的。
深度理解
图1主要传达了两个关键信息:
- 架构关系:图(a)展示了MetaFormer作为一种通用架构,它是对Transformer的抽象。在Transformer中,注意力机制是用于token混合的关键组件;在类似MLP的模型中,则使用空间MLP进行token混合。而PoolFormer使用简单的池化操作作为token混合器。这表明不同类型的模型可以看作是MetaFormer在指定不同token混合器后的实例,突出了MetaFormer架构的通用性和灵活性。
- 性能对比:图(b)通过在ImageNet - 1K验证集上的实验结果对比,将PoolFormer与DeiT、ResMLP以及RSB - ResNet等模型在准确率、乘加运算次数(MACs)和模型大小方面进行比较。结果显示,PoolFormer在使用简单池化作为token混合器的情况下,不仅在准确率上表现出色,还在模型大小和计算量上具有优势。这一对比结果有力地支持了作者的观点,即MetaFormer架构本身对于模型取得有竞争力的性能起到了关键作用,而不一定依赖复杂的token混合器。
长期以来,Transformer的成功一直归因于基于注意力的token混合器[56]。基于这一普遍认知,人们开发了许多注意力模块的变体[13, 22, 57, 68],以改进Vision Transformer。然而,最近的一项研究[51]完全用空间MLP替换了注意力模块作为token混合器,并且发现由此衍生的类似MLP的模型能够在图像分类基准测试中轻松取得具有竞争力的性能。后续的研究[26, 35, 52]通过高效的数据训练和特定的MLP模块设计进一步改进了类似MLP的模型,逐渐缩小了与ViT的性能差距,并挑战了注意力作为token混合器的主导地位。
最近的一些研究方法[32, 39, 40, 45]在MetaFormer架构内探索了其他类型的token混合器,并且已经展现出令人鼓舞的性能。例如,[32]用傅里叶变换替换了注意力机制,并且仍然达到了原始Transformer约97%的准确率。综合所有这些结果来看,似乎只要一个模型采用MetaFormer作为通用架构,与特定的token混合器相比,就有可能取得优异的结果。因此,我们假设MetaFormer对于模型取得具有竞争力的性能更为关键。
为了验证这一假设,我们应用了一个极其简单的非参数算子——池化,作为token混合器,仅进行基本的token混合。令人惊讶的是,这个衍生的模型PoolFormer取得了具有竞争力的性能,甚至持续优于经过精心调优的Transformer和类似MLP的模型,包括DeiT [53]和ResMLP [52],如图1(b)所示。具体来说,PoolFormer-M36在ImageNet-1K分类基准测试中达到了82.1%的top-1准确率,超越了经过精心调优的视觉Transformer/类似MLP的基线模型DeiT-B/ResMLP-B24,准确率分别高出0.3%和1.1%,同时参数减少了35%和52%,乘加运算次数(MACs)减少了50%和62%。这些结果表明,即使使用一个简单的token混合器,MetaFormer仍然可以提供出色的性能。因此,我们认为对于视觉模型而言,MetaFormer实际上是我们所需要的,它对于取得具有竞争力的性能更为关键,而不是特定的token混合器。需要注意的是,这并不意味着token混合器不重要。MetaFormer仍然包含这个抽象的组件,只是意味着token混合器并不局限于某一特定类型,例如注意力机制。
我们论文的贡献主要有两个方面。首先,我们将Transformer抽象为一种通用架构MetaFormer,并通过实验证明Transformer/类似MLP模型的成功在很大程度上归因于MetaFormer架构。具体而言,通过采用一个简单的非参数算子——池化,作为MetaFormer极其弱的token混合器,我们构建了一个名为PoolFormer的简单模型,并发现它仍然可以取得极具竞争力的性能。我们希望我们的发现能够激励未来更多的研究致力于改进MetaFormer,而不是专注于token混合器模块。其次,我们在多个视觉任务上评估了所提出的PoolFormer,包括图像分类[14]、目标检测[34]、实例分割[34]和语义分割[67],并且发现与使用复杂token混合器设计的当前最优(SOTA)模型相比,它也能取得具有竞争力的性能。PoolFormer可以很容易地作为未来MetaFormer架构设计的良好起始基线。
深度理解
这段文本主要介绍了Transformer在计算机视觉领域的发展、MetaFormer架构的提出以及PoolFormer模型的相关研究。
- 背景与现状:Transformer在计算机视觉领域备受关注,自ViT将其应用于图像分类后,众多后续模型不断改进。传统上认为Transformer的成功源于基于注意力的token混合器,但近期研究表明,空间MLP等其他token混合器也能使模型取得不错的性能,这挑战了注意力机制的主导地位。同时,在MetaFormer架构内探索不同token混合器的研究也取得了积极成果。
- 研究假设与验证:作者假设MetaFormer架构本身对模型取得竞争力性能更为关键,而非特定的token混合器。通过使用简单的池化操作作为token混合器构建PoolFormer模型,实验结果表明,PoolFormer不仅在参数数量和计算量上有优势,还在图像分类任务中超越了一些精心调优的基线模型,验证了作者的假设。
- 研究贡献:一方面,作者将Transformer抽象为MetaFormer架构,并通过PoolFormer模型的实验证明了MetaFormer架构的重要性,呼吁未来研究聚焦于改进MetaFormer;另一方面,在多个视觉任务上评估PoolFormer,发现其性能具有竞争力,可作为未来MetaFormer架构设计的起始基线。 整体而言,这项研究为Transformer在计算机视觉领域的架构研究提供了新的思路和方向,强调了通用架构的重要性,而非局限于特定的组件。
2. Related work(相关工作)
Transformer最初由文献[56]提出,用于翻译任务,随后在各种自然语言处理(NLP)任务中迅速流行起来。在语言预训练任务中,Transformer在大规模无标签文本语料库上进行训练,并取得了惊人的性能[2, 15]。受Transformer在NLP领域成功的启发,许多研究人员将注意力机制应用于计算机视觉任务[3, 8, 44, 55]。值得注意的是,Chen等人引入了iGPT[6],其中Transformer被训练以自回归的方式预测图像上的像素,用于自监督学习。Dosovitskiy等人提出了Vision Transformer(ViT),采用硬分块嵌入作为输入[17]。他们表明,在有监督的图像分类任务中,在一个拥有3亿张图像的大型专有数据集(JFT数据集)上预训练的ViT可以取得优异的性能。DeiT[53]和I2T-ViT[63]进一步证明,仅在ImageNet-1K(约130万张图像)上从头开始预训练的ViT也能取得不错的性能。许多研究工作一直致力于通过滑动窗口[36]、相对位置编码[61]、细化注意力图[68]或结合卷积[12, 21, 60]等方法来改进Transformer的token混合方式。除了类似注意力的token混合器,文献[51, 52]令人惊讶地发现,仅仅采用MLP作为token混合器也能取得具有竞争力的性能。这一发现挑战了基于注意力的token混合器的主导地位,并在研究社区中引发了关于哪种token混合器更好的热烈讨论[7, 26]。然而,这项工作的目标既不是参与这场辩论,也不是设计新的复杂token混合器以达到新的先进水平。相反,我们探讨一个根本性的问题:究竟是什么真正促成了Transformer及其变体的成功?我们的答案是通用架构,即MetaFormer。我们只是简单地使用池化作为基本的token混合器来探究MetaFormer的能力。
目前,也有一些工作致力于回答同样的问题。Dong等人证明,在没有残差连接或MLP的情况下,输出会以双指数形式收敛到一个秩为1的矩阵[16]。Raghu等人[43]比较了ViT和卷积神经网络(CNNs)之间的特征差异,发现自注意力机制有助于全局信息的聚集,而残差连接则极大地促进了特征从低层向高层的传播。Park等人[42]表明,多头自注意力通过使损失函数的地形更加平滑来提高准确率和泛化能力。不幸的是,他们没有将Transformer抽象为一个通用架构,也没有从通用框架的角度来研究它们。
深度理解
这段文本主要介绍了Transformer在不同领域的应用以及相关的研究工作,旨在说明本文研究的出发点和独特性。
- Transformer的发展历程:Transformer起源于翻译任务,在NLP领域广泛应用并取得优秀成绩。受其启发,研究人员将其引入计算机视觉领域,如iGPT的自监督学习和ViT的图像分类应用。同时,众多研究围绕改进Transformer的token混合方式展开,并且发现MLP作为token混合器也能使模型具备竞争力,引发了关于token混合器优劣的讨论。
- 本文研究方向:与其他研究不同,本文不参与token混合器的比较和设计复杂新混合器,而是关注Transformer成功的根本原因,认为是MetaFormer这一通用架构起关键作用,并通过简单的池化操作作为token混合器来验证这一观点。
- 其他相关研究:有一些研究从不同角度探讨Transformer,如输出特性、特征差异、注意力和残差连接的作用等,但这些研究没有从通用架构层面去分析Transformer,突出了本文研究视角的独特性。 整体来看,这段内容为后文对MetaFormer和PoolFormer的研究做了铺垫,清晰地阐述了研究背景和动机。
3. Method(方法)
3.1. MetaFormer(元变换器)
我们首先介绍这项工作的核心概念“MetaFormer”。如图1所示,MetaFormer是从Transformer [56]中抽象出来的一种通用架构,其中不指定token混合器的具体形式,而其他组件与Transformer保持一致。输入
I
I
I首先通过输入嵌入进行处理,例如对于Vision Transformer(ViT)[17] 采用的分块嵌入:
X
=
InputEmb
(
I
)
(1)
X = \text{InputEmb}(I) \tag{1}
X=InputEmb(I)(1)
其中,
X
∈
R
N
×
C
X \in \mathbb{R}^{N\times C}
X∈RN×C表示具有序列长度
N
N
N和嵌入维度
C
C
C的嵌入token。
然后,嵌入token被输入到重复的MetaFormer模块中,每个模块包含两个残差子模块。具体来说,第一个子模块主要包含一个token混合器,用于在token之间传递信息,该子模块可以表示为:
Y
=
TokenMixer
(
Norm
(
X
)
)
+
X
(2)
Y = \text{TokenMixer}(\text{Norm}(X)) + X \tag{2}
Y=TokenMixer(Norm(X))+X(2)
其中,
Norm
(
⋅
)
\text{Norm}(\cdot)
Norm(⋅)表示归一化操作,如层归一化[1]或批归一化[28];
TokenMixer
(
⋅
)
\text{TokenMixer}(\cdot)
TokenMixer(⋅)表示一个主要用于混合token信息的模块。在最近的视觉Transformer模型[17, 63, 68]中,它由各种注意力机制实现,而在类似MLP的模型[51, 52]中则由空间MLP实现。需要注意的是,token混合器的主要功能是传播token信息,尽管一些token混合器(如注意力机制)也可以混合通道信息。
第二个子模块主要由一个带有非线性激活函数的两层MLP组成:
Z
=
σ
(
Norm
(
Y
)
W
1
)
W
2
+
Y
(3)
Z = \sigma(\text{Norm}(Y)W_1)W_2 + Y \tag{3}
Z=σ(Norm(Y)W1)W2+Y(3)
其中,
W
1
∈
R
C
×
r
C
W_1 \in \mathbb{R}^{C\times rC}
W1∈RC×rC和
W
2
∈
R
r
C
×
C
W_2 \in \mathbb{R}^{rC\times C}
W2∈RrC×C是可学习的参数,
r
r
r为MLP的扩展比例;
σ
(
⋅
)
\sigma(\cdot)
σ(⋅)是非线性激活函数,如GELU [25]或ReLU [41]。
MetaFormer的实例化:MetaFormer描述了一种通用架构,通过指定token混合器的具体设计,可以直接得到不同的模型。如图1(a)所示,如果将token混合器指定为注意力机制或空间MLP,那么MetaFormer就分别成为Transformer或类似MLP的模型。
深度理解
这段内容详细介绍了MetaFormer这一核心概念,主要包含以下几个方面:
- 架构概述:MetaFormer是从Transformer抽象而来的通用架构,其特点是不明确规定token混合器的类型,其他部分和Transformer相同。输入数据先经过嵌入处理得到嵌入token。
- 模块组成:MetaFormer由重复的模块构成,每个模块包含两个残差子模块。第一个子模块借助token混合器和归一化操作,实现token间的信息传递,不同模型中token混合器的实现方式不同;第二个子模块是一个带有非线性激活的两层MLP,用于对数据进一步处理变换。
- 实例化方式:明确指出通过指定token混合器的具体形式,MetaFormer可以演变成不同的模型,如指定为注意力机制就是Transformer,指定为空间MLP则成为类似MLP的模型。这段内容为理解MetaFormer架构以及后续基于该架构的模型研究提供了基础,突出了其作为通用架构的灵活性和重要性。
3.2. PoolFormer(池化变换器)
从Transformer的相关介绍[56]可知,许多研究工作非常重视注意力机制,并专注于设计各种基于注意力的token混合组件。相比之下,这些工作很少关注通用架构,即MetaFormer。
在这项工作中,我们认为MetaFormer通用架构是近期Transformer和类似MLP模型取得成功的主要原因。为了证明这一点,我们特意使用一个极其简单的算子——池化,作为token混合器。这个算子没有可学习的参数,它只是让每个token平均聚合其附近的token特征。
由于这项工作针对的是视觉任务,我们假设输入数据采用通道优先的数据格式,即
T
∈
R
C
×
H
×
W
T \in \mathbb{R}^{C\times H\times W}
T∈RC×H×W。池化算子可以表示为:
T
:
,
i
,
j
′
=
1
K
×
K
∑
p
,
q
=
1
K
T
:
,
i
+
p
−
K
+
1
2
,
i
+
q
−
K
+
1
2
−
T
:
,
i
,
j
(4)
T'_{:,i,j} = \frac{1}{K \times K} \sum_{p,q = 1}^{K} T_{:,i + p - \frac{K + 1}{2}, i + q - \frac{K + 1}{2}} - T_{:,i,j} \tag{4}
T:,i,j′=K×K1p,q=1∑KT:,i+p−2K+1,i+q−2K+1−T:,i,j(4)
其中,
K
K
K是池化大小。由于MetaFormer模块已经有了残差连接,所以公式(4)中添加了输入本身的减法操作。类似PyTorch的池化代码如算法1所示。
众所周知,自注意力机制和空间MLP的计算复杂度与要混合的token数量成二次方关系。更糟糕的是,在处理较长序列时,空间MLP会带来更多的参数。因此,自注意力机制和空间MLP通常只能处理几百个token。相比之下,池化的计算复杂度与序列长度成线性关系,并且没有任何可学习的参数。因此,我们利用池化的优势,采用类似于传统卷积神经网络(CNN)[24,31,49]以及近期分层Transformer变体[36,57]的分层结构。图2展示了PoolFormer的整体框架。具体来说,PoolFormer有4个阶段,对应的token数量分别为 H 4 × 4 W \frac{H}{4} \times \frac{4}{W} 4H×W4, H 8 × 8 W \frac{H}{8} \times \frac{8}{W} 8H×W8, H 16 × 16 W \frac{H}{16} \times \frac{16}{W} 16H×W16和 H 32 × 32 W \frac{H}{32} \times \frac{32}{W} 32H×W32 ,其中 H H H和 W W W表示输入图像的宽度和高度。有两组嵌入维度:1)小尺寸模型,四个阶段的嵌入维度分别为64、128、320和512;2)中等尺寸模型,嵌入维度分别为96、192、384和768。假设总共有 L L L个PoolFormer模块,那么阶段1、2、3和4将分别包含 L 6 \frac{L}{6} 6L、 L 6 \frac{L}{6} 6L、 L 2 \frac{L}{2} 2L和 L 6 \frac{L}{6} 6L个PoolFormer模块。MLP的扩展比例设置为4。根据上述简单的模型缩放规则,我们得到了5种不同尺寸的PoolFormer模型及其超参数,如表1所示。
深度理解
这段文本主要围绕PoolFormer模型展开介绍,包括其设计理念、池化算子的细节、与其他方法的对比以及模型结构和参数设置,具体如下:
- 设计理念:以往研究多关注Transformer中的注意力机制及基于注意力的token混合组件,而忽视了MetaFormer通用架构。作者认为MetaFormer是Transformer和类似MLP模型成功的关键,并通过使用简单的池化操作作为token混合器来验证这一观点。
- 池化算子:针对视觉任务,明确输入数据格式,给出了池化算子的数学表达式。该表达式通过平均聚合附近token特征来实现token混合,且因MetaFormer已有残差连接,表达式中添加了输入减法操作,同时提及了对应的代码实现。
- 方法对比:将池化与自注意力机制、空间MLP进行对比,指出后两者计算复杂度高且处理长序列时参数多,而池化计算复杂度与序列长度呈线性关系且无学习参数,凸显了池化的优势。
- 模型结构与参数:利用池化优势,采用分层结构设计PoolFormer模型。介绍了模型的4个阶段及各阶段token数量,给出两组嵌入维度对应的模型尺寸,说明了不同阶段PoolFormer模块数量分配以及MLP扩展比例,还提及根据规则得到不同尺寸模型及其超参数 。整体上,这段内容为理解PoolFormer模型的构建和特性提供了全面且详细的信息。
图2. (a) PoolFormer的整体框架。与文献[24, 36, 57]类似,PoolFormer采用包含4个阶段的分层架构。对于一个有L个PoolFormer模块的模型,第1、2、3、4阶段分别有L/6、L/6、L/2、L/6个模块。图中展示了第i阶段的特征维度Di 。(b) PoolFormer模块的架构。与Transformer模块相比,它用极其简单的非参数算子——池化,取代了注意力机制,仅进行基本的token混合。
深度理解
图2主要展示了PoolFormer模型的架构信息,包含整体框架和模块架构两部分:
- 整体框架:PoolFormer模型采用分层架构,这与一些传统模型的架构设计思路相似。模型将处理过程分为4个阶段,每个阶段的PoolFormer模块数量依据总模块数L按特定比例分配。随着阶段推进,特征维度会发生变化,输入图像经过分块嵌入操作后,在不同阶段逐步提取和转换特征,这种分层设计有助于模型从不同层次对图像信息进行处理和抽象。
- 模块架构:PoolFormer模块是模型的核心组成部分。它与Transformer模块的关键区别在于token混合器,PoolFormer使用简单的池化操作替代了Transformer中的注意力机制。池化操作作为一种非参数算子,没有可学习的参数,只进行基本的token混合,即让每个token平均聚合附近token的特征,这种设计在简化模型的同时,还能保证模型具备一定的性能。 图2直观地呈现了PoolFormer模型的架构特点,展示了其如何在分层架构的基础上,通过独特的模块设计来实现图像特征处理和信息混合,为理解PoolFormer的工作原理和优势提供了清晰的图示说明。
表1. 不同PoolFormer模型的配置。有两组嵌入维度,即小尺寸模型的维度为[64, 128, 320, 512],中等尺寸模型的维度为[96, 196, 384, 768]。符号“S24”表示该模型是小尺寸模型,总共有24个PoolFormer模块。乘加运算次数(MACs)是通过fvcore[19]库计算得出的。
深度理解
这张表格详细展示了不同PoolFormer模型的配置信息,对于理解PoolFormer模型的结构和特性非常关键:
- 模型分层结构:PoolFormer模型分为4个阶段,每个阶段的token数量随着特征提取的进行而逐渐减少,这符合常见的图像特征处理的分层架构设计思路,通过逐步降低分辨率来提取更高级的语义信息。
- 各阶段层规格:在每个阶段中,包含了Patch Embedding和PoolFormer Block两部分的详细规格。Patch Embedding指定了分块大小和嵌入维度,不同尺寸的模型在各阶段的嵌入维度有所不同;PoolFormer Block中明确了池化大小、MLP比例以及该阶段的模块数量。池化大小在各阶段保持一致,MLP比例固定为4,而模块数量则依据模型尺寸和阶段的不同而变化 。
- 模型参数与计算量:表格最后给出了不同PoolFormer模型的参数数量(Parameters)和乘加运算次数(MACs)。这些数据可以帮助研究者评估模型的复杂度和计算成本,方便在实际应用中根据硬件资源和任务需求选择合适的模型。通过这些配置信息,可以清晰地看到不同PoolFormer模型在结构设计上的差异和特点,以及这些差异如何影响模型的参数规模和计算量。
4. Experiments(实验)
4.1. Image classification(图像分类)
设置:ImageNet - 1K [14]是计算机视觉领域应用最广泛的数据集之一。它包含约130万张训练图像和5万张验证图像,涵盖了1000个常见类别。具体来说,我们的训练方案主要遵循文献[53]和[54]。使用MixUp [65]、CutMix [64]、CutOut [66]和RandAugment [11]进行数据增强。模型使用AdamW优化器[29,37]训练300个epoch,权重衰减为0.05,峰值学习率 l r = 1 e − 3 ⋅ batch size / 1024 lr = 1e^{-3} \cdot \text{batch size}/1024 lr=1e−3⋅batch size/1024(本文中使用的批量大小为4096,学习率为 4 e − 3 4e^{-3} 4e−3)。热身epoch数为5,并且使用余弦退火策略来衰减学习率。标签平滑[50]设置为0.1。不使用Dropout,但使用随机深度[27]和LayerScale [54]来帮助训练深度模型。与原始的层归一化仅在通道维度上计算均值和方差不同,我们修改了层归一化[1],使其在token和通道维度上计算均值和方差。修改后的层归一化(MLN)可以在PyTorch中使用GroupNorm API针对通道优先的数据格式实现,只需将组数指定为1。如4.4节所示,PoolFormer更倾向于使用MLN。有关超参数的更多详细信息,请参见附录。我们的实现基于Timm代码库[58],并且实验在TPU上运行。
结果:表2展示了PoolFormer在ImageNet图像分类任务上的性能。定性结果见附录。令人惊讶的是,尽管使用了简单的池化token混合器,与卷积神经网络(CNN)和其他类似MetaFormer的模型相比,PoolFormer仍然可以取得极具竞争力的性能。例如,PoolFormer - S24的top - 1准确率超过80%,而仅需要2100万个参数和34亿次乘加运算(MACs)。相比之下,成熟的ViT基线模型DeiT - S [53]的准确率略低,为79.8%,并且需要多35%的MACs(46亿次)。为了获得相似的准确率,类似MLP的模型ResMLP - S24 [52]需要多43%的参数(3000万个)以及多76%的计算量(60亿次),但仅达到79.4%的准确率。即使与更先进的ViT和类似MLP的变体模型[35, 57]相比,PoolFormer仍然表现出更好的性能。具体来说,金字塔Transformer模型PVT - Medium的top - 1准确率为81.2%,有4400万个参数和67亿次MACs,而PoolFormer - S36的准确率达到81.4%,参数比PVT - Medium少30%,MACs少25%(50亿次)。
表2. 不同类型模型在ImageNet - 1K分类任务上的性能。所有这些模型都仅在ImageNet - 1K训练集上进行训练,并报告在验证集上的准确率。RSB - ResNet表示结果来自“ResNet Strikes Back”[59],其中ResNet [24] 是使用改进的训练流程训练300个epoch得到的。*表示使用额外正则化训练的ViT结果来自[51]。PoolFormer的乘加运算次数(MACs)是通过fvcore [19]库计算得出的。
深度理解
这张表格主要呈现了不同类型模型在ImageNet - 1K分类任务上的性能对比,有助于评估各模型的优劣以及验证MetaFormer架构的有效性:
- 模型分类对比:表格将模型分为卷积神经网络、基于MetaFormer且使用不同token混合器(注意力、空间MLP、池化)的模型。通过这种分类方式,可以清晰地看到不同架构和token混合方式对模型性能的影响。
- 性能指标呈现:列出了各模型的图像尺寸、参数数量、乘加运算次数以及top - 1准确率。图像尺寸反映了模型输入数据的规格;参数数量和乘加运算次数体现了模型的复杂度和计算成本;top - 1准确率则直观地展示了模型在分类任务上的性能表现。
- PoolFormer优势体现:在基于MetaFormer架构的模型中,使用池化作为token混合器的PoolFormer系列模型,在不同参数规模下,与其他使用注意力或空间MLP作为token混合器的模型以及传统卷积神经网络相比,能够在较少的参数和计算量下达到相当甚至更高的准确率。这表明即使采用简单的token混合方式,基于MetaFormer架构的PoolFormer模型也能取得优异的性能,从而有力地支持了MetaFormer架构对模型性能起关键作用的观点。 该表格为研究人员选择合适的模型以及进一步探索模型架构和组件对性能的影响提供了有价值的参考依据。
此外,与使用改进训练流程训练300个epoch的RSB - ResNet(“ResNet Strikes Back”)[59]相比,PoolFormer的性能仍然更好。RSB - ResNet - 34 [59]有大约2200万个参数/37亿次MACs,获得75.5%的准确率,而PoolFormer - S24可以达到80.3%的准确率。由于池化层的局部空间建模能力比神经卷积层差很多,所以PoolFormer的竞争性能只能归因于其通用架构MetaFormer。
使用池化算子时,每个token均匀地聚合来自其附近token的特征。因此,这是一个极其基础的token混合操作。然而,实验结果表明,即使使用这个极其简单的token混合器,MetaFormer仍然能取得极具竞争力的性能。图3清楚地表明,PoolFormer在MACs和参数更少的情况下超越了其他模型。这一发现表明,通用架构MetaFormer实际上是我们设计视觉模型时所需要的。通过采用MetaFormer,可以保证衍生的模型有潜力取得合理的性能。
翻译
图3. ImageNet - 1K验证集准确率与乘加运算次数(MACs)/模型大小的关系。RSB - ResNet表示结果来自“ResNet Strikes Back”[59],其中ResNet [24] 是使用改进的训练流程训练300个epoch得到的。
深度理解
图3展示了不同模型在ImageNet - 1K验证集上的准确率与乘加运算次数(MACs)以及模型大小之间的关系,主要传达了以下信息:
- 对比模型多样:图中包含了多种类型的模型,如传统的卷积神经网络RSB - ResNet,基于Transformer架构且使用不同token混合器的模型(VIT、DeiT、PVT等),以及基于空间MLP和池化的模型(MLP - Mixer、ResMLP、Swin - Mixer、gMLP、PoolFormer)。这种多样化的模型对比,能全面反映不同架构和设计思路的模型在性能和资源消耗方面的特点。
- 性能与资源关系:左图展示了模型准确率与MACs的关系,从中可以看出,在达到相似准确率的情况下,PoolFormer模型所需的MACs相对较少,说明PoolFormer在计算效率上具有优势;右图展示了模型准确率与模型大小的关系,PoolFormer同样能在较小的模型规模下取得较高的准确率。整体而言,与其他模型相比,PoolFormer在保证准确率的同时,对计算资源和模型参数的需求更低,体现了其高效性和优越性。
- 验证核心观点:这些结果进一步支持了论文中关于MetaFormer架构重要性的观点,即即使PoolFormer使用简单的池化作为token混合器,基于MetaFormer架构的它也能在资源有限的情况下实现较好的性能,强调了MetaFormer架构在模型设计中的关键作用。 图3通过直观的可视化方式,为评估不同模型的性能和资源消耗提供了清晰的参考,也为模型的优化和选择提供了有力的依据。
深度理解
这段文本主要介绍了在ImageNet - 1K数据集上进行图像分类的实验设置和PoolFormer模型的实验结果,核心要点如下:
- 实验设置:详细说明了图像分类实验所使用的数据集ImageNet - 1K,数据增强方法,训练模型的优化器、学习率调整策略、超参数设置,以及对层归一化的改进和实验运行的环境与代码基础。这些设置为实验的准确性和可重复性提供了保障。
- 实验结果:通过与多种模型对比,如ViT基线模型DeiT - S、类似MLP的模型ResMLP - S24、金字塔Transformer模型PVT - Medium以及改进训练流程的RSB - ResNet等,展示了PoolFormer在准确率、参数数量和计算量(MACs)方面的优势。结果表明,尽管PoolFormer使用的池化token混合器很简单,但其基于MetaFormer架构仍能取得极具竞争力的性能。
- 结果分析:指出由于池化层空间建模能力较弱,PoolFormer的良好性能应归因于MetaFormer架构。进而强调了MetaFormer作为通用架构在设计视觉模型时的重要性,即采用该架构能使模型有潜力获得较好性能。这段内容通过严谨的实验和对比分析,有力地支持了作者关于MetaFormer架构重要性的观点,也体现了PoolFormer模型的优势和潜力。
4.2. Object detection and instance segmentation(目标检测和实例分割)
设置:我们在具有挑战性的COCO基准数据集[34]上评估PoolFormer,该数据集包含11.8万张训练图像(train2017)和5000张验证图像(val2017)。模型在训练集上进行训练,并报告在验证集上的性能。PoolFormer被用作两个标准检测器的主干网络,即RetinaNet [33]和Mask R - CNN [23]。使用ImageNet预训练权重来初始化主干网络,并采用Xavier方法[20]初始化添加的层。使用AdamW优化器[29, 37],初始学习率为 1 × 1 0 − 4 1×10^{-4} 1×10−4,批量大小为16。按照文献[23, 33],我们采用1×训练计划,即训练检测模型12个epoch。训练图像被调整大小,短边为800像素,长边不超过1333像素。测试时,图像的短边也调整为800像素。实验基于mmdetection代码库[4]实现,并且在8块NVIDIA A100 GPU上运行。
结果:如表3所示,配备RetinaNet进行目标检测时,基于PoolFormer的模型始终优于与之可比的ResNet模型。例如,PoolFormer - S12的平均精度(AP)达到36.2,大幅超过ResNet - 18(AP为31.8)。在基于Mask R - CNN的目标检测和实例分割任务中也观察到类似的结果。例如,PoolFormer - S12在很大程度上超越了ResNet - 18(边界框AP为37.3对比34.0,掩码AP为34.6对比31.2)。总体而言,在COCO目标检测和实例分割任务中,PoolFormer模型取得了具有竞争力的性能,始终优于ResNet的同类模型。
表3. 在COCO val2017数据集[34]上,使用RetinaNet进行目标检测,以及使用Mask R - CNN进行目标检测和实例分割的性能。使用1×训练计划(即12个epoch)来训练检测模型。 A P b AP^b APb 和 A P m AP^m APm 分别表示边界框平均精度和掩码平均精度。
深度理解
这张表格主要展示了在COCO数据集上不同主干网络(ResNet系列和PoolFormer系列)搭配RetinaNet和Mask R - CNN进行目标检测和实例分割任务的性能对比:
- 任务与模型设置:明确了实验是在COCO val2017数据集上进行,使用RetinaNet和Mask R - CNN作为检测器,且采用1×训练计划(训练12个epoch)。这些设置为对比不同主干网络的性能提供了统一的条件。
- 评估指标丰富:对于目标检测任务,使用了平均精度(AP)、不同IoU阈值下的平均精度( A P 50 AP_{50} AP50、 A P 75 AP_{75} AP75)以及针对不同尺度目标的平均精度( A P S AP_S APS、 A P M AP_M APM、 A P L AP_L APL);对于实例分割任务,使用了边界框平均精度( A P b AP^b APb)及其在不同IoU阈值下的值( A P 50 b AP^b_{50} AP50b、 A P 75 b AP^b_{75} AP75b),还有掩码平均精度( A P m AP^m APm)及其在不同IoU阈值下的值( A P 50 m AP^m_{50} AP50m、 A P 75 m AP^m_{75} AP75m)。多样化的评估指标能全面地衡量模型在不同方面的性能表现。
- PoolFormer优势明显:从表格数据可以看出,在相同的检测器配置下,PoolFormer系列的主干网络在各项指标上普遍优于对应的ResNet系列主干网络。这表明在目标检测和实例分割任务中,PoolFormer作为主干网络能够使模型取得更好的性能,进一步证明了PoolFormer模型的有效性和优越性,也间接支持了MetaFormer架构在视觉任务中的潜力。 这些结果对于研究人员选择合适的主干网络来构建目标检测和实例分割模型具有重要的参考价值。
深度理解
这段文本主要围绕在COCO数据集上使用PoolFormer进行目标检测和实例分割的实验展开,包括实验设置和实验结果两部分:
- 实验设置:明确指出使用COCO基准数据集进行评估,说明PoolFormer作为RetinaNet和Mask R - CNN这两个标准检测器的主干网络。详细介绍了模型初始化方式、优化器、学习率、批量大小、训练计划以及图像预处理等信息,还提及了实验的代码实现基础和运行环境。这些设置为实验的规范性和可重复性提供了保障,也为后续对比不同模型性能提供了统一的条件。
- 实验结果:通过具体的数据对比,表明在目标检测和实例分割任务中,基于PoolFormer的模型在平均精度等指标上始终优于对应的ResNet模型,有力地证明了PoolFormer在这些视觉任务中的有效性和优越性,进一步支持了PoolFormer模型具备良好性能的结论。
4.3. Semantic segmentation (语义分割)
设置:选择具有挑战性的场景解析基准数据集ADE20K [67]来评估语义分割模型。该数据集分别包含2万张训练图像和2000张验证图像,涵盖150个精细标注的语义类别。对配备语义特征金字塔网络(Semantic FPN)[30]的PoolFormer进行评估。使用在ImageNet - 1K上预训练的权重初始化主干网络,同时采用Xavier方法初始化新添加的层。常见做法是对8万次迭代的模型进行训练[5, 30]。为了加快训练速度,我们将批量大小加倍至32,并将迭代次数减少到4万次。使用AdamW优化器[29, 37],初始学习率为 1 × 1 0 − 4 1×10^{-4} 1×10−4,采用幂为0.9的多项式衰减策略来降低学习率。测试时将图像调整大小并裁剪为512×512像素,训练时则调整为较短边固定的尺寸。我们的实现基于mmsegmentation代码库[10],实验在8块NVIDIA A100 GPU上进行。
结果:表4展示了ADE20K语义分割任务的结果。与使用语义FPN的其他主干网络模型进行比较,包括基于Transformer的ResNet [24]和ResNeXt [62] 以及基于Transformer的PVT。例如,PoolFormer - 12的平均交并比(mIoU)达到37.1,分别比ResNet - 18和PVT - Tiny高出4.3和1.5。
这些结果表明,尽管PoolFormer仅使用池化来在token之间进行基本的信息交互,但作为语义分割的主干网络,它仍能获得具有竞争力的性能。这进一步证实了我们的观点,即MetaFormer的强大潜力实际上是我们所需要的。
深度理解
这段内容主要介绍了在语义分割任务中对PoolFormer模型的评估,包括实验设置和结果分析两部分:
- 实验设置:确定使用ADE20K数据集进行语义分割模型的评估,该数据集具有丰富的语义类别标注。说明PoolFormer搭配Semantic FPN进行实验,阐述了模型的初始化方式、训练参数(如迭代次数、批量大小、优化器、学习率及其衰减策略等),以及图像的预处理操作,还提及了实验的代码实现基础和运行环境。这些详细的设置确保了实验能够科学、规范地进行,为模型性能的准确评估提供了条件。
- 结果分析:通过与其他基于不同架构(Transformer、传统网络等)的主干网络模型对比平均交并比(mIoU)这一关键指标,显示出PoolFormer在语义分割任务中具备良好的性能优势。即使PoolFormer采用的池化操作相对简单,但基于MetaFormer架构,依然能在该任务中取得有竞争力的结果,从而有力地支持了作者关于MetaFormer架构重要性和潜力的观点。
4.4. Ablation studies(消融实验)
消融研究实验在ImageNet - 1K数据集[14]上进行。表5报告了PoolFormer的消融研究结果。我们根据以下几个方面来讨论消融实验的结果。
Token混合器:与Transformer相比,PoolFormer的主要变化是使用简单的池化作为token混合器。我们首先对这个算子进行消融实验,直接用恒等映射替换池化操作。令人惊讶的是,采用恒等映射的MetaFormer仍然可以达到74.3%的top - 1准确率,这支持了我们的观点,即MetaFormer实际上是保证模型具有合理性能的关键。
然后,将每个模块中的池化操作替换为全局随机矩阵 W R ∈ R N × N W_R \in \mathbb{R}^{N\times N} WR∈RN×N。该矩阵使用区间[0, 1)上均匀分布的随机值进行初始化,然后使用Softmax对每行进行归一化。随机初始化后,矩阵参数被固定,它通过 X ′ = W R X X' = W_RX X′=WRX进行token混合,其中 X ∈ R N × C X \in \mathbb{R}^{N\times C} X∈RN×C是输入的token特征, N N N为token长度, C C C为通道维度。对于S12模型,由于第一阶段的token长度非常大,随机矩阵的token混合器会引入额外的2100万个固定参数。即使采用这种随机的token混合方法,模型仍然可以达到75.8%的合理准确率,比恒等映射高出1.5%。这表明,即使使用随机的token混合方式,MetaFormer仍然可以很好地工作,更不用说使用其他精心设计的token混合器了。
此外,池化操作被替换为具有可学习参数的深度卷积[9, 38],用于空间建模。不出所料,得到的模型仍然具有极具竞争力的性能,top - 1准确率达到78.1%,由于其更好的局部空间建模能力,比PoolFormer - S12高出0.9%。到目前为止,我们在MetaFormer中指定了多种token混合器,并且所有得到的模型都取得了不错的结果,有力地支持了MetaFormer是保证模型竞争力的关键这一观点。由于池化操作的简单性,它主要被用作证明MetaFormer的一个工具。
我们测试了池化大小对PoolFormer的影响。当池化大小为3、5和7时,我们观察到性能相似。然而,当池化大小增加到9时,性能明显下降了0.5%。因此,我们为PoolFormer采用默认的池化大小3。
归一化:我们将层归一化[1]修改为改进的层归一化(MLN),与原始层归一化仅在通道维度上计算均值和方差不同,MLN在token和通道维度上计算均值和方差。MLN的可学习仿射参数的形状与层归一化相同,即 R C \mathbb{R}^{C} RC。MLN可以在PyTorch中使用GroupNorm API实现,将组数设置为1。详情见附录。我们发现PoolFormer更倾向于使用MLN,使用MLN时的性能比使用层归一化或批归一化高出0.7%或0.8%。因此,MLN被设置为PoolFormer的默认归一化方式。当去除归一化操作时,模型无法很好地训练收敛,其性能急剧下降到仅46.1%。
激活函数:我们将GELU [25]替换为ReLU [41]或SiLU [18]。当采用ReLU作为激活函数时,观察到明显的性能下降,为0.8%。对于SiLU,其性能几乎与GELU相同。因此,我们仍然采用GELU作为默认的激活函数。
其他组件:除了上述讨论的token混合器和归一化之外,残差连接[24]和通道MLP [46, 47]是MetaFormer中的另外两个重要组件。如果没有残差连接或通道MLP,模型无法收敛,只能达到0.1% / 5.7%的准确率,这证明了这些部分的不可或缺性。
混合阶段:在基于池化、注意力和空间MLP的token混合器中,基于池化的混合器可以处理更长的输入序列,而注意力和空间MLP擅长捕捉全局信息。因此,直观的做法是在底层阶段堆叠基于池化的MetaFormer模块来处理长序列,在顶层阶段使用基于注意力或空间MLP的混合器,因为此时序列已经大幅缩短。因此,我们在PoolFormer的顶部一两个阶段将token混合器的池化操作替换为注意力或空间全连接层。从表5中可以看出,混合模型的性能相当不错。在底部两个阶段使用池化,在顶部两个阶段使用注意力的变体模型具有极具竞争力的性能。它仅用1650万个参数和25亿次乘加运算(MACs)就达到了81.0%的准确率。相比之下,ResMLP - B24需要7.0倍的参数(1.16亿个)和9.2倍的MACs(230亿次)才能达到相同的准确率。这些结果表明,将池化与MetaFormer的其他token混合器相结合,可能是进一步提高性能的一个有前途的方向。
深度理解
这段文本主要围绕PoolFormer模型展开了一系列消融研究,通过改变模型的不同组件和设置,探究各部分对模型性能的影响,具体内容如下:
- Token混合器:通过将池化操作替换为恒等映射、随机矩阵、深度卷积,以及改变池化大小,验证了MetaFormer架构的重要性。不同的token混合方式下模型都能取得一定性能,说明MetaFormer是模型性能的关键;同时,深度卷积替换池化能提升性能,且合适的池化大小对模型性能有影响 。
- 归一化:将层归一化改进为MLN,并对比不同归一化方式对模型的影响,发现PoolFormer更适应MLN,且去除归一化会导致模型性能大幅下降,强调了归一化操作在模型训练和性能表现中的重要性。
- 激活函数:测试不同激活函数GELU、ReLU、SiLU,结果表明GELU作为默认激活函数性能较优,ReLU会导致性能下降,SiLU与GELU性能相近。
- 其他组件:验证了残差连接和通道MLP在MetaFormer中的不可或缺性,缺少它们会使模型无法收敛,性能极低。
- 混合阶段:基于不同token混合器的特点,提出在模型不同阶段使用不同混合器的混合模型。实验表明,这种混合方式能使模型在参数和计算量更少的情况下达到较好性能,为提升模型性能指出了新方向。 整体而言,这些消融实验从多个角度深入分析了PoolFormer模型各部分的作用,进一步论证了MetaFormer架构的重要性和潜力,也为模型的优化和改进提供了依据。
5. Conclusion and future work(结论与未来工作)
在这项工作中,我们将Transformer中的注意力机制抽象为一种token混合器,并将整个Transformer抽象为一种通用架构,称之为MetaFormer,其中不指定具体的token混合器。我们指出,与关注特定的token混合器不同,MetaFormer实际上才是保证模型取得合理性能的关键。为了验证这一点,我们特意将MetaFormer的token混合器指定为极其简单的池化操作。结果发现,由此衍生的PoolFormer模型能够在不同的视觉任务中取得具有竞争力的性能,这有力地支持了 “对于视觉任务,MetaFormer才是你真正需要的” 这一观点。
在未来,我们将在更多不同的学习场景下进一步评估PoolFormer,比如自监督学习和迁移学习。此外,探究PoolFormer在自然语言处理(NLP)任务中是否仍然有效,从而在NLP领域进一步支持 “MetaFormer才是你真正需要的” 这一观点,也是一件很有趣的事情。我们希望这项工作能够激发未来更多的研究致力于改进基础架构MetaFormer,而不是过度关注token混合器模块。
深度理解
这段内容主要包括研究结论和对未来研究的展望两部分:
- 研究结论:作者将Transformer中的注意力机制抽象为token混合器,把Transformer整体抽象成不明确指定token混合器的MetaFormer通用架构。通过使用简单的池化操作作为MetaFormer的token混合器构建PoolFormer模型,并在不同视觉任务上的实验表明,即使token混合器很简单,基于MetaFormer架构的PoolFormer仍能取得不错的性能,进而强调了MetaFormer架构对于模型性能的关键作用。
- 未来工作:作者计划在自监督学习、迁移学习等不同学习设置下进一步评估PoolFormer的性能;还打算探索PoolFormer在NLP任务中的有效性,以验证MetaFormer在NLP领域的重要性。同时,作者希望该研究能引导后续研究更多地聚焦于改进MetaFormer架构,而不是把过多精力放在token混合器模块上,为相关领域的研究方向提供了新的思路 。
Acknowledgement(致谢)
作者们感谢Sea AI实验室的傅全宏在本文技术写作方面提供的帮助。于伟豪感谢TPU研究云(TRC)计划和谷歌云研究资助对部分计算资源的支持。 该项目部分得到了新加坡国立大学教师研究委员会资助(项目编号:A-0009440-00-00)。闫水成和王新潮是本文的通讯作者。