如果视觉Transformer中去掉MSA部分,性能是否能达到相同的水平?或者说仅使用MLP来实现视觉任务是否可行?由此考虑到视觉MLP。
一、EANet(External Attention)
其中
和
为可学习的参数,不依赖于输入。Norm为double normalization(分别对行和列):
二、MLP-Mixer
Mixer Layer
其中MLP为双层,层间有GELU激活函数。
网络结构
将图像分成不重叠的patch,然后将维度投影为
,得到
输入到Mixer中。Mixer包含2个MLP,第一个作用于列(所有列共享参数),第二个作用于行(所有行共享参数)。
Mixer公式(
为patch数量)
Mixer未使用position embedding,因为token-mixing MLP对输入token的顺序敏感,有可能学习到位置信息。
三、CycleMLP
实际为上述MLP-Mixer的改进。
传统MLP主要问题:(1)空间维度的MLP不能适应不同的输入大小;(2)channel维度的MLP不能捕捉空间交互。
模型结构
Patch Embedding
使用大小为7的窗口(步长4)将图片分为有重叠的patch。然后将patch通过线性层得到高维特征。
不同stage之间有transition部分,减少token数量,增加channel维度。
CycleMLP块
Channel MLP为2个线性层(channel FC)+GELU。Channel FC和输入图像大小无关,但感受野只有1个像素。
和传统MLP相比,Cycle MLP使用了Cycle FC层,使MLP类模型能够处理不同大小的输入图片。Cycle FC使用了3个并行的Cycle FC operator。
Cycle FC输出(
为感受野大小):
伪核
将采样点投影到空间平面得到的区域。
四、gMLP
gMLP(g表示gating)包含
个相同的块,每个块如下:
其中
为激活函数,
捕捉空间交互(当
时为普通的双层MLP),
为按元素乘法。模型不需要position embedding,因其可由
捕捉。
捕捉空间交互最简单的选择是线性层:
这里
被称为SGU(spatial gating unit)。有点类似于SE(见5种2D Attention整理中的第三个),只是把池化变成线性层。 同样有效的方法是,将
沿channel分为两部分
此外可以在SGU中加入一个微型注意力机制,对应的模型称为aMLP。