图像分类(imageclassification)一直是计算机视觉研究中非常基础和重要的任务。在深度学习主导的近十年中,它大致继承了一般的卷积神经网络。在网络的基本范式(CNN)中,大部分的思想都集中在不同网络模型的设计和模块创新上,很少有直接对卷积神经网络本身既定的框架进行颠覆性的工作。在Transformer在自然语言处理任务上取得成功后,注意力机制(attention)在视觉任务方向也得到了很多关注和应用,他们的大部分工作也被认为是性能提升非常有效的部分。然而,近期谷歌大脑、牛津大学、清华大学等研究机构发表了自己对多层感知器(MLP)在视觉分类中的作用的重新定位,引发了学术界的广泛思考:深度学习网络是否具有经历了从CNN到backbone的一系列变革后,重新收敛于通用简洁的多层MLP范式?MLP框架是否具有普适性,潜在的研究和商业价值有多高?新框架将为未来的视觉研究和技术应用提供哪些潜在的可能性和创新灵感?基于以上问题,结合笔者近期阅读的以上三篇MLP论文,本文对神经网络模型相关的图像分类任务做一个简单的发展回顾,然后针对近期提出的三篇论文。概述了方法并提炼了想法,并试图总结此类研究的意义和未来潜力。0.神经网络图像分类发展简述其实早在20世纪,就有Neocognitron、ConvNet、LeNet等早期雏形使用神经网络进行图像分类。例如,LeNet非常有效地完成了数字识别的任务,而卷积的概念也很早就出现了,但由于计算机计算能力不足,很长一段时间都没有更多的进展。大多数人比较熟悉的是,2012年,AlexNet在当年的视觉图像分类挑战赛(ImageNet)中使用GPU取得了非常惊人的Top-1准确率,随后以卷积层作为卷积层的卷积神经网络(CNN)范式已经开发出多种经典模型。从2014年到2017年,Inception、ResNet、VGG等模型都取得了非常好的SOTA性能,其设计的小卷积核感受野、多路跨层链接等模块设计被证明是非常有效的。长期以来,CNN作为骨干是处理深度视觉任务的最佳选择。大家可以参考下图各个经典CNN网络模型的提出和演化过程:接下来是2017年前后,人们发现attention机制在捕获增强视觉特征提取的过程中也非常有效,还有一个小已经尝试了很多工作。2018年前后,原本用于自然语言处理的Transofmer被发现在视觉分类等任务中具有非常强的可迁移性,因此Transformer成为近两年视觉研究的热门话题,人们对局部块的关注度空前高涨图像。它们之间的上下文关系进一步将卷积网络时期的感受野学习改进为特征或图像块之间的关联学习。Attention相关的工作也井喷式发展,如Vit[9],Deit[10]是有效融合Transformer思想的初步工作,DeepViT[11]是混合多个attention模块(attentionheadmixing)的尝试,CaiT[12]将原始Transformer中的attentionlayer分为两个stage进行学习,CrossViT[13],PiT[14],LeViT[15],CvT[16]等相关作品都利用了Transformer的全局长度优势依赖capture的方法得到进一步发展,并尝试结合之前CNN中被证明非常有效的模块,如pooling,引领继CNN之后又一轮的模型创新。1.attention是分类性能的保证吗?你甚至需要注意吗?AStackofFeed-ForwardLayersDoesSurprisinglyWellonImageNet在介绍目前热议的MLP-Mixer模型之前,我们先来看看牛津大学这份长达4页的研究报告。一定程度上,它简洁地回答了一个问题:注意力机制是保证图像分类任务性能的关键吗?我们知道,自从Transformer被证明在视觉任务上同样可行,很多视觉相关的任务也应用了这个范式,并且普遍将性能提升归功于attention机制,声称attention机制引入了一个全局感受野来网络(全局感受野),致力于提高注意力模块在不同工作中的效率和有效性。所以这篇文章在ImageNet数据集上做了一个“严格控制变量”的图像分类实验:在不改变attention分类网络的其他结构和参数设置的情况下,简单的用一个简单的Feed-forward层替换每个attentionnetwork层,所以原来的Transformer模型可以看作是由多层前馈网络层组成的MLP分层网络,如左下图所示。在实验部分,论文作者采用了Transformer分类器的代表作ViT和DeiT,并继承了它们所有的模型结构和超参数设置,并基于ViT、Deit的Tiny、Base和Large三种网络结构,在ImageNet数据集上训练了三个仅前馈模型(仅FF)。参考右上图的训练结果,在Tiny网络中FF-only模型的性能并不优于attention模型,在参数数量较大时性能也不优越。但是,当模型增加到Base和Large时,只用前pass层的FF的表现就非常惊人了。当参数数量比较少的时候,只有纯frontpasslayer的MLP模型FF已经达到了几乎相同的性能。甚至占优的Top-1分类准确率也从侧面说明MLP模型在更复杂更大的网络中有很好的表示能力。为了更公平的比较,论文作者还尝试用attentionlayer替换所有forwardlayers,实现attentiononly模型,进一步探索attention机制的表现力。然而,注意力网络在微型模型上训练了100个。在epochs之后,它只能达到28.2%的top-1准确率。通过以上实验,论文作者推断出一个好的Transformer分类器并不一定需要attention模块来保证性能。可能是图像块的嵌入,也可能是Transformer本身的训练过程,保证了性能的优越性。下图附上线性前向传递模块,它取代了FFonly模型中的注意力模块。可以看出,实现起来很直观,也很简单。有兴趣的读者也可以在此基础上做更多的扩展性探索和实验。总的来说,这篇文章提出的问题很明确,论证过程本身也很有趣。虽然演示过程的实验设置比较有限,但也在一定程度上回答了开头的问题:特定的attentionmodule不一定是性能保证。同时,这篇文章非常有吸引力,因为它为行业指出了一种可能性。Performance:当你面临更大模型的需求时,根据MLP模型在实验中的表现力,很可能是在保证性能的同时节省性能的一个很好的选择。2、MLP有望成为新的视觉范式将visualTransformer模型替换为force模块后,依然能够取得出色的分类性能,而关注已久的attention模块似乎无法独善其身——作为一种新的计算范式当一个高精度模型单独存在的时候,要支撑它,也更多的还是依赖一个好的backbone模型。GoogleBrain最近提出的MLP-Mixer更进了一步,让我们看到MLP模型完全有机会成为继传统卷积网络(CNN)Transformer之后的下一个视觉研究范式。自深度学习兴起以来,一直倾向于直接从原始数据中学习所需的视觉特征,尽可能避免构造特征或设置归纳偏置,CNN在这种学习思路下被默认为标准,一两年前视野的Transformer取得了SOTA的成绩,成为了另一种选择。与前两者不同的是,Google提出的MLP-Mixer结构完全摒弃了卷积或attention机制,完全基于多层感知器结构,仅依赖于基本的矩阵乘法,在空间特征或频道功能。提炼。MLP-Mixer的结构如下图所示:首先将大小为HxW的输入图像切割成S个互不重叠的小方块(Patches),每个方块的分辨率为PxP,然后将所有图像方块统一的线性映射变成了一个隐藏维度为C的张量,所以输入MLP-Mixer的数据被转化为一个维度为SxC的二维矩阵表X,而X后续的计算过程会经过多个Mixer层,这包括两种类型的MLP计算层:a.token-mixingMLPs和b.channel-mixingMLPs,X首先通过token-mixingMLP计算不同块张量之间的联系,得到特征U,然后通过计算channel-mixingMLPschannel-mixingMLPs之间的特征Y:在模型的最后,MLP-Mixer也连接到一个普通的全连接分类模块,完成最终的类别预测。另外,由于MLP-Mixer使用的是token-mixingMLP,不需要输入图片的位置编码信息,对每个图像块的位置有一定的敏感性。同时,它使用的参数绑定,参数绑定也让参数体积大大减小。在实验部分,作者采用了三种模型,模型大小分别为base(B)、large(L)、huge(H)。对应的MLP-Mixer模型不仅在ImageNet、JFT-300M等几个大数据集上进行了测试。Pre-train也通过在中小数据集上fine-tuning进一步测试了MLP-Mixer的迁移学习能力。同时,与MLP-Mixer对比的模型是在CNN类或Transformer类中达到SOTA性能的模型,如HaloNet、ViT。通过对实验结果的总结,也可以看出无论是预训练还是微调迁移,MLP-Mixer虽然无法达到SOTA的精度,但在各个方面已经可以媲美两种主流的SOTA模型,在效率和吞吐量方面也是如此。有很好的优势。此外,文章对每个输入图像方块的权重进行了可视化,可以观察到从粗到细,从轮廓到慢可视化的演化过程,其实类似于CNN中提取视觉特征的过程。的。总的来说,本文提出了一种非常新颖但有效的网络结构。所涉及的方法理论并不复杂,模型结构直观。实验全面而详尽。是MLP分类的一个非常有启发性的开创性工作。特别需要指出的是,在MLP-Mixer的结构描述中,如何设置每个MLP模块的顺序以及如何进行图像映射,包括使用了非常经典的skip-connection结构,是否也是从某个方面呼应了FF仅在第一篇文章中的部分猜想:如何进行featureembeddingmapping,以及合理的训练和计算过程,可能是一个高精度模型背后的支撑面。从学术研究的角度来看,MLP-Mixer的提出激发了更多学者关注MLP网络结构有可能成为继CNN和Transformer之后的第三范式。更先进、更有效的网络结构甚至微调扩展将继续出现,并帮助完善这一研究分支。从产业部署的角度来看,MLP模型确实为很多纠结于性能与效率权衡的企业和工程师提供了新的思路。虽然目前的MLP-Mixer并不是最精准的解决方案,但在效率利用甚至内存节省方面,似乎比attention-basedTransformer会有更多的想象空间。希望了解MLP-Mixer计算细节的读者可以参考我们之前的文章[7]、[8]。3.MLP与CNN的结合RepMLP:Re-parameterizingConvolutionsintoFully-connectedLayersforImageRecognition清华的RepMLP是MLP与CNN结合的新尝试。它试图混合各自网络模块的优势,以实现更好的性能提升,并不仅限于分类,而是在多个视觉任务中给我们一些新的启发。众所周知,全连接层一般更擅长建立特征的长期依赖关系和空间关系,但不擅长捕捉局部特征或模式识别,这也在一定程度上解释了为什么像ViT这样的模型需要更多巨大的训练集或足够的数据增强(dataaugmentation),都存在相似的难以建立局部特征的问题。所以文章提出RepMLP。该模型的主体使用多层神经网络来提取长期依赖关系和空间信息。同时,它在网络训练时使用结构化重参数化(re-parameterization)将多个全连接的卷积模块并行化。用它来提取相应的局部先验知识,最后进行信息融合和总结。并且RepMLP还巧妙地利用了reparameterization,将推理时的参数和训练时的参数进行重新转换,从而达到简化推理模型的目的。RepMLP模型总体来说并不复杂,请参考其结构图如下:
