[NIPS2021]MLP-Mixer: An all-MLP Architecture for Vision

卷积神经网络(CNN)是计算机视觉的首选模型。 最近,基于注意力的网络(例如ViT)也变得很流行。 在本文中,我们表明,尽管卷积和注意力都足以获得良好的性能,但它们都不是必需的。文章介绍了MLP-Mixer,这是一种仅基于多层感知机(MLP)的体系结构。MLP-Mixer包含两种类型的层:一种具有独立应用于图像patches的MLP(即“混合”每个位置特征),另一种具有跨patches应用的MLP(即“混合”空间信息)。

论文地址:https://arxiv.org/pdf/2105.01601.pdf

代码:https://link.zhihu.com/?target=https%3A//github.com/google-research/vision_transformer

模型结构

MLP-Mixer架构完全基于多层感知机,可以在空间位置或特征通道上重复应用。MLP-Mixer的整体结构如下图所示:

[NIPS2021]MLP-Mixer: An all-MLP Architecture for Vision_第1张图片

MLP-Mixer整体结构

MLP-Mixer其整体思路为:先将输入图片拆分成 

 个patches(每个patch之间不重叠,大小为  ),然后将每个patch映射为  的二维向量作为输入  。通过Per-patch Fully-connected层的操作将每个patch转换成feature embedding,然后送入 N 个Mixer Layer。最后,MLP-Mixer将标准分类头与全局平均池化层配合使用,随后使用Fully-connected进行分类。

MLP-Mixer架构采用两种不同类型的MLP层:token-mixing MLP和channel-mixing MLP。每一个Mixer Layer都由这两种类型的MLP组成。token-mixing MLP 允许不同空间位置(token)之间进行通信,即作用于 

 的列,具有跨patches应用的MLP(即“混合”空间信息);channel-mixing MLP允许不同通道之间进行通信,即作用于  的行,具有独立应用于图像patches的MLP(即“混合”每个位置特征)。token-mixing MLP作用在每个patch的列上,即先对patches部分进行转置,并且所有列参数共享MLP1,得到的输出再重新转置一下。channel-mixing MLP作用在每个patch的行上,所有行参数共享MLP2。这两种类型的层交替执行以促进两个维度间的信息交互。

token-mixing MLP实现了不同空间位置(tokens,即图像的各个patch)之间的信息融合。token-mixing MLP将输入表的每一列(是指各个图像patch中位于同一位置的通道构成的张量,即图中MLP1的输入)作为输入,并且独立地对每个通道进行处理。

channel-mixing MLP实现了不同通道之间的信息融合。channel-mixing MLP将输入表的每一行作为输入,并且独立地对每个token(指每个图像patch构成的张量,即图中MLP2的输入)进行处理。这两类层是交错的,以此实现两个输入维度的交互。相同的channel-mixing MLP(token-mixing MLP)操作应用在输入矩阵 

 的每一行(列)。具体如下图所示:

[NIPS2021]MLP-Mixer: An all-MLP Architecture for Vision_第2张图片

Mixer Layer示意图

Mixer Layer的具体公式可以表示为如下:

[NIPS2021]MLP-Mixer: An all-MLP Architecture for Vision_第3张图片

其中 

 。公式中的表示逐元素的非线性函数(GELU[1])。和 分别是token-mixing MLP和channel-mixing MLP中可调节的宽度。注意的选择独立于输入patches的数量。因此,网络的计算复杂度在输入patches的数量上是线性的,而ViT中的复杂度是二次的。

channel-mixing MLP和token-mixing MLP应用于输入

的每一行(列)时,自然会捆绑每一层内的参数,这样可以提供位置不变性,这也是卷积的显著特征。然而,跨通道绑定参数并不常见。例如卷积神经网络中的可分离卷积对每个通道单独进行卷积,独立于其他通道。但是,在可分离卷积中,每个通道使用不同的卷积核,这与MLP-Mixer中的token-mixing MLP不同,token-mixing MLP针对所有通道共享同一个全接收域核。在增加 C 或 S 时,参数捆绑可以防止网络规模增长过快。并且这种设计方式并不会影响实验结果。(注:捆绑参数其实等同于共享参数)

MLP-Mixer中每一层(除了最初的patch投影层)都具有相同尺寸的输入。除了MLP层,MLP-Mixer使用了skip-connections[2]和Layer Normalization等其他标准架构组件。此外不同于ViT的是,MLP-Mixer没有使用位置编码,因为token-mixing MLP对输入token的顺序已经很敏感,因此可以学习如何表示位置。最后,MLP-Mixer使用一个标准的分类头,由全局平均池化层和一个线性分类器组成。

参考文献

【1】Gaussian Error Linear Units (GELUs). https://arxiv.org/pdf/1606.08415.pdf

【2】Deep residual learning for image recognition. https://openaccess.thecvf.com/content_cvpr_2016/papers/He_Deep_Residual_Learning_CVPR_2016_paper.pdf

作者:1435mm的距离

|关于深延科技|

[NIPS2021]MLP-Mixer: An all-MLP Architecture for Vision_第4张图片

深延科技成立于2018年1月,中关村高新技术企业,是拥有全球领先人工智能技术的企业AI服务专家。以计算机视觉、自然语言处理和数据挖掘核心技术为基础,公司推出四款平台产品——深延智能数据标注平台、深延AI开发平台、深延自动化机器学习平台、深延AI开放平台,为企业提供数据处理、模型构建和训练、隐私计算、行业算法和解决方案等一站式AI平台服务。 

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