【MLP】——MLP-Mixer理解

论文: https://arxiv.org/pdf/2105.01601.pdf
来自:google
转载自:https://zhuanlan.zhihu.com/p/477837765

【MLP】——MLP-Mixer理解_第1张图片

1. 思想

Google ViT团队最近刚提出的一种的CV框架,MLP-Mixer使用多层感知机(MLP)来代替传统CNN中的卷积操作(Conv)和Transformer中的自注意力机制(Self-Attention)。实现特征之间的融合。其主要有两种融合结构。空间融合,通道融合结构。

token-mixing: 允许不同空间位置(token或者patch)进行通信,它们在通道上进行操作,把每一列当做一个输入

channel-mixing: 允许不同通道之间进行通信(在这里,相同patch的信息都存储在了同patch的channel里)

2. 模型结构

2.2 mixer layer

在传统CNN中,可以通过1x1 Conv来实现通道域的信息融合,如果使用大卷积核(N>1), pooling来实现空间信息的融合,同时大卷积核可以实现空间域和通道域的信息融合。

Transformer中,通过Self-Attention实现空间域,通道信息的信息融合,通过MLP实现通道域信息的融合。

而在MLP-Mixer中,通过Mixer Layer使用MLP先后对列、行进行映射,实现空间域和通道域的信息融合。与传统卷积不同的是,Mixer Layer将空间域和通道域分开操作,这种思想与Xception和MobileNet中的深度可分离卷积相似。

前半部分是空间域(token-mixing),后半部分是通道域(channel-mixing)
【MLP】——MLP-Mixer理解_第2张图片
Mixer把输入视为S​个不重叠图像patch,每个patch都被投射到了一个需要的hidden dimension C ,这将生成一个二维的输入表(原始图像是CxWxH三维的,这个是SxC​二维的)。如果输入图像的分辨率是(H,W),每个patch的分辨率是(P,P),则patch数量S=HW/p^2, 所有的patch都用同样的矩阵进行投影 。

Mixer由多个大小相同的层组成,每一层都有两个MLP block。第一个是token-mixing MLP,它在每一列上进行操作,并且与所有列共享权重。第二个是channel-mixingMLP,它对每一行进行操作,并且与所有行共享权重。每个block都由两个全连接层组和一个对每行输入的非线性操作组成。Mixer层可以被写成:
在这里插入图片描述
网络的计算复杂度是与输入patch的数量线性相关的,不像ViT的线性复杂度。 因为hidden dimension C是独立于patch大小的,所以总体的计算复杂度是与输入图片像素的大小线性相关的,就像CNN一样。

将channel-mixing MLP的参数(在每一层内)绑定是一种自然的选择,它提供了位置不变性,这是卷积的一个显著特征。然而,跨通道输入参数的情况要少得多。例如,在一些CNN中使用的可分离卷积,将卷积独立于其他通道应用于每个通道。然而,在可分离卷积中,不同的卷积核被应用于每个通道,不同于Mixer中的Token mixing MLP,其对所有通道共享相同的核(全感受野)。当增加隐藏维度或序列长度时,参数绑定可防止体系结构增长过快,从而显著节省内存。令人惊讶的是,这种选择并不影响实证绩效果。

如果在2D图像的角度来看,channel-mixing其实就等价于 1x1的卷积,二者的参数量也是一样的:in_channel x out_channel

Mixer的每一层都接受相同大小的输入,这种各向同性(isotropic)的设计最类似与Transformers或其他领域的深层RNN,它们也使用固定的宽度。这与大多数CNN不一样,CNN具有金字塔结构:更深的层具有更低分辨率的输入和更多的通道。值得注意的是,这些只是典型的设计,其他组合也存在,比如isotropic ResNets和金字塔ViTs。

现在有一些工作在尝试单尺度特征的可能性了。这和CNN还是有很大区别的

与ViT不同,Mixer不使用position embedding因为token-mixing MLP对输入token 的顺序很敏感。最后,Mixer用一个标准的分类头:全局池化层后面紧跟一个线性分类器。

3. 实验

我们在一系列中小型下游分类任务中评估了MLP混合器模型的性能,这些模型使用中大型数据集预先训练。我们对三个主要数量感兴趣:(1)下游任务的准确性;(2) 预训练的总计算成本,在上游数据集上从头开始训练模型时,这一点很重要;(3) 测试时间吞吐量,这对从业者很重要。我们的目标不是展示最先进的结果,而是要表明,一个简单的基于MLP的模型与当今最好的基于卷积和注意力的模型具有竞争力。
【MLP】——MLP-Mixer理解_第3张图片
在结果上精度基本和VIT相当,比ResNet CNN更好。
【MLP】——MLP-Mixer理解_第4张图片
预训练数据的影响
Mixer从不断增长的数据集大小中获益更多。可能前期的点更低。
【MLP】——MLP-Mixer理解_第5张图片
数据排列的影响
pixel shuffle对二者的影响 Mixer < CNN
【MLP】——MLP-Mixer理解_第6张图片

特征可视化
对第一层,第二层,第三层的token-mixing MLP权重进行可视化,一幅图是196个值。观察到:

  • token-mixing学到更多的全局信息(没有物体的轮廓)
  • 层越深,学到的东西越难以解释
    【MLP】——MLP-Mixer理解_第7张图片

reference

  • MLP-Mixer详解

你可能感兴趣的:(MLP,计算机视觉,深度学习,人工智能)