CV领域最近几年发展火热,各种先进算法、模型层出不穷,CV领域的科研工作者和从业者也被迫需要天天学习新的structure,幻想有朝一日能够提出实现SOTA的方法。图像识别兜兜转转,居然从MLP开始经过CNN、Transformer又回到了MLP,近日,谷歌大脑团队提出的MLP-Mixer又引发了CV领域的浪潮,论文发布在arXiv,仔细发现参与的研究者大多也是Vision Transformer(ViT)的提出者,通过论文中的实验结论我们可以发现MLP-Mixer在JFT-300M数据集上的识别精度相比ViT并未提高太多,当数据集的数量较小时其识别精度不如ViT,那么MLP-Mixer的创新究竟在哪呢?其实主要在于MLP-Mixer的提出者们通过MLP-Mixer证实了ViT真正起到作用的是将图像分成若干个patch的方法以及通过patch embedding layer得到的patch embedding,而非自注意力机制,所以MLP-Mixer丢弃了原有的Transformer的所有结构,主要因为Transformer结构非常复杂,随之替代的是Mixer Layer且其内部全为矩阵乘法运算和全连接层,并且MLP-Mixer的宏观框架中仍不含有任何卷积操作。
当然,Mixer Layer中包含着两个极其重要的操作,也为Mixer Layer的核心,即通道信息融合和位置信息融合。我们发现MLP-Mixer的patch embedding layer的输出并没有加上每个补丁对应的位置嵌入。由于每个图像补丁形成一个序列用来表示整张图像,所以不可能没有位置信息。那么MLP-Mixer中的Mixer Layer的位置信息融合操作即为之前的位置嵌入。
那么哪一部分是通道信息融合哪一部分是位置信息融合呢?通过上图一目了然,层归一化得到的每一行代表每个patch,每一列自然表示patch的channel,将其进行转置再连接线性层即为位置信息融合(位置信息融合位置为变量此时保持channel不变),得到输出再做转置还原为Mixer Layer的输入形状,再接入线性层得到通道信息的融合(此时通道为变量应保持位置不变)。
整体结构如下:
其他看点:
1.激活函数使用的是GELU(高斯误差线性单元)
2.学习率衰减策略:Linear Warmup