Vision Transformer 必读系列之图像分类综述(三): MLP、ConvMixer 和架构分析(下)

简介: 在 Vision Transformer 大行其道碾压万物的同时,也有人在尝试非注意力的 Transformer 架构(如果没有注意力模块,那还能称为 Transformer 吗)。这是一个好的现象,总有人要去开拓新方向。相比 Attention-based 结构,MLP-based 顾名思义就是不需要注意力了,将 Transformer 内部的注意力计算模块简单替换为 MLP 全连接结构,也可以达到同样性能。典型代表是 MLP-Mixer 和后续的 ResMLP。


2. ConvMixer-based



ConvMixer 的含义是:

  1. 不包括自注意力层
  2. 不包括 Spatial Mixer MLP 层
  3. 包括 Channel Mixer 层,这个层可以是 1x1 的点卷积,或者 MLP 层

640.png

因为 Channel Mixer MLP 层和 1x1 卷积完全等价,所以这里所说的 ConvMixer-based 是强调 Spatial Mixer 层模块可以替换为 DW 卷积(关于全局自注意力和 DW 卷积的区别和联系,在 3.4.3 中会详细说明)。ConvMixer-based 的典型代表是 ConvMixer,其结构图如下所示:

640.png

在 MLP Mixer 模型中说过, ViT 的编码器层核心结构可以分成全局空间自注意力层(用于 token 和 token 间信息交互),通道混合 MLP 层(用于每个 token 内的 channle 间信息交互)。ConvMixer 也是沿用了同样的分解策略,只不过替换模块不再是 Spatial Mixer MLP 和 Channel Mixer MLP,而是全部替换为了卷积,分别是 DW Conv 和 1x1 Point Conv。使用 Depthwise Convolution(逐通道卷积) 来提取 token 间的相关信息,类似 MLP Mixer 中的 token-mixing MLP,使用 Pointwise Convolution(1x1 卷积) 来提取 channel 间的相关信息,类似 MLP Mixer 中的 channel-mixing MLP,然后将两种卷积交替执行,混合两个维度的信息。性能如下所示:

640.png

本论文核心结论不是强调 DW 卷积的重要性,而是说明 ViT 这种架构的成功不在于是使用了自注意力模块还是 Spatial Mixer MLP,只要有相应的代替结构,性能其实都差不多,我们可能要关注整个 Transformer 架构而不是注意力等模块。这个问题在 3.4.1 中也有详细说明。


3. 通用架构分析


前面所提出的 MLP-Mixer 和 ResMLP 已经证明了 ViT 成功的关键可能并不是注意力机制,而是来自其他地方或者说整体架构。基于这个出发点,有大量学者对整个架构进行深入研究,试图从更高维度来理解 Transformer,典型算法如下所示:

640.png

3.1 MetaFormer


基于 ResMLP 的自注意力不是必备的而是可以通过 MLP 代替的结论,MetaFormer 作者提出了更进一步的架构抽象,如下所示:

640.png

其核心观点和 ResMLP 一致,即 Transformer 模型中自注意力模块不是最核心的(并不是说可以直接去掉),Transformer 的成功来源其整体架构,同时可以将 Transformer 的 Attention 模块和 ResMLP 的 Spatial MLP 层统称为 Token Mixer,进而提出了 MetaFormer 通用结构,Meta 的含义代表 Token Mixer 是一种统称,只要能够实现 Token Mixer 功能的模型都属于 MetaFormer 范畴,例如你也可以将 Token Mixer 换成 3x3 DW 卷积。为了验证这个架构的可行性,作者将  Token Mixer 替换为最简单的无参数的 Pooling 算子,其性能如右边图所示,令人意外的是 PoolFormer 性能居然比 DeiT 和 ResMLP 更好,详细结构如下所示。640.png

由于架构非常简单,不再进行详细描述。以下是基于 PoolFormer 的一些 Ablation。

640.png

Pooling 模块代码如下:

