近期 Google brain、Oxford、清华大学等研究机构分别发表了自己对多层感知机(MLP)在视觉分类中起到作用的重定位,引起了广泛的学界思考。
图像分类(image classification)一直都是计算机视觉研究中非常基础且重要的一类任务,在深度学习为主导的近十年中已经普遍继承了通用卷积神经网络(CNN)的基本范式,大部分思路多着眼于不同网络模型的设计和模块创新,少有直接对卷积神经网络本身既定框架的颠覆性工作。Transformer 在自然语言处理任务上获得成功之后,注意力机制(attention)在视觉任务方向也获得很多关注和应用,它们中的大多数工作也被认为是十分有效的性能提升部分。
然而近期 Google brain, Oxford, 清华大学等研究机构分别发表了自己对多层感知机(MLP)在视觉分类中起到作用的重定位,引起了广泛的学界思考:深度学习网络是否经历了从 CNN 开始一系列的主干变化之后,重新收敛于普通简明的多层 MLP 范式了?MLP 框架是否存在普适性,潜在的科研和商用价值有多高?新的框架提出又会对之后的视觉研究和技术应用提供哪些潜在的可能性和创新启发呢?
本文基于以上的问题,结合作者最近读过的上述三篇 MLP 论文,单对神经网络模型相关的图像分类任务做一个简单的发展梳理,之后针对近期提出的三篇论文,将其所提到的方法进行概述和观点提炼,并尝试总结此类研究所带来的的意义和未来潜力。
0. 神经网络图像分类发展简述
其实早在 20 世纪,使用神经网络进行图像分类就有 Neocognitron,ConvNet,以及 LeNet 等早期的雏形,如 LeNet 非常有效地完成了受限于数字识别的任务,且卷积的概念也早早出现,然而因为计算机算力的不足在较长一段时间内并没有取得更多的进展。
大部分人更加熟悉的在于 2012 年 AlexNet 利用 GPU 在当年的视觉图像分类挑战赛(ImageNet)上取得了非常惊人的 Top-1 准确度,之后以卷积层为范式的卷积神经网络(CNN)发展出多种经典模型。
在 2014 到 2017 年间,Inception, ResNet, VGG 等模型均达到了非常好的 SOTA 性能,其设计的小卷积核感受野,多路跨层链接等等模块设计都被证明非常的有效。在很长一段时间内 CNN 作为骨干是处理深度视觉任务的不二之选,可参考下图各个经典 CNN 网络模型的提出和演变过程:
接下来便是 2017 年附近,人们发现注意力机制在捕捉及加强视觉特征提取过程中也非常有效,并有了少量工作进行尝试。2018 年左右,本用于自然语言处理的 Transofmer 被发现其在视觉分类等等任务方面也有非常强的可迁移性,于是 Transformer 成为了近两年来炙手可热的视觉研究主题,人们前所未有的关注图像局部块之间的上下文关系,将卷积网络时期的感受野学习进一步改善为特征或图像块之间的关联学习。注意力相关的工作也有了井喷式发展,比如 Vit[9], Deit[10] 就是最初有效融合 Transformer 思想的工作,DeepViT[11] 则是尝试混合多个注意力模块(attention head mixing),CaiT[12]将原 Transformer 中的注意力层分化为两个阶段进行学习,CrossViT[13],PiT[14],LeViT[15],CvT[16]以及其他更多相关工作都把 Transformer 对于全局长依赖捕捉的优点更近一步发扬,且尝试与之前的 CNN 中被证明非常有效的模块如池化(pooling)相结合,引领了 CNN 之后的另一轮模型革新潮流。
1. 注意力是分类性能的保障吗?
Do You Even Need Attention? A Stack of Feed-Forward Layers Does Surprisingly Well on ImageNet
在引入当前激烈讨论的 MLP-Mixer 模型之前,我们首先来看这篇牛津大学的 4 页研究报告,一定程度上它简明地回答了一个问题:注意力机制是保障图像分类任务性能的关键吗?我们知道自从 Transformer 被证明在视觉任务上同样可行后,许多视觉相关的任务也随之应用该范式,且普遍都将性能提升归功于注意力机制,声称注意力机制为网络引入了全局感受野(global receptive field),并在不同的工作中致力于提升注意力模块的效率及有效性。于是该文章在 ImageNet 数据集上做了一个 “严格控制变量” 的图像分类实验:在不改动注意力分类网络其他结构和参数设置的情况下,单纯将每个注意力网络层替换为一个简单的前传网络层(feed-forward layer),由此原先的 Transformer 模型可被看为由多层前传网络层构成的一个 MLP 分层网络,如左下图所示。
在实验部分,论文作者采用了目前 Transformer 分类器中的代表作 ViT 以及 DeiT,继承其所有的模型结构与超参设置,并依据 ViT,Deit 的 Tiny, Base, Large 三个网络结构,在 ImageNet 数据集上训练了三个 feed-forward only 模型(FF only)。参照右上图训练结果,Tiny 网络中 FF only 模型表现相比于 attention 模型,参数数目较多的情况下性能也并不占优。然而当模型增大为 Base 与 Large 时,仅有前传层的 FF only 表现就非常的惊艳了,在参数数目相比也较少的情况下,纯前传层构成的 MLP 模型 FF only 取得了几乎持平甚至占优的 Top-1 分类精确度,这从侧面也说明了MLP 模型在较复杂较大的网络中有不俗的表征能力。
为了更加公平的比较,论文作者也试图将所有前传层都替换为注意力层,类比实现一个 attention only 的模型来进一步探究注意力机制的表现力,然而注意力网络在 tiny 模型上训练了 100 个 epochs 之后也只能达到 28.2% 的 top-1 准确度。由以上实验,论文作者推断一个好的 Transformer 分类器并不一定需要注意力模块来保障性能,可能是图片块的映射嵌入(embedding)或者 Transformer 本身自成体系的训练流程保证了性能的优越性。
下图附上 FF only 模型中替换注意力模块的线性前传模块,可以看出实现直观简单,感兴趣的读者同样可以根据此做更多的扩展性探索和实验。
总体来说这篇文章提出的问题非常鲜明,提出的论证过程本身也非常有趣。论证的过程虽然实验设置相对有限,但也在一定程度上回答了开头的疑问:特定的注意力模块并不一定就是性能保证,同时文章非常吸引人的一点在于,它为业界指出了一种可能性:当你面临较大模型的需求时,根据实验中 MLP 模型的表现力来看,它很有可能成为一个保证性能同时节省性能的不错替代方案。
2. MLP 有望成为新的视觉范式
MLP-Mixer: An all-MLP Architecture for Vision
通过牛津大学的文章我们了解到多层感知机(MLP)的表现能力不俗,在替换了视觉 Transformer 模型中的注意力模块之后依然能够实现优秀的分类性能,而被持续关注多时的注意力模块似乎并不能独当一面——在单独存在时作为一种新的计算范式去支撑一个高精度的模型,其本身也更多还是依托于一个好的骨干模型。谷歌大脑近期提出的 MLP-Mixer 就更进一步,让我们看到 MLP 模型完全有机会成为与传统卷积网络(CNN),Transformer 之后的下一种视觉研究范式。
自从深度学习兴起,它一直倾向于直接从原始数据中学习所需要的视觉特征,尽可能避免认为构造特征或设置归纳偏置, CNN 一直默认为此种学习思想下的一种标准,一两年前视觉的 Transformer 取得了 SOTA 的成绩,成为了另一个可选项。不同于前两者,谷歌提出的 MLP-Mixer 结构完全摒弃了卷积或是注意力机制,完全基于多层感知机结构,只依赖基础的矩阵相乘,重复地在空间特征或者通道特征上计算抽取。
MLP-Mixer 的结构如下图所示:
首先将大小为 HxW 的的输入图像切割为不重合的 S 个小方块(Patch),每个方块的分辨率均为 PxP,随之所有图像方块经过统一的线性映射变为隐藏维度是 C 的张量,由此输入 MLP-Mixer 的数据就转换为一个维度 SxC 的二维矩阵表 X,X 在之后的计算流程会经过多个 Mixer 层,其包含两类 MLP 计算层:a.token-mixing MLPs 和 b.channel-mixing MLPs, X 首先通过 token-mixing MLP 计算不同方块张量之间的联系,获得特征 U,之后再经过 channel-mixing MLPs 来计算通道之间的特征 Y:
在模型的最后 MLP-Mixer 也接了一个常见的全连接分类模块,来完成最终的类别预测。除此之外,MLP-Mixer 由于采用的 token-mixing MLP,导致它并不需要输入图片的位置编码信息,本身就对每个图像块的位置有了一定的敏感度,同时其采用的参数绑定(parameter tying) 也使得参数体量能够大幅度的减少。
实验部分作者采用了三个规格的模型大小分别为 base(B),large(L), huge(H), 对应的 MLP-Mixer 模型不仅在 ImageNet 与 JFT-300M 这几个大数据集上进行了 pre-train,也同时通过在中小数据集上微调(fine-tune)来进一步测试 MLP-Mixer 的迁移学习能力。与此同时与 MLP-Mixer 对比的模型均为 CNN 类别或者 Transformer 类别中实现 SOTA 性能的模型,例如 HaloNet,ViT。
通过实验结果汇总,也可以看出无论是预训练或是微调迁移,MLP-Mixer 虽然没有能达到 SOTA 的精度,但是各方面已经可以与当今的两个主流 SOTA 模型相当,同时在效率吞吐方面也存在着不错的优势。
更进一步,文章将每个输入图片方块的权重进行了可视化,可以观察的出来由粗到细、由轮廓到慢慢具象化的一个演变过程其实与 CNN 中提取视觉特征的过程也是有异曲同工之妙的。
总的来说,这篇文章提出了一个非常新颖但是有效的网络结构,涉及的方法理论并不复杂且模型结构直观,实验全面详实,是一篇非常有启发性的的 MLP 分类开山之作。尤其需要指出的是,在 MLP-Mixer 的结构描述中,对于如何设置各个 MLP 模块的顺序,以及如何进行图像映射,包括同样沿用了一个非常经典的 skip-connection 结构等方面看,是否也从某个侧面呼应了第一篇中 FF only 的部分猜想:怎样进行特征的嵌入映射,与一个合理的训练计算流程,或许才是一个高精度模型背后的支撑面。
从学术研究的角度看,MLP-Mixer 的提出启发更多学者关注到 MLP 网络结构是有潜能成为继 CNN,Transformer 之后的第三种范式的,更加先进有效的网络结构甚至微调延伸,也会不断出现并帮助完善这个研究分支。工业化部署的方面看,MLP 模型也确实为不少在性能和效率的 trade-off 之间挣扎的企业和工程师提供了新的思路,尽管目前的 MLP-Mixer 并不是精确度最优的解,但是其在效率利用甚至内存节省方面似乎看起来会比注意力机制为主的 Transformer 有更多的想象空间。
希望详细了解 MLP-Mixer 计算细节的读者可以参考我们之前的文章[7],[8]。
3. MLP 与 CNN 的结合
RepMLP: Re-parameterizing Convolutions into Fully-connected Layers for Image Recognition
清华的这篇 RepMLP 是一种 MLP 与 CNN 进行结合的新尝试,它尝试将各自网络模块的优势进行混合来实现更好的性能提升,并不限于分类,而是在多个视觉任务方面都给了我们一些全新的启发。已知全连接层通常来说更加擅长于建立特征的长依赖关系与空间关系,但是并不擅长于捕捉局部的特征或模式识别,这也一定程度上解释了 ViT 之类的模型为何需要数量更加庞大的训练集或者充分的数据扩增(data augmentation),二者都有类似难以建立局部特征的毛病。于是文章提出了 RepMLP,模型主体利用多层神经网络提取长期依赖关系与空间信息,同时利用结构化的重参数化(re-parameterization),在网络训练时候将多个卷积模块与全连接并行,用其抽取对应的局部先验知识并最后进行信息融合汇总。且 RepMLP 还巧妙地利用重参数化将推理时的参数与训练时的参数进行了再度转化,从而实现推理模型精简的目的。
RepMLP 模型总的来说并不复杂可参考其结构图如下:
对于模型具体可导性证明感兴趣的读者可以阅读原文阐述,在此我们就不过多赘述了。
RepMLP 亮点着眼于其针对多个视觉任务的扩展尝试,首先在分类任务上,就可以看出无论是小数据集 CIFAR10 还是超大数据及 ImageNet,MLP 结构的网络均取得了非常不错的效果:在 CIFAR10 数据集上,纯粹的 MLP 就已经实现了 91.11 的准确度,直逼最佳精度:
在 ImageNet 上,RepMLP 也同样比起原有的骨干网络实现了性能的超越:
更进一步,在之后扩展实验涉及到的人脸识别以及语义分割任务上,RepMLP 比起原先的骨干网络,都各自取得了更加的精度效果。
在人脸识别任务上拿到了 95.9% 的 SOTA 成绩,且推理效率也相对更优:
另一方面,在图像分割任务上,虽然 RepMLP 相对速度较慢,但是在精度方面也实现了更高的成绩。
这篇论文亮点在于将 MLP 与 CNN 结合进行了多个视觉任务的尝试并且都证明了 MLP 的强表征性,唯一美中不足就是模型本身其实还是沿用了不少 CNN 分支中的经典模型作为骨干网络,在 MLP 范式中进行进一步更新修改,某种程度上难以分清优越的性能更多是由哪一部分模块进行贡献的。
4. MLP 三篇工作总结以及未来研究意义
本文介绍到的三篇工作起点和方法都不同,但是也确实通过各自的角度让我们看到了 MLP 模型拥有的潜力。多层感知机在深度学习视觉方向最初就被认可其强大的特征表征力,然而研究的初期更多是受限于设备算力,在机器算力支持度增加的今天,原有的限制其实已不复存在,我们可以看到近一两年风头无几的 Transformer 与图网络(Graph Neural Network), 都是在视觉任务学习中能有效捕捉关联依赖信息的代表技术,视觉任务的研究对象也从最初的二维图像为主,演进为视频序列学习再到如今的 3D 数据学习,数据块甚至是特征块之间的 “关联学习” 会占有更多的关注度。由此我们转过头来看 MLP,其本身带有的特征表现力和长距离依赖捕捉都是在视觉任务如今越来越强调 “关联学习” 的情况下非常有竞争力的特质,三篇文章从各自的角度让我们看到了 MLP 在图像分类这一任务上的卓越能力,也让我们看到 MLP 方向进行新一轮视觉任务网络结构探索的趋势:谷歌论文提出一个纯 MLP 的新型网络结构,牛津论文强调了 MLP 本身的强表征力,以及暗示了嵌入和网络结构合理设计对性能的重要性,清华的文章则让我们看到 MLP 有在多类型视觉任务上开花的可能性。
所以我们不妨大胆假设,MLP 在未来视觉研究中,比起目前 MLP-Mixer 这个雏形网络,更合理更高效的网络结构也会脱颖而出。另一方面,根据目前已经有的几篇工作,可以看到 MLP 在今后的工业化部署之中也有不消的开发潜力,其一,MLP 模型的代码实现是非常直观简洁的,根据三篇论文开源的代码都可以看到并没有涉及太多的 trick,所以在商业化应用的部署中就会减少复杂度和黑箱不确定性;其二当模型规模变大时,MLP 模型的参数量和计算效率均优于同期的 CNN 与 Transformer,且在性能方向几乎持平,那么对于要求性能的应用,相比模型剪枝或者参数蒸馏,MLP 显然不需要在性能和效率之间过多的取舍,会是非常有潜力的一种通用解决方案。经上所述,笔者认为 MLP 未来在网络结构革新、除分类外的多类视觉任务探索,外加商业部署应用方向其实都有非常多的细致工作值得学者们去探索和实现。
更多相关研究:
自谷歌MLP-Mixer论文公开后,各大高校与企业实验室也在争相发布相关研究,这段时间机器之心报道了多篇相关研究,具体内容可查阅:
- 2021年机器学习什么风向?谷歌大神Quoc Le:把注意力放在MLP上
- 前馈网络+线性交互层=残差MLP,Facebook纯MLP图像分类架构入场
- MLP回归,无需卷积、自注意力,纯多层感知机视觉架构媲美CNN、ViT
欢迎大家持续关注,也欢迎做相关研究的读者们积极投稿。
引用文献:
1. A Survey of the Recent Architectures of Deep Convolutional Neural Networks https://arxiv.org/ftp/arxiv/papers/1901/1901.06032.pdf
2. Deep Learning in Image Classification: A Survey Report https://conferences.computer.org/ictapub/pdfs/ITCA2020-6EIiKprXTS23UiQ2usLpR0/114100a174/114100a174.pdf
3. MLP-Mixer: An all-MLP Architecture for Vision https://arxiv.org/pdf/2105.01601.pdf
4. Do You Even Need Attention? A Stack of Feed-Forward Layers Does SurprisinglyWell on ImageNet https://arxiv.org/pdf/2105.02723.pdf
5. RepMLP: Re-parameterizing Convolutions into Fully-connected Layers forImage Recognition https://arxiv.org/pdf/2105.01883.pdf
6. 7 Papers & Radios | 纯 MLP 图像分类架构;基于强注意力的跟踪器网络 https://mp.weixin.qq.com/s/dYXfGskKHGjuSfI6gJZW9w
7. 震惊!无需卷积、注意力机制,仅需 MLP 即可实现与 CNN、ViT 相媲美的性能 https://mp.weixin.qq.com/s/rNp4wLT2NwAo22gaLbVEQA
8. MLP 回归,无需卷积、自注意力,纯多层感知机视觉架构媲美 CNN、ViT https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650814947&idx=1&sn=7cce32919afc573f1ddc8090ca90a74d&chksm=84e5fd9db392748be72058d2b872a44469490bb0ebe9d74800c86f3f94e6a9da30837bb95b0d&scene=21#wechat_redirect
9. An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale https://arxiv.org/abs/2010.11929
10. Training data-efficient image transformers & distillation through attention https://arxiv.org/abs/2012.12877
11. DeepViT: Towards Deeper Vision Transformer https://arxiv.org/abs/2103.11886
12. Going deeper with image transformers https://arxiv.org/abs/2103.17239
13. Crossvit: Cross-attention multi-scale vision transformer for image classification https://arxiv.org/abs/2103.14899
14. Rethinking spatial dimensions of vision transformers https://arxiv.org/abs/2103.16302
15. Levit: a vision transformer in convnet’s clothing for faster inference https://arxiv.org/abs/2104.01136
16. Cvt: Introducing convolutions to vision transformers https://arxiv.org/abs/2103.15808