Transformer的终章还是新起点?颜水成团队新作:MetaFormer才是你真正需要的!

极市平台

共 3876字,需浏览 8分钟

 · 2021-11-27

↑ 点击蓝字 关注极市平台

作者丨happy
来源丨AIWalker
编辑丨极市平台

极市导读

 

本文是颜水成团队在Transformer架构方面的思考,提出了一种更广义的MetaFormer。基于近来层出不穷Transformer与MLP等架构的分析,认为:Transformer的成功源自其广义架构,而非自注意力或者SpatialMLP并通过PoolFormer验证了猜想的正确性。 >>加入极市CV技术交流群,走在计算机视觉的最前沿

Transformer在CV领域的成功到底是什么呢?最近一年来各种Transformer与MLP架构设计意义真的有那么大呢?CV老将“水哥”颜水成团队最新提出的MetaFormer可能提供了一个非常有价值的参考。这会不会意味着Transformer的终章呢?

要知道,水哥团队曾终结PASCAL VOC,同时也是ImageNet的“终结者”。也许,MetaFormer的出现也将意味着Transformer的落幕;当然,也许会是Transformer的新起点...

文章链接:https://arxiv.org/abs/2111.11418

代码链接:https://github.com/sail-sg/poolformer

Abstract

Transformer在CV任务中表现出了极大的潜力。在初期,一般会认为自注意力机制对于其性能起关键性做种。然而,近期的一些研究表明:Transformer中的自注意力模块替换为SpatialMLP表现仍然非常好。

基于该发现,我们假设:Transformer的广义架构(而非特定的token混合模块)对其性能起关键作用 。为进行验证,我们采用简单的空域池化替代自注意力模块以执行token混合。令人惊讶的是,我们发现所得模型PoolFormer在多个CV任务上均取得了极具竞争力的结果。比如,PoolFormer在ImageNet上取得了82.1%的top1精度,超过了精心设计的DeiT-B、ResMLP-B24,同时具有更少的参数量(分别少35%、52%)和MACs(分别少48%、60%)。

PoolFormer的有效性验证了我们的假设,促使我们提出了MetaFormer:一种由Transformer抽象出来未制定token混合操作的架构。充分的实验表明,MetaFormer是Transformer与MLP等架构取得超高性能的关键

我们呼吁更多的研究对MetaFormer进行改进而非聚焦于token 混合模块。此外,所提PoolFormer可作为未来MetaFormer架构研究的起始基线。

Method

我们首先给出MetaFormer的核心概念,见上图。MetaFormer是一种广义架构,它的token mixer并未具体制定同时保持其他成分与Transformer一致。类似ViT,输入图像首先经由Input Embedding进行处理,

其中,表示词嵌入,序列长度为N,维度为C。

然后,词嵌入经由多个MetaFormer模块进行处理,每个模块包含两个残差子模块。具体来说,第一个子模块主要包含token mixer进行token通信,可描述为:

一般来说,Transformer中的TokenMixer采用不同的自注意力,而在MLP架构中则采用不同的Spatial MLP。

第二个子模块是一个两层MLP,描述如下:

PoolFormer

已有的Transformer架构大多聚焦于自注意力的改进,而对其广架构的重要性较少关注。

我们认为:MetaFormer这种广义架构对于Transformer与MLP架构的成功起关键性作用 。为进行验证,我们采用了简单的pooling进行token mixer。该操作没有可学习参数,仅通过平均聚合近邻token。

由于该工作聚焦于CV任务,我们假设输入为通道优先,即,此时pooling操作可描述如下:

由于MetaFormer模块已经存在了残差连接,所以上式中引入了减操作。Pytorch实现code如下:

众所周知,自注意力与SpatialMLP的计算复杂度与token数量成二次关系。更严重的是,当处理长序列时,SpatialMLP会带来大量的参数。这就导致了自注意力与SpatialMLP仅能处理百这个量级的token;相反,pooling的计算复杂度与token数量成线性关系且无可学习参数。因此,我们类似CNN采用分层架构充分利用Pooling的优势。

上图给出了PoolFormer的整体架构示意图,下表给出了不同PoolFormer架构的参数配置信息。

