摘要

卷积神经网络(cnn)是计算机视觉的首选模型。最近,以注意力为基础的网络,如Vision Transformer也开始流行起来。在本文中,我们证明卷积和注意力对于良好的性能都是足够的,但它们都不是必要的。我们提出了MLP-Mixer,一个专门基于多层感知器(MLPs)的架构。MLP-Mixer包含两种类型的层:一种是独立应用于图像斑块的MLPs(即“混合”每个位置的特征),另一种是跨斑块应用的mlp(即“混合”空间信息)。在大数据集上或使用现代正则化方案进行训练时,MLP-Mixer在图像分类基准测试中获得了有竞争力的分数,其预训练和推理成本可与最先进的模型相媲美。我们希望这些结果能激发进一步的研究,超越已建立的CNN和Transformer的领域。

1  介绍

正如计算机视觉的历史所证明的那样,更大的数据集的可用性加上不断增加的计算能力常常会导致范式的转变。虽然卷积神经网络(CNNs)已经成为计算机视觉的事实上的标准,但最近基于自我注意层的替代方案Vision Transformer (ViT)获得了最先进的性能。ViT延续了去除模型中手工制作的视觉特征和归纳偏差的长期趋势,并进一步依赖于从原始数据中学习。

我们提出了MLP-Mixer网络结构(简称“Mixer”),这是一种有竞争力但概念和技术上都很简单的替代方案,不使用卷积或自我注意。相反,Mixer的架构完全基于多层感知器(MLPs),这些感知器在空间位置或特征通道上重复应用。Mixer只依赖于基本的矩阵乘法例程,数据布局的更改(重塑和转置),和标量非线性。

图1描述了Mixer的宏观结构。它接受线性投影的图像块序列(也称为token)形状为“patches×channels”作为输入,并保持这个维度。Mixer使用两种类型的MLP层:通道混合MLP和token混合MLP(channel-mixing MLPs and token-mixing MLPs)。通道混合mlp允许不同信道之间的通信;它们独立地对每个token进行操作,并将表中的各个行作为输入。token混合mlp允许不同空间位置(token)之间的通信;他们独立操作每个通道,并将表的各个列作为输入。这两种类型的层是交错的,以支持两个输入维度的交互。

图1:MLP-Mixer由每patch线性嵌入,Mixer层,和分类器头组成。Mixer层包含一个token混合MLP和一个信道混合MLP,每个MLP由两个完全连接的层和一个GELU非线性组成。其他组件包括:跳过连接,dropout,通道上的层规范,和线性分类器头。

在极端情况下,我们的架构可以被视为一个非常特殊的CNN,它使用1×1卷积来进行信道混合,并使用一个完全接受域和参数共享的单信道深度卷积来进行token混合。然而,事实并非如此,因为典型的CNN并非Mixer的特殊情况。此外,在MLPs中,卷积比简单的矩阵乘法更复杂,因为它需要额外的代价来减少矩阵乘法和/或专门的实现。

尽管因为它的简单,Mixer取得了竞争性的结果。在大数据集(即100M的图像)上进行预先训练时,它在精确度/成本权衡方面接近CNN和Transformer 此前声称的最先进的性能。这包括87.94%的ILSVRC2012“ImageNet”的top-1验证精度。当预先训练更适度的尺度数据(即~ 1-10M图像),再加上现代正则化技术,Mixer也取得了强大的性能。然而,与ViT类似,它略低于专门的CNN架构。

2  Mixer Architecture

MLP-Mixer主要包括三部分:Per-patch Fully-connected、Mixer Layer、分类器。

2.1 Per-patch Fully-connected

MLP-Mixer通过Per-patch Fully-connected将输入图像转化为2D的Table,方便在后面进行局部区域间的信息融合。

具体来说,MLP-Mixer将输入图像相邻无重叠地划分为S个Patch,每个Patch通过MLP映射为一维特征向量,其中一维向量长度为C,最后将每个Patch得到的特征向量组合得到大小为S*C的2D Table。需要注意的时,每个Patch使用的映射矩阵相同,即使用的MLP参数相同。

实际上,Per-patch Fully-connected实现了三维图像(W,H,C)的向量空间到二维(S,C)的向量空间的映射。

例如,假设输入图像大小为240*240*3,模型选取的Patch为16*16,那么一张图片可以划分为(240*240)/(16*16)= 225个Patch。结合图片的通道数,每个Patch包含了16*16*3 = 768个值,把这768个值做Flatten(拉平)作为MLP的输入,其中MLP的输出层神经元个数为128。这样,每个Patch就可以得到长度的128的特征向量,组合得到225*128的Table。MLP-Mixer中Patch大小和MLP输出单元个数为超参数。

2.2  Mixer Layer

观察Per-patch Fully-connected得到的Table会发现,(如上组合得到225*128的Table)Table的行代表了同一空间位置在不同通道上的信息,列代表了不同空间位置在同一通道上的信息。换句话说,对Table的每一行进行操作可以实现通道域的信息融合,对Table的每一列进行操作可以实现空间域的信息融合。

        从Layer Norm层出来的为Patches*Channel(即为table),每个patch即上述对同一位置的所有通道(如16*16*3)进行展开,通过T转为Channel*Patches,token-mixing MLPs(MLP1)对table的列进行映射,所以对Channel*Patches的行进行映射,对不同空间位置在同一通道上的信息进行操作,实现空间域的信息融合。channel-mixing MLPs(MLP2)对table的行进行映射,对同一空间位置在不同通道上的信息进行映射,实现通道域的信息融合。