640.png

注意有个减号,原因是 Pooling 模块后面还有一个残差连接线,Pooling 模块中先减掉 x 才能构成可能的恒等变换 x+ (Pool(x)-x) = x,而通常的 Conv 操作是可以通过调整初始化核参数来实现  x+ Conv(x)=x 的。


3.2 Empirical Study


An Empirical Study of CNN, Transformer, and MLP 对现在火热的 CNN、Transformer 和 MLP 之争进行了一些经验性研究,可以带给我们一些启发。
为了能够公平比较,作者首先设计了一个通用的 SPACH 架构,在该框架下引入了 mixing block 概念,其结构如下所示,上面是单阶段 SPACH 表示 ViT 这种直筒结构,多阶段 SPACH 表示 ResNet 这种下采样结构,SPACH-MS 结构可以用于高分辨率图片输入场合,该结构和大部分网络例如 PVT 一样。

640.png

内部的 Spatial Mixing 可以即插即用的替换为任意 CNN、Transformer 和 MLP ,如下所示:

640.png

作者对上述三种 Spatial Mixing 模块和单阶段、多阶段 SPACH 模块进行实验,得出了如下经验性结论:

  • 无论选择三种网络结构中的哪一种 Spatial Mixing 模块,多阶段框架始终显著优于单阶段框架。这个结论在其他文章中也有相同的描述。
  • CNN 这种局部建模是非常有效且至关重要的在 MLP 和 Transformer 添加一个局部建模旁路,可以在仅增加极少的参数量和计算量的情况下,获得显著的性能提升。这个也同样被大部分论文(例如 CeiT )所证实。
  • MLP 在小模型尺寸下可以获得很强的性能,但是在模型尺寸增加时会出现严重的过拟合。作者认为过拟合是 MLP 获得 SOTA 性能的主要障碍。
  • 卷积和 Transformer 是互补的,卷积结构的泛化能力最好,而 Transformer 结构的模型容量最大。这表明卷积依然是设计轻量级模型的最佳选择,而在设计大模型时,可以充分考虑 Transformer。


可以说上述 4 条结论已经在各个算法中得到了充分验证,是非常可信的,这也能够启发后续相关网络设计。


3.3 Demystifying Local Vision Transformer


Demystifying Local Vision Transformer: Sparse Connectivity, Weight Sharing, and Dynamic Weight 深入分析了注意力和 Conv 的关系,并进行了大量的实验验证,是一篇值得学习的论文。
Conv 是众所周知的局部提取算子,而 Swin Transformer 中虽然没有借助 Conv ,但是提出了类似功能的局部注意力模块 W-MSA,本文试图深入分析局部注意力机制和 Conv (尤其是 depth-wise convolution )的区别和联系,其关系如下所示:

640.png


  • (a) 为标准的 3x3 卷积,其同时作用于空间和通道维度

  • (b) 为 Transformer 中的全局空间注意力和 Spatial Mixing MLP,作用于空间维度
  • (c) 是 Transformer 局部窗口注意力和 3x3 DW 卷积,相比于 (b) 关注空间的局部维度
  • (d) 是常规的 MLP 层 和 1x1 点卷积,作用于通道维度
  • (e) 是全连接层,作用于整个空间和通道维度


这里需要明确 ViT 中我们所说的全局自注意力实际上是全局空间自注意力,是逐通道算的,通道间没有信息混合,通道信息混合是通过后续的 FFN 模块实现。
通过上图可以清晰的发现,局部注意力计算可以采用 3x3 DW 卷积等效替换,并且可以总结出局部注意力的三条特性:

  • Sparse connectivity:每个 Token 的输出只依赖于其所在局部窗口内的 Tokens,而且各个 channel  之间是无联系的 (这里忽略了 attention 中 query,key 和 value 的线性投影,attention 可以看成在计算好的权重下对 Tokens 的特征进行加权求和,而且是 channel-wise 的)。
  • Weight sharing:权重对于各个 channel 是共享的( (1, HW) X (HW, C) = (1, C),通道维度权重共享)。
  • Dynamic weight:权重不是固定的,而是基于各个 Tokens 动态生成的。


