本文经AI新媒体量子比特(公众号ID:QbitAI)授权转载,转载请联系出处转载。Transformer在视觉上取得了巨大的成功,各大变种频频上榜。他们之中谁最强?早期人们认为attention机制贡献最大,对attention模块做了很多改进。随后的研究发现,在没有注意力的情况下切换到SpatialMLP也非常有效,甚至使用傅里叶变换模块也能保留97%的性能。争议之下,闫水成团队的最新论文给出了不同的观点:其实这些具体的模块并不重要,Transformer的成功来自于它的整体架构。他们用一个简单的空间池化算子替换了Transformer中的注意力模块,新模型被命名为PoolFormer。这里的原话很有意思,“简单到尴尬”……在测试结果中,PoolFormer在ImageNet-1K上获得了82.1%的top-1准确率。(PyTorch版本的代码已经随论文发布在GitHub上,地址可在本推文末尾获取。)在相同的参数大小下,simplepoolingmodel超过了一些tunedmethodsusingattention(如DeiT)或MLP模型,用于ResMLP等模块。这个结果让一些围观的CV们惊掉了下巴:我很好奇,模型怎么会简单到让人尴尬?PoolFormer的整体结构与其他模型类似,PoolFormer只是改变了tokenmixer部分。因为主要验证视觉任务,所以假设输入数据的格式是channel-first,pooling算子描述如下:PyTorch风格的伪代码大致是这样的:pooling算子的复杂度比它小self-attention和SpatialMLP一样,它类似于待处理的序列长度是线性的。没有可学习的参数,所以可以采用类似传统CNN的staged方法来充分发挥性能。这次模型分为4个阶段。假设一共有L个PoolFormer块,那么四个stage分别分配为L/6、L/6、L/2、L/6。每个阶段的具体参数如下:介绍完PoolFormer的基本情况,下面开始与其他模型的性能对比。首先是图像分类任务,对比模型分为三类:CNN模型ResNet和RegNetYViT,DeiTandPVTusingtheattentionmoduleMLP-Mixer,ResMLP,Swin-MixerandgMLPusingSpatialMLPonImageNet-1K,无论PoolFormer的性能是否超过相同大小的其他模型,无论是基于乘加运算(MAC)的累积数量还是基于参数大小。COCO数据集用于目标检测和实例分割任务。在这两项任务中,PoolFormer以更少的参数实现了比ResNet更高的性能。△目标检测△实例分割最后是ADE20K语义分割任务,PoolFormer的性能也超越了ResNet、ResNeXt和PVT。从消融实验可以看出,PoolFormer在几个主要的视觉任务上都取得了有竞争力的结果。然而,这不足以支持本文开头提出的观点。整体架构重要吗?或者PoolFormer中的池化模块只是一个简单但有效的TokenMixer?团队的验证方式是直接用IdentityMapping替换pooling模块。结果令人惊讶,在替换后的ImageNet-1K上也保留了74.3%的Top-1准确率。在此基础上,无论是改变poolingkernelsize、normalizationmethod,还是activationfunction,都影响不大。最重要的是,在四个阶段中,attention、spatialfullyconnectedlayers等混合机制对性能的影响很小。其中,特别观察到前两个阶段的池化和注意力的结合非常突出。这样的配置下,只要稍微增加刻度,刻度精度就可以达到81%。作为对比,ResMLP-B24模型需要7倍的参数规模和8.5倍的累积乘加运算才能达到相同的性能。最后,消融实验的结果表明,Transformer中特定于tokenmixer的部分使用哪种方法并不关键。在不增加模型尺寸的情况下,网络的整体结构对于性能提升最为重要。这样一个整体结构被团队细化并命名为MetaFormer。还会建立在NLP之上吗?该研究由闫水成领导的SeaAILab与新加坡国立大学的成员共同完成。△闫水成论文的最后,团队表示接下来的研究方向是在更多的场景下继续验证,比如自监督学习和迁移学习。除了视觉任务,还需要看结论是否对NLP任务也有效。此外,本文还有一个目的:呼吁大家把精力放在优化模型的基础结构上,而不是花太多精力打磨特定的模块。论文地址:https://arxiv.org/abs/2111.11418GitHub仓库:https://github.com/sail-sg/poolformer
