如果视觉Transformer中去掉MSA部分,性能是否能达到相同的水平?或者说仅使用MLP来实现视觉任务是否可行?由此考虑到视觉MLP。
一、EANet(External Attention)
原文链接:https://arxiv.org/pdf/2105.02358.pdf
其中和
为可学习的参数,不依赖于输入。Norm为double normalization(分别对行和列):
二、MLP-Mixer
原文链接:https://arxiv.org/pdf/2105.01601.pdf
Mixer Layer
其中MLP为双层,层间有GELU激活函数。
网络结构
将图像分成不重叠的patch,然后将维度投影为,得到
输入到Mixer中。Mixer包含2个MLP,第一个作用于列(所有列共享参数),第二个作用于行(所有行共享参数)。
Mixer公式(为patch数量)
Mixer未使用position embedding,因为token-mixing MLP对输入token的顺序敏感,有可能学习到位置信息。
三、CycleMLP
原文链接:https://arxiv.org/pdf/2107.10224.pdf
实际为上述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
原文链接:https://arxiv.org/pdf/2105.08050.pdf
gMLP(g表示gating)包含个相同的块,每个块如下:
其中为激活函数,
捕捉空间交互(当
时为普通的双层MLP),
为按元素乘法。模型不需要position embedding,因其可由
捕捉。
捕捉空间交互最简单的选择是线性层:
这里被称为SGU(spatial gating unit)。有点类似于SE(见5种2D Attention整理中的第三个),只是把池化变成线性层。
同样有效的方法是,将沿channel分为两部分
和
,然后
此外可以在SGU中加入一个微型注意力机制,对应的模型称为aMLP。
评论(0)
您还未登录,请登录后发表或查看评论