DW Conv 具备前两条特性,但是其不是动态权重的,其权重是一旦训练好就固定了,不会随着图片内容不同而改变。下面是汇总表格:

640.png

作者还进一步描述了 MLP、Conv 等层的联系,如下所示:

640.png

从 2d 全连接层 MLP 出发:

  • 将其功能分成 Token Mixer MLP 和 Channel Mixer MLP,将其统称为 Sep. MLP
  • Sep. MLP 如果具备了自适应的动态权重功能,即为 ViT 带注意力的模型
  • 而 ViT 如果引入局部窗口计算能力,则称为 Local ViT,如果有空间尺度缩放的多尺度结构则和 PVT 类似


从 2d 全连接层 MLP 出发:

  • 如果引入稀疏连接功能,则退化为 Conv
  • 如果空间存在缩放,则可以构成金字塔结构的 Pyramid MS Conv
  • 如果通道维度有瓶颈结构,则构成了 Bottleneck


如果同时具备稀疏连接,仅仅在空间维度信息聚合则为逐深度方向可分离 DW-S Conv。
基于上述等价分析,作者基于 Swin Transformer 提出了 DWNet。

640.png

对 Swin Transformer 的改动包括:

  • 将 W-MSA 和 SW-MSA 替换为 7x7 的 DW 卷积+BN+Relu 模块
  • 将 stage 中的 LN 全部换成 BN
  • 为了进一步提高性能,还提出动态权重版本,即将 DW 卷积替换为带有 SE 模块的动态加权 DW (D-DW)


其性能如下所示:

640.png

可以看出,如此简单的模型性能和 Swin Transformer 差不多,这也和 ConvMixer 相互印证了。
如果说 MetaFormer 还有 Transformer 的影子,那么 ConvNeXt 就是一个更彻底的去 Transformer 的例子了。其核心出发点是纯粹的 Conv 堆叠性能能不能超过 Transformer?ConvNeXt 对 Swin Transformer 进行了逐模块分解,并且将其应用于 ResNet 上,通过不断对比两者差异,作者将 ResNet 改造为 ConvNeXt,性能最终超越 Swin Transformer,证明了纯粹的 Conv 堆叠性能能够超过 Transformer,这也间接说明 Transformer 架构和优化策略的优异性,而不是所谓的 Attention。

640.png



4. 总结



本文对 Vision Transformer 发展进行了详细的综述,由于内容比较多,下面进行简要总结。
在 Attention is all you need 论文中第一次提出 Transformer 架构,ViT 将其第一次成功推广到了视觉任务领域,DeiT 针对 ViT 需要超大数据预训练问题提出了蒸馏学习训练方式,在解决大数据预训练问题的同时也进一步提高了性能,推动了 ViT 在视觉中的进一步应用的可能。
ViT 的核心在于 Attention,但是整个架构也包括多个组件,每个组件都比较关键,有诸多学者对多个组件进行了改进。我们可以简单将 ViT 结构分成 6 个部分:

  1. Token 模块,其中可以分成 Image to Token 模块 和 Token to Token 模块, Image to Token 将图片转化为 Token,通常可以分成非重叠 Patch Embeding 和重叠 Patch Embeding,而  Token to Token 用于各个 Transformer 模块间传递 Token,大部分方案都和 Image to Token 做法一样即 Patch Embeding,后续也有论文提出动态窗口划分方式,本质上是利用了图片级别的语义自动生成最有代表性的采样窗口。

  2. 位置编码模块,其中可以分成显式位置编码和隐式位置编码,显式位置编码表示需要手动设置位置编码,包括绝对位置编码和相对位置编码,而隐式位置编码一般是指的利用网络生成自适应内容的位置编码向量,其提出的主要目的是为了解决显式位置编码中所遇到的当图片尺寸变化时候位置编码插值带来的性能下降问题。

  3. 注意力模块,早期的自注意力模块都是全局注意力,计算量巨大,因此在图片领域会针对性设计减少全局注意力,典型做法是降低 KV 空间维度,但是这种做法没有解决根本问题,因此 Swin Transformer 中提出了局部窗口自注意力层,自注意力计算仅仅在每个窗口内单独计算,不再存在上述问题。

  4. FFN 模块,其改进方向大部分是引入 DW 卷积增强局部特征提取能力,实验也证明了其高效性。

  5. Normalization 模块位置,一般是 pre norm。

  6. 分类预测模块,通常有两种做法,额外引入 Class Token 和采用常规分类做法引入全局池化模块进行信息聚合。


