Day 3: MLP-Mixer: An all-MLP Architecture for Vision

本文介绍了Mixer模型,一个基于古老多层感知机的新架构,它在不依赖卷积和注意力机制的情况下,通过两种MLP层实现空间和通道信息的混合,达到接近SOTA的分类性能。Mixer的独特之处在于其明确区分了位置运算和区域运算,其结构简单,仅基于矩阵乘法和非线性运算,且对输入顺序敏感,从而学习到位置信息。该研究挑战了CNN和Transformer在视觉任务中的主导地位。
摘要由CSDN通过智能技术生成

本文是关于最新出来的多层感知机的文章,文章的主要贡献如下

  • 作者霸气地说:“尽管卷积和注意力机制目前都取得了足够好的表现,但他们都是没有必要的”,也就是常说的“在座的各位都是XX”。原文:“In this paper we show that while convolutions and attention are both sufficient for good performance, neither of them are necessary.”
  • MLP-Mixer主要是基于古老的多层感知机(MLP)的,它包含两种layer:一种独立地把MLP用在图片块上(image patch),用来混合基于每个位置的特征(“mixing” the pre-location features);一种把MLP用在图片块之间(across patches),用来混合空间信息(“mixing” spatial information.)
  • 当用于大型数据集和 modern regularization schemes 的场景下时,能在分类任务上取得接近 SOTA 的结果。
  • 作者希望这些结果能够激发更多的人,来干翻现在由CNN和Transformer引领的视频世界 LOL。

方法和实现

由于还没来得及看代码,代码细节看过之后再回来写吧。有意思的是,代码被放在了 ViT 的同一个repo下面

  • Mixer 的结构完全基于多层感知机MLP,且多层感知机重复地应用在空间位置之间,或者特征通道之间 (Mixer’s architecture is based entirely on multi-layer perceptrons (MLPs) that are repeatedly applied across either spatial locations or feature channels).
  • Mixer 纯基于基本的矩阵乘法,对数据布局的变换(reshape或者转置),以及标量的非线性运算。

结构图及粗略介绍

  • 首先将输入图片拆成图片块(patch),并将这些图片块线性映射(linearly project)成一个token序列,并排列成一个" p a t c h e s × c h a n n e l s patches \times channels patches×channels" 的表作为输入,并保持这个维度。
  • 如上所说,Mixer 有两种MLP层,一种叫"通道混合MLP" (channel-mixing MLPs),另外一种叫“符号混合MLP” (token-mixing MLPs)。
  • channel-mixing MLP 允许在不同通道之间的信息交流,它在每一个token上独立地操作,把上述列表的每一行当成输入。token-mixing MLP 允许在不同的空间位置的信息进行交流(也既不同的token间),它独立地应用在每个通道上,把上述列表的每一列当成输入。
  • 这两种MLP交错在一起,使不同维度之间的信息得以交互。
    在这里插入图片描述

插入一点个人理解,待续

  • 在极端情况下,这个模型可以看成是一个非常特殊的CNN,它用 1 × 1 1 \times 1 1×1卷积来做通道上的混合,在整个视野域上用单通道depth-wise 卷积和参数共享来做符号混合。
  • 需要注意,反过来并非如此(即不能说符合以上条件的CNN就是Mixer模型的特殊情况),因为典型的CNN并非是我们这个Mixer模型的特殊情况。

Mixer 模型的详细架构

  • Mixer 模型最主要的 idea 是,它明确地分开了基于每个位置的运算(channel-mixing)和区域之间的运算(token-mixing)
  • 如上面的结构图所示,Mixer 把没有重叠的图片块组成的序列当作输入(序列长度为S),每个图片块都被映射成一个规定好的大小(hidden dimension C),得到的输出就是个 S × C S \times C S×C 大小的表 X X X, X ∈ R S × C \mathbf{X} \in \mathbb{R}^{S \times C} XRS×C. 如果原始输入图片的大小为 ( H , W ) (H,W) (H,W),每个图片块的大小是 ( P , P ) (P,P) (P,P),那么所有图片块的总数为 S = H W / P 2 S = HW / P^2 S=HW/P2
  • 所有图片块都是被**同一个**映射矩阵进行映射的。
  • Mixer中的layer都是同样大小 ,每个layer都由两个MLP模块组成。其中第一个模块是token-mixing MLP 模块,它作用在 X X X的每一列上(其实是先将 X X X转置成 X T X^T XT)。第二个模块是channel-mixing MLP 模块,它作用在 X X X的每一行上。
  • 每个MLP模块都含有两个全连接层,同时一个非线性层独立地加在输入的每一行上。整体结构如下:

