发布时间:2023-07-13 10:00
随着Vision Transformer的发展,利用CNN与Transformer相结合、基于纯Transformer设计的网络架构层出不穷。与此同时,相当一部分研究聚焦于探讨Transformer的必要性,并由此出现了多层感知机(Multi layer perceptron, MLP)、傅里叶变换(Fourier transform)等替代Transformer组件构建网络模型的研究。
本文力图将现有前沿同Transformer相关或力图替代Transformer结构的相关研究汇总到一起,将其模型的架构分别简要列出,并统一汇总各个backbone模型对应的效果。
FC: Fully-Connected layer 全连接层,可用1*1卷积等价替代(Network in Network 论文)。
SA: Self-attention 自注意力模块
FT: Fourier transform 傅里叶变换
FF: Feed-Forward layer 前馈网络层
MHSA: Multi-Head Self-attention 多头自注意力模块
CNN中的卷积操作聚焦于提取图片的局部信息。Transformer能够通过构造patch embeddings提取到图片的全局表示。局部信息的小而精和全局表示的大而全会使得图像的特征提取过程出现提取能力不足和信息冗余的缺点。
为了更好地平衡两者信息各自包含的特点,作者提出了FCU(Feature Coupling Unit) 单元,作为CNN分支和Transformer分支的信息交互渠道,并在此基础上构建整个网络模型。为了解决两个分支的特征大小不匹配的问题,CNN采用 1×1 conv再上采样传递到Trans block中,Trans block采用下采样和1×1 conv传递到CNN。
作者考虑了self-attention和CNN操作在广义的空间池化上的等价性,将其统一到了一起。作者阐明,该过程的本质是对图像中某一区域利用一个权重矩阵进行一个线性变换。因此,在HaloNet中,作者将原始图像划分后的patch的感知区域进行一定比例的扩大,引入一个Transformation matrix 对扩大后的区域进行线性变化。将每个patch进行上述操作之后,汇总成一个维度同输入图片的queies,keys和values的生成类似。
上述操作示意图如下所示:
HaloNet网络家族结构如下所示:
手写数字识别实验(MNIST)中MLP模型能够取得较好的效果。随着图像复杂程度和数据集类别数目的增涨,MLP难以有较为高效的特征提取能力。为了避免特征提取中的参数过于冗余,因此出现了卷积/attention等操作。
为了融合图像像素特征信息和其位置信息,如ViT相同,将原始 H × W × C 1 H×W×C1 H×W×C1图像构建patch,得到 S = H × W / p 2 S = H×W/p^2 S=H×W/p2个patch,再将每个patch通过MLP映射成C2维,该过程已经将原始patch的序列信息融合到了C之中。因此图像整体输入由三维 H × W × C 1 H×W×C1 H×W×C1,映射成了二维 S × C 2 S×C2 S×C2,该过程参数量压缩比率为:
H × W × C 1 / S × C 2 = C 1 × p 2 / C 2 H×W×C1/S×C2=C1×p^2/C2 H×W×C1/S×C2=C1×p2/C2
按照这个基本思路,MLP-Mixer整体架构如下图所示:
作者在更大的图像识别数据集ImageNet-21k和JET-300上面也进行了一些实验,获得了较有竞争力的实验结果。(JET-300数据集并未开源,为谷歌的私有数据集)
该模型构造思路同样从局部先验性质、全局建模能力、位置信息获取的角度进行构建。卷积操作具有较强的局部特征提取的能力,而FC层具有全局建模能力和先验知识。
利用结构重参数技术,作者在训练模型时,为每一个MLP层添加平行的卷积+BN分支,构成一个RepMLP Block。在部署时,把平行的卷积分支等效为MLP分支,使deploy模型只有MLP操作。
与RepVGG的一卷到底相比,RepMLP运行速度更快,并且具备全局建模能力和位置先验性质。其网络结构如下图所示:
为了解决MLP-Mixer模型需要大量数据进行训练的问题,作者利用残差连接和知识蒸馏操作(在和其他模型对比性能指标时未考虑知识蒸馏),只需要ImageNet-1k数据就能够达到较好的性能。其模型结构简要如下图所示:
输入图像的处理方式同ViT、MLP-Mixer均相同。图中,T代表矩阵转置操作,A代表Affine Transformation,其定义如下所示:
式中alpha和beta均为模型学习的参数,这里的x为每一个patch,该操作单独对一个patch进行简单的重新缩放和增加偏置。ResMLP中并未使用任何正则化方法,而是用A代替了正则方法。
本文聚焦于self-attention在网络模块当中的必要性。可以将空间编码过程和self-attention理解为对每一个patch的特征进行拓展,同时将特征建立空间联系。本文意在使用MLP模块对特征的表示空间和位置关系的表示空间均建立联系。网络模块如下图所示:
其中,Channel proj 代表对输入的n*d embedding中每一个token从特征维度进行线性映射(及n中每一个元素对应的d经过MLP)。而 Spatial Gating Unit(SGU) 对输入的n*d embedding中每一个位置对应的特征进行线性映射(所有n个元素在位置d处的特征经过MLP)
因为,SGU单元考虑到了跨token的位置信息,所以可以替代Transformer中的position encoding环节。而通道映射同样带来了特征本身的信息,因此self-attention可以完全被替代了。
在细节处理上,作者发现在通道映射过程中把特征分成两个部分效果更好。具体的SGU单元定义如下所示:
为了验证self-attention在transformer block中的有效性,Luke Melas-Kyriazi将block中attention部分完全替代为FF层,整体网络结构如下图所示:
由图可见,在每一个block中完全没有attention层,而是用全连接层来提取patch embedding之后的信息。由后续的实验结果知,在模型较小的情况下其能与trans based模型有相近的性能,在模型较大的情况下其超越了trans based模型。
Intriguing Properties of Vision Transformers论文系统研究了基于Transformer和CNN构造的图像分类器一些很多有趣的特性,包括纹理与形状信息的提取效果不同。作者对模型的鲁棒性,抗攻击性,抗噪声性,泛化性等诸多特性进行了较为系统的研究,并得出了很多有趣的结论
论文解析为此链接。
Transformer中的SA模块对于长序列有巨大的计算开销,这种开销成为了Transformer使用限制的主要原因。为了代替SA模块,同时保留对输入序列次序特征的敏感性,在Transformer中的encoder部分中,采用FT代替SA层,使得BERT模型在保留92%准确率的同时在GPU上训练速度提升7倍。
对于一个序列{Xn},n属于[0, N-1]其傅里叶变换如下式表达:
利用傅里叶变换构造的encoder和Transformer中的encoder模块对比如下图所示。(左:原始的Trans,右:FT)
目前该范式只用于自然语言处理的基准测试,暂未应用到vision transformer中。
图像识别:在公开的ImageNet-1k数据集上的top1和top5性能指标,对照标准为未使用其他额外数据,未使用知识蒸馏、迁移学习,使用适当的数据增强方法。
对于每一种模型架构提出的不同参数量的结构设计,取其性能指标最好的结果进行统计。
img_size 代表训练时图片的尺寸大小
Name | Style | top1 | img_size | Parameters | FLOPs |
---|---|---|---|---|---|
ResNet-50 | CNN | 78.03 | – | 25.53M | 8343M |
ResNet-101 | CNN | 79.40 | – | 44.49M | 15919M |
Conformer | CNN&Trans | 84.10 | – | 83.3M | – |
HaloNet | CNN&Trans | 84.90 | – | 67M | – |
FFN-B | FF | 74.9 | 224 | 63M | – |
ViT | CNN&Trans | 71.2 | – | 306M | – |
FFN-L | FF | 71.9 | 224 | 206M | – |
MLP-Mixer | MLP | 76.44 | – | 59M | – |
RepMLP-R50 | MLP | 80.07 | – | 87.38M | 8354M |
ResMLP-36 | MLP | 79.70 | 600 | 45M | 8900M |
gMLP-B | MLP | 81.60 | 224 | 73M | 31.6B |
2021.3.30 Scaling Local Self-Attention for Parameter Efficient Visual Backbones[CVPR 2021oral] (HaloNet)
2021.5.4 MLP-Mixer: An all-MLP Architecture for Vision [arXiv]
2021.5.6 Do You Even Need Attention? A Stack of Feed-Forward Layers Does Surprisingly Well on ImageNet [arXiv]
2021.5.5 RepMLP: Re-parameterizing Convolutions into Fully-connected Layers for Image Recognition[arXiv]
2021.5.7 ResMLP: Feedforward networks for image classification with data-efficient training[arXiv]
2021.5.9 Conformer:Local Features Coupling Global Representations for Visual Recognition [arXiv]
2021.5.9 FNet: Mixing Tokens with Fourier Transforms [arXiv]
2021.5.17 Pay attention to MLPs[arXiv]
知乎:Vision MLP超详细解读 (原理分析+代码解读) (一)