Experiments

ImageNet Classification

上表给出了ImageNet分类任务上的性能对比,从中可以看到:

  • 相比CNN、Transformer以及MLP等架构,PoolFormer取得了极具竞争力的结果;

  • PoolFormer-S24仅需21M参数+3.6GMACs即可取得超80%的top1精度;而ResMLP-S24需要30M参数量+6.0GMACs也只能达到79.4%精度。

  • PVT-M需要44M参数量+6.7GMAC取得81.2%,而PoolFormer-S35仅需31M+5.2GMACs即可取得81.5%精度;

  • 相比RegNet,在相同参数量下,RegNetY-4GF以4.0GMACs取得了80.0%精度,而PoolFormer仅需3.6GMACs取得了80.3%精度。

上图给出了不同模型的MAC、参数量与精度的关系图,很明显:PoolFormer以更少的MACs和参数量超越了其他模型 。进一步说明,广义架构MetaFormer是我们设计CV模型时所真正需要的

Object Detection and instance Segmentation

上表给出了COCO检测任务的性能对比,可以看到:

  • 基于RetinaNet框架,PoolFormer取得了比ResNet更佳的性能;

  • PoolFormer-S12取得比了ResNet-18更高的性能:36.2vs31.8,性能提升高达4.4。

上表给出了COCO分割任务上的性能对比,可以看到:

  • 基于Mask R-CNN框架,PoolFormer取得了比ResNet更佳的性能;

  • PoolFormer-S12取得了大幅超越ResNet-18的性能,box与mask指标分别提升2.7与3.4.

  • 总而言之,PoolFormer在COCO检测与分割任务上取得了一致性能提升,超越了基线ResNet。

Semantic Segmentation

上表给出了ADE20K分割任务上的性能对比,可以看到:PoolFormer取得了比ResNet、ResNeXt以及PVT更优秀的性能 。比如,PoolFormer-S12取得了37.2mIoU,以4.3优于ResNet-18,以1.5优于PVT-Tiny。

Ablation Studies

相比Transformer,PoolFormer的主要改变在于:采用Pooling提换自注意力进行token mixer。我们首先对此进行了消融分析,见下表。

从上表可以看到:

  • 将Pooling替换为Identity后,所提模型仍可取得74.3%top1精度,进一步支持本文的声明:MetaFormer是我们实际所需的确保合理性能的架构;

  • 不同的池化尺寸(3、5、7)对于性能的影响非常小,当尺寸提升到9后看到了性能下降,故我们采用池化尺寸3;

  • 相比BN与LN,GN更适合PoolFormer,性能提升分别为0.8%和0.7%,因此,我们默认选择GN;

  • 在激活函数方面,GELU与SiLU性能相当,而ReLU会造成性能下降;

  • 在混合配置方面,Pool+Pool+Attention+Attention的组合具有最佳性能81%;其他配置同样非常好的性能。这说明,对于MetaFormer来说,组合Pooling与其他token mixer技术可能是一个提升模型性能的有价值的研究方向。

参考实现

如果觉得有用,就请分享到朋友圈吧!

△点击卡片关注极市平台,获取最新CV干货

公众号后台回复“transformer”获取最新Transformer综述论文下载~


极市干货
课程/比赛:珠港澳人工智能算法大赛保姆级零基础人工智能教程
算法trick目标检测比赛中的tricks集锦从39个kaggle竞赛中总结出来的图像分割的Tips和Tricks
技术综述:一文弄懂各种loss function工业图像异常检测最新研究总结(2019-2020)


CV技术社群邀请函 #

△长按添加极市小助手
添加极市小助手微信(ID : cvmart4)

备注:姓名-学校/公司-研究方向-城市(如:小极-北大-目标检测-深圳)


即可申请加入极市目标检测/图像分割/工业检测/人脸/医学影像/3D/SLAM/自动驾驶/超分辨率/姿态估计/ReID/GAN/图像增强/OCR/视频理解等技术交流群


每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企视觉开发者互动交流~



觉得有用麻烦给个在看啦~  
浏览 63
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报