Tip: 如果你在进行深度学习、自动驾驶、模型推理、微调或AI绘画出图等任务,并且需要GPU资源,可以考虑使用UCloud云计算旗下的Compshare的GPU算力云平台。他们提供高性价比的4090 GPU,按时收费每卡2.6元,月卡只需要1.7元每小时,并附带200G的免费磁盘空间。通过链接注册并联系客服,可以获得20元代金券(相当于6-7H的免费GPU资源)。欢迎大家体验一下~
0. 简介
轻量级卷积神经网络(CNNs)已成为移动视觉任务的标准选择。它们的空间归纳偏置使得它们能在各种视觉任务中通过较少的参数学习表示。然而,这些网络在空间上具有局部性。为了学习全局性表示,人们开始采用基于自注意力机制的视觉Transformer(ViTs)。不同于CNNs,ViTs模型较大。在《MOBILEVIT: LIGHT-WEIGHT, GENERAL-PURPOSE, AND MOBILE-FRIENDLY VISION TRANSFORMER》文中,我们探讨了这样一个问题:是否可以结合CNNs和ViTs的优点,为移动视觉任务构建一个轻量级且延迟低的网络?为此,我们介绍了MobileViT,一种适用于移动设备的轻量级和通用视觉Transformer。MobileViT为Transformer处理信息的全局性提供了一种不同的视角。我们的研究结果显示,MobileViT在不同任务和数据集中显著优于基于CNN和ViT的网络。
1. 主要贡献
- MobileViT模块能够有效地在一个张量中同时编码局部信息和全局信息(如图1b所示)
- MobileViT提供了一种学习全局表示的新视角。标准卷积涉及三个步骤:展开、局部处理和折叠。MobileViT模块用变换器的全局处理替代了卷积的局部处理。这使得MobileViT模块同时具备了CNN和ViT的特性,帮助它以更少的参数和简单的训练方法(如基本增强)学习到更优的表征
- 首次证明轻量级ViTs可以在不同的移动视觉任务中,通过简单的训练方法达到与轻量级CNN相当的性能。在大约5-6百万参数的预算下,MobileViT在ImageNet-1k数据集上达到了78.4%的Top-1准确率,比MobileNetv3高出3.2%
图2:与轻量级CNN模型相比,MobileViT展现了更好的任务级泛化特性。图中列出了不同特征提取器(MobileNetv1(Howard等人,2017年)、MobileNetv2(Sandler等人,2018年)、MobileNetv3(Howard等人,2019年)、MNASNet(Tan等人,2019年)、MixNet(Tan & Le,2019年b)和MobileViT(我们的研究))在MS-COCO数据集上的SSDLite网络参数。
2. 3 移动视觉变换器:一个轻量级变换器
标准的ViT模型,如图1a所示,将输入 X ∈ R H × W × C X∈\mathbb{R}^{H×W×C} X∈RH×W×C重塑为一系列展平的补丁 X f ∈ R N × P C X_f∈\mathbb{R}^{N×PC} Xf∈RN×PC,将其投影到固定的 d d d维空间 X p ∈ R N × d X_p∈\mathbb{R}^{N×d} Xp∈RN×d中,然后使用 L L L层变换器模块学习补丁之间的表示。视觉变换器中自注意力的计算成本为 O ( N 2 d ) O(N^2d) O(N2d)。这里, C C C、 H H H和 W W W分别代表张量的通道、高度和宽度, P = w h P=wh P=wh是补丁中的像素数,其高度为 h h h,宽度为 w w w, N N N是补丁的数量。由于这些模型忽略了CNN中固有的空间归纳偏置,它们需要更多的参数来学习视觉表示。例如,基于ViT的网络DPT(Dosovitskiy等人,2021年)与基于CNN的网络DeepLabv3(Chen等人,2017年)相比,学习的参数多了6倍,以提供类似的分割性能(DPT vs. DeepLabv3:345M vs. 59M)。此外,与CNN相比,这些模型的优化性不佳。这些模型对L2正则化敏感,并需要大量的数据增强以防止过拟合(Touvron等人,2021a;Xiao等人,2021年)。
(a) 标准视觉变换器(ViT)
(b) MobileViT。在这里,MobileViT模块中的 C o n v − n × n Conv-n×n Conv−n×n代表标准的 n × n n×n n×n卷积,而MV2指的是MobileNetv2模块。执行下采样的模块标记为↓2。
本文介绍了一种轻量级的ViT模型,MobileViT。其核心思想是像卷积一样使用变换器来学习全局表示。这使我们能够隐式地将类似卷积的特性(例如,空间偏置)融入网络中,通过简单的训练方法(例如,基本增强)学习表示,并轻松地将MobileViT与下游架构(例如,用于分割的DeepLabv3)集成起来
3. MobileViT架构
3.1 MobileViT模块
如图1b所示,MobileViT模块旨在用较少的参数对输入张量的局部和全局信息进行建模。具体来说,对于给定的输入张量 X ∈ R H × W × C X ∈ \mathbb{R}^H×W×C X∈RH×W×C,MobileViT首先应用一个 n × n n×n n×n的标准卷积层,然后跟随一个逐点(或1×1)卷积层,生成 X L ∈ R H × W × d X_L ∈ \mathbb{R}^{H×W×d} XL∈RH×W×d。 n × n n×n n×n卷积层对局部空间信息进行编码,而逐点卷积则将张量投影到高维空间(或 d d d维,其中 d > C d > C d>C),通过学习输入通道的线性组合。
通过MobileViT,我们希望在拥有有效感受野 H × W H×W H×W的同时,模拟长距离的非局部依赖关系。模拟长距离依赖的一个广泛研究方法是空洞卷积。然而,这种方法需要谨慎选择空洞率,否则权重会应用在填充的零上,而不是有效的空间区域(Yu & Koltun, 2016; Chen et al., 2017; Mehta et al., 2018)。另一个有前景的解决方案是自注意力机制(Wang et al., 2018; Ramachandran et al., 2019; Bello et al., 2019; Dosovitskiy et al., 2021)。在自注意力方法中,采用多头自注意力的视觉变换器(ViTs)被证明对视觉识别任务有效。然而,ViTs结构庞大且优化性能不佳。这是因为ViTs缺乏空间感知偏置(Xiao et al., 2021; Graham et al., 2021)。
为了使MobileViT能够在具有空间感知偏置的情况下学习全局表示,我们将 X L X_L XL展开为 N N N个不重叠的平坦化补丁 X U ∈ R P × N × d X_U ∈ \mathbb{R}^{P×N×d} XU∈RP×N×d。这里, P = w h P=wh P=wh, N = H W P N=\frac{HW}{P} N=PHW是补丁的数量, h ≤ n h≤n h≤n和 w ≤ n w≤n w≤n分别是补丁的高度和宽度。对于每个 p ∈ { 1 , ⋅ ⋅ ⋅ , P } p ∈ \{1, ···, P\} p∈{1,⋅⋅⋅,P},通过应用变换器对补丁间关系进行编码,得到 X G ∈ R P × N × d X_G ∈ \mathbb{R}^{P×N×d} XG∈RP×N×d。
与ViTs丢失像素的空间顺序不同,MobileViT既不会丢失补丁顺序,也不会丢失每个补丁内像素的空间顺序(见图1b)。因此,我们可以折叠 X G ∈ R P × N × d X_G ∈ \mathbb{R}^{P×N×d} XG∈RP×N×d 以获得 X F ∈ R H × W × d X_F ∈ \mathbb{R}^{H×W×d} XF∈RH×W×d。然后通过逐点卷积将 X F X_F XF 投影到低维 C C C 空间,并通过拼接操作与 X X X 结合起来。接着,又一个 n × n n × n n×n 卷积层被用来融合这些拼接后的特征。请注意,由于 X U ( p ) X_U (p) XU(p) 通过卷积从 n × n n × n n×n 区域编码局部信息,而 X G ( p ) X_G(p) XG(p) 通过变换器层编码 P P P 个补丁的全局信息,所以 X G X_G XG 中的每个像素都可以编码 X X X 中所有像素的信息,如图4所示。因此,MobileViT的整体有效感受野是 H × W H × W H×W。
图4:MobileViT模块中的每个像素都与其他像素相互作用。在此示例中,红色像素通过变换器关注蓝色像素(其他补丁中相应位置的像素)。由于蓝色像素已经使用卷积编码了关于相邻像素的信息,这使得红色像素能够从图像中的所有像素编码信息。这里,黑色和灰色网格中的每个单元分别代表一个补丁和一个像素。