CNN, Transformer, 现在直接用全连接层就可以了. 真的乱.
如上图所示:
Input: 和ViT一样, 首先将图片切割成一个个patch, 然后通过全连接层将每个patch映射为其对于的embeddings:
其中\(B\)是batch size, \(T\)即为patches的数目, \(D\)便是图中channels的大小.
将其通过Mixer Layer N次, 并经过global average pooling得到特征, 再通过全连接层得到logits.
输出类别.
其中, Mixer Layer的流程如下(考虑一个batch):
对每个patch进行独立的处理, 假设\(x_i\)为第\(i\)个patch(行向量):
此时得到\(U \in \mathbb{R}^{B \times T \times D}\), 再假设\(u_j \in \mathbb{R}^T\)为第i个channel:
最后得到输出\(Y\).
可以发现, MLP-Mixer 实际上将channel-wise和spatial-wise的操作拆分开来了, 这样即可获得很好的效果.
MLP-Mixer: An all-MLP Architecture for Vision
原文:https://www.cnblogs.com/MTandHJ/p/14951323.html