在传统CNN中,可以通过1*1 Conv来实现通道域的信息融合,如果使用更大一点的卷积核,可以同时实现空间域和通道域的信息融合。在Transformer中,通过Self-Attention实现空间域的信息融合,通过MLP同时实现空间域和通道域的信息融合。

而在MLP-Mixer中,通过Mixer Layer使用MLP先后对列、行进行映射,实现空间域和通道域的信息融合。与传统卷积不同的是,Mixer Layer将空间域和通道域分开操作

根据上述内容,MLP-Mixer在Mixer Layer中使用分别使用token-mixing MLPs(图中MLP1)和channel-mixing MLPs(图中MLP2)对Table的列和行进行映射,与Per-patch Fully-connected相同,MLP1和MLP2在不同列、行中的映射过程中共享权重。除此之外,Mixer Layer还加入了LN和跳接来提高模型性能。

2.3  整体结构

MLP-Mixer: An all-MLP Architecture for Vision相关推荐

  1. S2-MLP: Spatial-Shift MLP Architecture for Vision

    Abstract 最近,Visual Transformer (ViT)及其后续作品放弃了卷积,采用了自注意运算,达到了与CNN相当甚至更高的精度.最近,MLP-Mixer放弃了卷积和自注意操作,提出 ...

  2. 1 MLP-Mixer: An all-MLP Architecture for Vision

    论文地址: MLP-Mixer: An all-MLP Architecture for Vision​arxiv.org/abs/2105.01601 1.1 MLP-Mixer原理分析 1.1.1 ...

  3. S2-MLP v2: Improved Spatial-Shift MLP Architecture for Vision

    引入多分支处理的思想,并应用 Split-Attention 来融合不同分支. 受现有工作的启发,使用更小的 patch 和分层金字塔结构. 扩增偏移的种类 Abstract 最近,基于MLP的视觉框 ...

  4. ASMLP: An Axial Shifted MLP Architecture for Vision

    本文也是通过偏移操作来提高局部信息提取能力,具体将偏移通过每个feature map沿H和W方向分别偏实现.此外,结构上引入了深细结构,分析上类比卷积感受野做分析(图3). Abstract 本文提出 ...

  5. EdgeNeXt: Efficiently Amalgamated CNN-Transformer Architecture forMobile Vision Applications(arXiv)

    最前面是论文翻译,中间是背景+问题+方法步骤+实验过程,最后是文中的部分专业名词介绍(水平线分开,能力有限,部分翻译可能不太准确)(arXiv 2022) EdgeNeXt:移动视觉应用中有效融合的C ...

  6. 【论文阅读】An Image Patch is a Wave: Quantum Inspired Vision MLP

    [论文阅读]An Image Patch is a Wave: Quantum Inspired Vision MLP 1.摘要 2.视觉领域的几种研究架构 2.1CNN 2.2Transformer ...

  7. 谷歌最新提出无需卷积、注意力,纯MLP构成的视觉架构!网友:MLP is All You Need?

    2021-05-06 15:50:28 作者 | 耳洞打三金.琰琰 近日,谷歌大脑团队新出了一篇论文,题目为<MLP-Mixer: An all-MLP Architecture for Vis ...

  8. MLP is Best?

    众所周知,CNN是计算机视觉的首选模型,最近还流行用vision transformer做视觉,谁又能想到用多层感知机(MLPs)去做图像相关的模型呢?<MLP-Mixer: An all-ML ...

  9. CVPR 2022 Oral | MLP进军底层视觉!谷歌提出MAXIM:刷榜多个图像处理任务,代码已开源!...

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 作者:假熊猫 |  已授权转载(源:知乎)编辑:CVer https://zhuanlan.zhihu.co ...

最新文章

  1. Android CameraSurfaceView在SurfaceView上实现拍照,视频录像
  2. 小白的算法初识课堂(part5)--散列表
  3. 漫步最优化七——介绍
  4. 40行代码的人脸识别实践【转】
  5. ubuntu下pkgconfig的搜索路径
  6. Silverlight WCF RIA服务(二十九)Silverlight 客户端 10
  7. 维修涉及行业2021-11-15
  8. 做了三年开发后,我选择回家创业
  9. IndentationError: unindent does not match any outer indentation level
  10. 【Linux系统开发】Study210开发板刷安卓系统
  11. Android 集成谷歌地图
  12. 麻雀优化算法 SSA python实现
  13. 特斯拉中国裁员约10%,撕下了外企新能源的遮羞布!
  14. Win 10 部分软件的界面模糊问题
  15. 龙芯3A5000搭建idea开发环境
  16. css实现毛玻璃效果
  17. 携手红帽拥抱开源,微软助力企业客
  18. Windows桌面实现之八(DirectX HOOK 方式截取特殊的全屏程序之二)
  19. linux中跳板机的部署
  20. 一套问卷调查系统源码,功能齐全,适合二开或学习使用

热门文章

  1. 如何学好python web开发
  2. 人、狼、羊、草过河的小游戏Python实现
  3. PIM-DM的扩散-剪枝
  4. 简单介绍一下谷粒商城这个项目。
  5. 关于 \lfi-labs-master\CMD-3 的正确解法
  6. 编写MQTTClient测试程序,和PC端运行的MQTT服务程序进行数据收发
  7. Spring 国际化中文乱码的解决方法
  8. 物业合同以外服务的收费,谁说了算?
  9. 基于springboot实现秋月堂茶室用品茶具管理系统的设计与实现【附项目源码+论文说明】
  10. html凹凸效果,用CSS实现图片的3D凹凸感(凸出镜框外或凹陷镜框里)