在此之后,我们还分析了如何输出多尺度特征图,方便用于下游密集任务以及如何训练更深的 Transformer。
随着研究的深入,大家发现 attention 可能不是最重要的,进而提出了 MLP-based 和 ConvMixer-based 类算法,这些算法都是为了说明自注意力模块可以采用 MLP 或者 Conv 层代替,这说明 Transformer 的成功可能来自整个架构设计。
进一步,MetaFormer、An Empirical Study of CNN, Transformer, and MLP 和 Demystifying Local Vision Transformer 等论文都详细说明和验证了上面的说法,并都提出了自己各自的看法,这或许也指明了 ViT 的下一步研究方向。
从目前 Vision Transformer 进展来看,目前 CNN 和 attention 的边界已经越来越模糊了,相互可以等价替换,也可以相互增强,谁强谁弱尚未可知,或许 Conv、MLP 和 attention 混合才是最终能够实际落地的出路吧!


文章来源:【OpenMMLab

2022-01-27 18:24

目录
相关文章
|
2天前
|
机器学习/深度学习 安全 算法
十大主流联邦学习框架:技术特性、架构分析与对比研究
联邦学习(FL)是保障数据隐私的分布式模型训练关键技术。业界开发了多种开源和商业框架,如TensorFlow Federated、PySyft、NVFlare、FATE、Flower等,支持模型训练、数据安全、通信协议等功能。这些框架在灵活性、易用性、安全性和扩展性方面各有特色,适用于不同应用场景。选择合适的框架需综合考虑开源与商业、数据分区支持、安全性、易用性和技术生态集成等因素。联邦学习已在医疗、金融等领域广泛应用,选择适配具体需求的框架对实现最优模型性能至关重要。
128 76
十大主流联邦学习框架:技术特性、架构分析与对比研究
|
4月前
|
人工智能 测试技术 数据处理
首个Mamba+Transformer混合架构多模态大模型来了,实现单卡千图推理
【10月更文挑战第18天】《LongLLaVA: Scaling Multi-modal LLMs to 1000 Images Efficiently via Hybrid Architecture》提出了一种新型多模态大模型LongLLaVA,结合了Mamba和Transformer架构,通过系统优化实现在单张A100 80GB GPU上处理近千张图像的突破。该模型在视频理解、高分辨率图像分析和多模态智能体任务中表现出色,显著提升了计算效率。
186 65
|
14天前
|
机器学习/深度学习 自然语言处理 PyTorch
深入剖析Transformer架构中的多头注意力机制
多头注意力机制(Multi-Head Attention)是Transformer模型中的核心组件,通过并行运行多个独立的注意力机制,捕捉输入序列中不同子空间的语义关联。每个“头”独立处理Query、Key和Value矩阵,经过缩放点积注意力运算后,所有头的输出被拼接并通过线性层融合,最终生成更全面的表示。多头注意力不仅增强了模型对复杂依赖关系的理解,还在自然语言处理任务如机器翻译和阅读理解中表现出色。通过多头自注意力机制,模型在同一序列内部进行多角度的注意力计算,进一步提升了表达能力和泛化性能。
|
8天前
|
机器学习/深度学习 人工智能 NoSQL
记忆层增强的 Transformer 架构:通过可训练键值存储提升 LLM 性能的创新方法
Meta研究团队开发的记忆层技术通过替换Transformer中的前馈网络(FFN),显著提升了大语言模型的性能。记忆层使用可训练的固定键值对,规模达百万级别,仅计算最相似的前k个键值,优化了计算效率。实验显示,记忆层使模型在事实准确性上提升超100%,且在代码生成和通用知识领域表现优异,媲美4倍计算资源训练的传统模型。这一创新对下一代AI架构的发展具有重要意义。
30 11
记忆层增强的 Transformer 架构:通过可训练键值存储提升 LLM 性能的创新方法
|
2月前
|
机器学习/深度学习 编解码 人工智能
超越Transformer,全面升级!MIT等华人团队发布通用时序TimeMixer++架构,8项任务全面领先
一支由麻省理工学院、香港科技大学(广州)、浙江大学和格里菲斯大学的华人研究团队,开发了名为TimeMixer++的时间序列分析模型。该模型在8项任务中超越现有技术,通过多尺度时间图像转换、双轴注意力机制和多尺度多分辨率混合等技术,实现了性能的显著提升。论文已发布于arXiv。
177 84
|
10天前
|
机器学习/深度学习 人工智能 并行计算
Titans:谷歌新型神经记忆架构,突破 Transformer 长序列处理的瓶颈
Titans 是谷歌推出的新型神经网络架构,通过神经长期记忆模块突破 Transformer 在处理长序列数据时的瓶颈,支持并行计算,显著提升训练效率。
63 5
Titans:谷歌新型神经记忆架构,突破 Transformer 长序列处理的瓶颈
|
30天前
|
人工智能 算法 测试技术
StockMixer:上海交大推出预测股票价格的 MLP 架构,通过捕捉指标、时间和股票间的复杂相关性,预测下一个交易日的收盘价
StockMixer 是上海交通大学推出的基于多层感知器的股票价格预测架构,通过指标、时间和股票混合实现高效预测。
139 11
StockMixer:上海交大推出预测股票价格的 MLP 架构,通过捕捉指标、时间和股票间的复杂相关性,预测下一个交易日的收盘价
|
15天前
|
测试技术 双11 开发者
一文分析架构思维之建模思维
软件里的要素不是凭空出现的,都是源于实际的业务。本文从软件设计本源到建模案例系统的介绍了作者对于建模的思维和思考。
|
2月前
|
机器学习/深度学习 测试技术 定位技术
新扩散模型OmniGen一统图像生成,架构还高度简化、易用
近期,一篇题为“OmniGen: Unified Image Generation”的论文介绍了一种新型扩散模型OmniGen,旨在统一图像生成任务。OmniGen架构简洁,无需额外模块即可处理多种任务,如文本到图像生成、图像编辑等。该模型通过修正流优化,展现出与现有模型相当或更优的性能,尤其在图像编辑和视觉条件生成方面表现突出。OmniGen仅含3.8亿参数,却能有效处理复杂任务,简化工作流程。尽管如此,OmniGen仍存在对文本提示敏感、文本渲染能力有限等问题,未来研究将继续优化其架构与功能。
66 16
|
2月前
|
机器学习/深度学习 存储 人工智能
基于AI的实时监控系统:技术架构与挑战分析
AI视频监控系统利用计算机视觉和深度学习技术,实现实时分析与智能识别,显著提升高风险场所如监狱的安全性。系统架构包括数据采集、预处理、行为分析、实时决策及数据存储层,涵盖高分辨率视频传输、图像增强、目标检测、异常行为识别等关键技术。面对算法优化、实时性和系统集成等挑战,通过数据增强、边缘计算和模块化设计等方法解决。未来,AI技术的进步将进一步提高监控系统的智能化水平和应对复杂安全挑战的能力。

热门文章

最新文章