U ∗ , i = X ∗ , i + W 2 σ ( W 1  LayerNorm  ( X ) ∗ , i ) ,  for  i = 1 … C , Y j , ∗ = U j , ∗ + W 4 σ ( W 3  LayerNorm  ( U ) j , ∗ ) ,  for  j = 1 … S . \begin{array}{ll}\mathbf{U}_{*, i}=\mathbf{X}_{*, i}+\mathbf{W}_{2} \sigma\left(\mathbf{W}_{1} \text { LayerNorm }(\mathbf{X})_{*, i}\right), & \text { for } i=1 \ldots C, \\\mathbf{Y}_{j, *}=\mathbf{U}_{j, *}+\mathbf{W}_{4} \sigma\left(\mathbf{W}_{3} \text { LayerNorm }(\mathbf{U})_{j, *}\right), & \text { for } j=1 \ldots S .\end{array} U,i=X,i+W2σ(W1 LayerNorm (X),i),Yj,=Uj,+W4σ(W3 LayerNorm (U)j,), for i=1C, for j=1S.

  • D S D_S DS D C D_C DC分别是token-mixing和channel-mixing中可调节的隐藏层的长度,由于 D S D_S DS D C D_C DC都是与输入图片块的数量无关的量(independently),因此它的计算复杂度与输入图片块线性相关。
  • 尽管可能在其它地方见过在每个通道上分别做卷积,但在可分离卷积中,每个通道都使用了一个不同的卷积核;而在Mixer的token-mixing时,所有的通道上的卷积都使用同一个卷积核。这么做有效地防止了当增大 S S S或者 C C C时,引起的模型的快速增长。
  • Surprisingly,这么做居然还不错
  • Mixer中的每层的输入都是固定大小,和Transformer、RNN有点像。
  • Mixer没有采用位置编码,因为token-mixing MLP 对输入的顺序非常敏感,因此能最终学习到如何表示位置信息。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: mlp-mixer是一种全MLP架构,用于视觉任务。它使用多层感知机(MLP)来代替传统的卷积神经网络(CNN)来处理图像。这种架构的优点是可以更好地处理不同尺度和方向的特征,同时减少了计算和内存消耗。它在许多视觉任务中表现出色,例如图像分类、目标检测和语义分割。 ### 回答2: mlp-mixer是一种全连接多层感知器(Multi-Layer Perceptron,MLP)网络架构,用于视觉场景的图像分类任务。它是在自然语言处理领域中Transformer的启发下发展起来的。与CNN、ResNet等传统的卷积神经网络架构不同,mlp-mixer主要采用全连接层(FC)和MLP Block。 mlp-mixer架构设计的主要思想是将全局信息和本地信息分离,然后通过一系列由FC和MLP Block组成的混合层进行特征提取。在每个MLP Block中,特征向量会被分成多个部分进行局部特征提取,之后再全局汇聚。这样可以保证局部信息不会在多次卷积操作后丢失,并且全局信息的汇聚也是非常高效的。 另外,mlp-mixer架构中的Layer Norm和MLP Block中的GELU激活函数等技术也是有其特点的。Layer Norm是比Batch Norm更具有一般性的归一化技术,可以提高模型对小批量数据的扩展性。而GELU激活函数在接近0处光滑,对精度保持了很好的提升。这些技术的运用让mlp-mixer模型具有了更好的稳定性和鲁棒性。 综上所述,mlp-mixer是一个全新的神经网络架构,其与传统的卷积神经网络的不同点在于摆脱了卷积操作,通过全连接层和MLP Block等模块提取图像特征。该模型有很强的泛化性,并且在图像分类任务上取得了不错的效果。它的优点在于良好的可扩展性和可解释性,且训练效果非常稳定。在未来,mlp-mixer模型或许有望在计算机视觉领域中取得更进一步的发展。 ### 回答3: MLP-Mixer是一种全MLP(多层感知器)的架构,可以应用于视觉任务中的图像分类和目标检测等任务。MLP-Mixer在CVPR 2021中被提出并于同年6月被公开发布。 传统的卷积神经网络(CNN)被广泛应用于计算机视觉领域。但是,随着计算机视觉任务的不断发展和增,如何更好地处理不同类型和规模的数据集,成为了一个挑战。因此,MLP-Mixer尝试解决传统卷积神经网络中一些问题,例如参数共享、池化和批归一化等。 MLP-Mixer的主要思想是将传统的卷积操作替换为由若干密集连接层(全连接层)组成的mixing层。传统的卷积操作只考虑空间上的邻居关系,而mixing层考虑全局视角。mixing层通过对不同通道(channel)的信息进行交互,捕捉不同通道之间的全局相关性,提高了特征提取的效率和性能,同时降低卷积神经网络的复杂性。 此外,MLP-Mixer还引入了多层感知器池化层(MLP Pooling Layer)代替传统的最大池化层(Max Pooling Layer),使神经网络更灵活和高效。MLP-Mixer考虑到了计算机视觉中不同尺度的特征信息,通过MLP池化层进行特征重组和降维,使得神经网络可以处理多尺度特征信息,提高特征提取的精度和速度。 总的来说,MLP-Mixer是一种全MLP的架构,其独特的mixing层和MLP Pooling层相比传统的卷积神经网络有着更好的性能和可扩展性。未来,MLP-Mixer有望在计算机视觉领域的各种任务中得到广泛的应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值