基础Transforemer架构 ------mobileViT

系列文章目录


文章名称:Light-weight, General-purpose, and Mobile-friendly Vision Transformer
文章地址:http://arxiv.org/abs/2110.02178
代码地址:https://github.com/apple/ml-cvnets.
发表时间:2022
应用领域:即插即用
核心模块:空间归纳偏置



Abstract

轻量级卷积神经网络 (CNN) 是移动视觉任务的实际应用。 他们的空间归纳偏置使他们能够在不同的视觉任务中以更少的参数学习表征。 然而,这些网络在空间上是局部的。 为了学习全局表示,采用了基于自我注意的视觉Transformer (ViT)。 与 CNN 不同,ViT 是重量级的。 在本文中,我们提出以下问题:是否有可能结合 CNN 和 ViT 的优势来构建用于移动视觉任务的轻量级和低延迟网络? 为此,我们推出了 MobileViT,这是一种用于移动设备的轻型通用vision transformer。 MobileViT 为全球信息处理与Transformer提供了不同的视角。 我们的结果表明,MobileViT 在不同任务和数据集上的表现明显优于 CNN 和基于 ViT 的网络。 在 ImageNet-1k 数据集上,MobileViT 在大约 600 万个参数的情况下达到了 78.4% 的 top-1 精度,比 MobileNetv3(基于 CNN)和 DeIT(基于 ViT)的精度分别高出 3.2% 和 6.2%。 参数。 在 MS-COCO 对象检测任务中,对于相似数量的参数,MobileViT 的准确率比 MobileNetv3 高 5.7%。 我们的源代码是开源的,可在以下位置获得:

Itroduction

基于自我注意的模型,尤其是vison transformer —ViTs,是学习视觉表征的卷积神经网络 (CNN) 的替代方案。 简而言之,ViT 将图像划分为一系列不重叠的补丁,然后使用 Transformer 中的多头自注意力学习补丁间表示。 总的趋势是增加 ViT 网络中的参数数量以提高性能。 然而,这些性能改进是以模型大小(网络参数)和延迟为代价的。 许多现实世界的应用程序(例如,增强现实和sutonomous wheelchairs)需要视觉识别任务(例如,对象检测和语义分割)即使在资源受限的移动设备上运行。 为了有效,用于此类任务的 ViT 模型应该轻巧且快速。 即使减小 ViT 模型的模型大小以匹配移动设备的资源限制,它们的性能也明显比轻量级 CNN 差。 例如,对于大约 5-6 百万的参数预算,DeIT(Touvron 等人,2021a)的准确度比 MobileNetv3(Howard 等人,2019)低 3%。 因此,设计轻量级 ViT 模型势在必行。

轻量级 CNN 为许多移动视觉任务提供了动力。 然而,基于 ViT 的网络还远未在此类设备上使用。 与易于优化和与特定任务网络集成的轻量级 CNN 不同,ViT 是重量级的,更难优化,需要大量的数据增强和 L2 正则化以防止过度拟合,并且下游任务需要昂贵的解码器,尤其是密集预测任务。 在基于 ViT 的模型中需要更多参数可能是因为它们缺乏图像特定的归纳偏差,而这在 CNN 中是固有的。构建稳健且高性能的 ViT 模型,**结合卷积和Transformer

的混合方法正在引起人们的兴趣**(convitmobile-former)。 然而,这些混合模型仍然是重量级的并且对数据增强很敏感。 例如,去除 CutMix 和 DeIT-style 数据增强会导致 Heo 等人的 ImageNet 准确率显着下降(78.1% 至 72.4%)(2021)。

结合 CNN 和 Transformer 的优势来构建用于移动视觉任务的 ViT 模型仍然是一个悬而未决的问题。 移动视觉任务需要轻量级、低延迟和准确的模型,以满足设备的资源限制,并且是通用的,以便它们可以应用于不同的任务(例如,分割和检测)
请注意,浮点运算 (FLOP) 不足以在移动设备上实现低延迟,因为 FLOP 忽略了几个重要的推理相关因素,例如内存访问、并行度和平台特征。 例如,Heo 等人的基于 ViT 的方法PiT,FLOP 比 DeIT 少 3 倍,但在移动设备上具有相似的推理速度(DeIT 与 iPhone-12 上的 PiT:10.99 ms 与 10.56 ms)。 因此,本文不是针对 FLOPs1 进行优化,而是着重于为移动视觉任务设计轻量级 (§3)、通用 (§4.1 & §4.2) 和低延迟 (§4.3) 网络。 我们通过 MobileViT 实现了这一目标,它结合了 CNN 的优势(例如,空间归纳偏差和对数据增强的敏感性较低)和 ViT(例如,输入自适应加权和全局处理)
具体来说,我们介绍了 MobileViT 块,它有效地在张量中编码局部和全局信息(图 1b)。 与 ViT 及其变体(有和没有卷积)不同,MobileViT 提供了一种不同的视角来学习全局表示。 标准卷积涉及三个操作:unforlding、local processing and folding(展开、局部处理、和折叠)。 MobileViT 块使用transformer将卷积中的局部处理替换为全局处理。 这允许 MobileViT 块具有类似 CNN 和 ViT 的属性,这有助于它以更少的参数和简单的训练方法(例如,基本增强)学习更好的表示。 据我们所知,这是第一项表明轻量级 ViTs 可以通过跨不同移动视觉任务的简单训练方法实现轻量级 CNN 级性能的工作。 对于大约 5-6 百万的参数预算,MobileViT 在 ImageNet-1k 数据集(Russakovsky 等人,2015 年)上实现了 78.4% 的 top-1 准确率,比 MobileNetv3 准确率高 3.2%,并且具有简单的训练方法 (MobileViT 与 MobileNetv3:300 与 600 个时期;1024 与 4096 批次大小)。 当 MobileViT 在高度优化的移动视觉任务特定架构中用作功能主干时,我们还观察到性能显着提高。 用 MobileViT 替换 MNASNet(Tan 等人,2019 年)作为 SSDLite(Sandler 等人,2018 年)中的特征骨干,产生了更好的(+1.8% mAP)和更小的(1.8×)检测网络(图 2)。
在这里插入图片描述

Realated work

轻量级 CNN

CNN 中的基本构建层是标准的卷积层。 由于这一层的计算成本很高,因此已经提出了几种基于分解的方法来使其轻量级和移动友好(flattened-cnnxception)。 其中,xception的可分离卷积引起了人们的兴趣,并被广泛用于最先进的轻量级 CNN 以执行移动视觉任务,包括 MobileNets、ShuffleNetv2、MixNet和 MNASNet。 这些轻量级 CNN 用途广泛且易于训练。 例如,这些网络可以轻松替换现有任务特定模型(例如 DeepLabv3)中的重量级骨干网(例如 ResNet),以减小网络大小并改善延迟。 尽管有这些好处,这些方法的一个主要缺点是它们在空间上是局部的。 这项工作将transformers视为卷积; 允许利用convolutions(例如,通用和简单训练)和transformers(例如,全局处理)的优点来构建轻量级(§3)和通用(§4.1 和 §4.2)ViT

vison transformers

vit应用 Transformer。 用于大规模图像识别,并表明使用超大规模数据集(例如 JFT-300M),ViT 可以在没有图像特定归纳偏差的情况下实现 CNN 级别的精度。 通过广泛的数据增强、大量的 L2 正则化和蒸馏,可以在 ImageNet 数据集上训练 ViT 以实现 CNN 级别的性能(deitdeit bdeepvit)。 然而,与 CNN 不同的是,ViT 显示出不合标准的可优化性并且难以训练。 随后的工作(例如,levitCoAtnetswin transformerPVTT2T-ViTMobile former)表明,这不合格的可优化性是由于 ViT 中缺乏空间归纳偏差在 ViT 中使用卷积结合此类偏差可提高其稳定性和性能。 已经探索了不同的设计来获得convolution和transformer的好处。 例如,ViT-C 为 ViT 添加了一个早期的卷积干。CvT修改了 transformer 中的多头注意力,并使用深度可分离卷积代替线性投影。BoTNet用多头注意力取代了 ResNet 瓶颈单元中的标准 3×3 卷积。ConViT使用门控位置自注意力合并软卷积归纳偏置。 PiT使用基于深度卷积的池化层扩展 ViT。 尽管这些模型可以通过广泛的增强实现与 CNN 竞争的性能,但这些模型中的大多数都是重量级的。 例如,PiT 和 CvT 学习的参数分别比 EfficientNet (Tan & Le, 2019a) 多 6.1 倍和 1.7 倍,并且在 ImageNet1k 数据集上取得了相似的性能(top-1 准确率约为 81.6%)。 此外,当这些模型被缩小以构建轻量级 ViT 模型时,它们的性能明显低于轻量级 CNN。 对于大约 600 万的参数预算,PiT 的 ImageNet-1k 精度比 MobileNetv3 低 2.2%。

discussion

在这里插入图片描述
与普通的 ViT 相比,将卷积和Transformer结合起来会产生健壮且高性能的 ViT。 然而,这里一个悬而未决的问题是:如何结合卷积和transformer的优势来构建用于移动视觉任务的轻量级网络? 本文侧重于设计轻量级 ViT 模型,这些模型通过简单的训练方法优于最先进的模型。 为此,我们引入了 MobileViT,它结合了 CNN 和 ViT 的优势来构建轻量级、通用且移动友好的网络。 MobileViT 带来了几个新颖的观察结果。
(i) 更好的性能:对于给定的参数预算,与跨不同移动视觉任务的现有轻量级 CNN 相比,mobile vit模型实现了更好的性能(§4.1 和 §4.2。
(ii) 泛化能力:泛化能力是指训练和评估指标之间的差距。 对于具有相似训练指标的两个模型,具有更好评估指标的模型更具有泛化性,因为它可以在未见过的数据集上做出更好的预测。 与之前的 ViT 变体(带和不带卷积)相比,即使使用大量数据增强,与 CNN 相比也显示出较差的泛化能力,MobileViT 显示出更好的泛化能力(图 3)。
(iii) 鲁棒性:一个好的模型应该对超参数(例如,数据增强和 L2 正则化)具有鲁棒性,因为调整这些超参数既费时又费资源。 与大多数基于 ViT 的模型不同,MobileViT 模型使用基本增强进行训练,并且对 L2 正则化 (§C) 不太敏感。

MOBILEVIT: A LIGHT-WEIGHT TRANSFORMER

在这里插入图片描述
一个标准的 ViT 模型,如图 1a 所示,将输入 X ∈ R H × W × C \mathbf{X}\in\mathbb{R}^{H\times W\times C} XRH×W×C重塑为一系列扁平化的补丁 X f ∈ R N × P C \mathbf{X}_{f}\in\mathbb{R}^{N\times PC} XfRN×PC,将其投影到固定的 d 维空间 X p ∈ R N × d \mathbf{X}_p\in\mathbb{R}^{N\times d} XpRN×d,然后学习使用一堆 L 个transformer块的块间表示。vision Transformer中自我注意的计算成本是 O ( N 2 d ) O(N^{2}d) O(N2d)。 其中,C、H、W分别表示张量的通道、高度和宽度,P=wh是高h宽w的patch中的像素个数,N是patch的个数。 由于这些模型忽略了 CNN 固有的空间归纳偏差,因此它们需要更多参数来学习视觉表征。 例如,与基于 CNN 的网络 DeepLabv3相比,基于 ViT 的网络 DPT 学习了多 6 倍的参数,以提供类似的分割性能(DPT 对比 DeepLabv3:345 M 对比 59 M)。 此外,与 CNN 相比,这些模型表现出不合标准的可优化性。 这些模型对 L2 正则化很敏感,需要大量数据增强以防止过度拟合(deitEarly Convolutions Help Transformers See Better)。
本文介绍了一种轻量级的 ViT 模型,MobileViT。 核心思想是用 transformers 作为卷积来学习全局表示。 这使我们能够在网络中隐含地包含类似卷积的属性(例如,空间偏差),通过简单的训练方法(例如,基本增强)学习表示,并轻松地将 MobileViT 与下游架构(例如,用于分割的 DeepLabv3)集成。

MobileViT Architecture

在这里插入图片描述

MobileViT block

MobileViT 块,如图 1b 所示,旨在使用较少的参数对输入张量中的局部和全局信息进行建模。 形式上,对于给定的输入张量 X ∈ R H × W × C \mathbf{X}\in\mathbb{R}^{H\times W\times C} XRH×W×C,MobileViT 应用 n × n 标准卷积层,然后是逐点(或 1 × 1)卷积层以产生 X L ∈ R H × W × d \mathbf{X}_{L}\in\mathbb{R}^{H\times W\times d} XLRH×W×d。 n×n 卷积层对局部空间信息进行编码,而逐点卷积通过学习输入通道的线性组合将张量投影到高维空间(或 d 维,其中 d > C)。
使用 MobileViT,我们希望在拥有 H × W 的有效感受野的同时对远程非本地依赖项进行建模。 广泛研究的远程依赖建模方法之一是扩张的卷积。 然而,这些方法需要仔细选择扩张率。 否则,权重将应用于填充零而不是有效空间区域。 另一个有前途的解决方案是自注意力(Attention Augmented Convolutional NetworksPVT)。 在自我注意方法中,具有多头自我注意的视觉Transformer (ViT) 被证明对视觉识别任务有效。 然而,ViT 是重量级的并且表现出不合标准的可优化性。 这是因为 ViT 缺乏空间归纳偏差(Early Convolutions Help Transformers See BetterLeViT)。

为了使 MobileViT 能够学习具有空间归纳偏差的全局表示,我们将 X L X_L XL 展开为 N 个非重叠的扁平块 X U ∈ R P × N × d \mathbf{X}_U\in\mathbb{R}^{P\times N\times d} XURP×N×d。 这里, P = w h P = wh P=wh, N = H W P N=\frac{H W}{P} N=PHW是 patch 的数量,h ≤ n 和 w ≤ n 分别是 patch 的高度和宽度。 对于每个 p ∈ {1, · · · , P },通过应用transformer对块间关系进行编码以获得 X G ∈ R P × N × d \mathbf{X}_G\in\mathbb{R}^{P\times N\times d} XGRP×N×d为:
X G ( p ) = Transformer ⁡ ( X U ( p ) ) , 1 ≤ p ≤ P \mathbf{X}_G(p)=\operatorname{Transformer}(\mathbf{X}_U(p)),1\le p\le P\quad XG(p)=Transformer(XU(p)),1pP (1)

与丢失像素空间顺序的 ViT 不同,MobileViT 既不会丢失补丁顺序,也不会丢失每个补丁内像素的空间顺序(图 1b)。 因此,我们可以折叠 X G ∈ R P × N × d \mathbf{X}_G\in\mathbb{R}^{P\times N\times d} XGRP×N×d得到 X F ∈ R H × W × d \mathbf{X}_F\in\mathbb{R}^{H\times W\times d} XFRH×W×d。 然后使用逐点卷积将 X F X_F XF投影到低 C 维空间,并通过级联操作与 X 组合。 然后使用另一个 n × n 卷积层来融合这些串联的特征。 请注意,由于 X U ( p ) \mathbf{X}_U(p) XU(p)使用卷积对来自 n × n 区域的局部信息进行编码,而 X G ( p ) \mathbf{X}_G(p) XG(p)对第 p 个位置的 P 块上的全局信息进行编码,因此 X G X_G XG中的每个像素都可以对来自 X 中所有像素的信息进行编码,如图所示 在图 4 中。因此,MobileViT 的整体有效感受野为 H × W
在这里插入图片描述

Realationship to convolutions(同卷积的关系)

标准卷积可以看作是三个顺序操作的堆栈:(1) 展开,(2) 矩阵乘法(学习局部表示),以及 (3) 折叠。 MobileViT 块类似于卷积,因为它也利用相同的构建块。 MobileViT 块将卷积中的局部处理(矩阵乘法)替换为更深层次的全局处理(一堆transformer层)。 因此,MobileViT 具有类似卷积的属性(例如,空间偏差)。 因此,MobileViT 块可以看作是卷积的Transformer。 我们特意设计的简单设计的一个优点是可以开箱即用地使用低级高效的卷积和transformer实现; 让我们无需任何额外努力即可在不同设备上使用 MobileViT。

Light-weight(轻量级)

MobileViT 块使用标准卷积和transformer分别学习本地和全局表示。 因为之前的工作(例如,MobileNets; delight)表明使用这些层设计的网络是重量级的,一个自然的问题就出现了:为什么 MobileViT 是轻量级的? 我们认为问题主要在于使用 Transformer 学习全局表征。 对于给定的补丁,以前的工作(例如,deitLeViT)通过学习像素的线性组合将空间信息转换为潜在信息(图 1a)。 然后通过使用transformer学习补丁间信息来对全局信息进行编码。 因此,这些模型失去了图像特定的归纳偏差,这是 CNN 中固有的。 因此,他们需要更多的能力来学习视觉表征。 因此,它们又深又广。 与这些模型不同,MobileViT 使用卷积和transformer的方式使生成的 MobileViT 块具有类似卷积的属性,同时允许进行全局处理。 这种建模能力使我们能够设计浅而窄的 MobileViT 模型,而这些模型又是轻量级的。 与使用 L=12 和 d=192 的基于 ViT 的模型 DeIT 相比,
MobileViT 模型分别在 32 × 32、16 × 16 和 8 × 8 空间级别使用 L= {2, 4, 3} 和 d= {96, 120, 144}。 由此产生的 MobileViT 网络比 DeIT 网络更快 (1.85×)、更小 (2×) 和更好 (+1.8%)(表 3;§4.3)

Computational cost(计算量)

MobileViT 和 ViTs(图 1a)中多头自注意力的计算成本分别为 O ( N 2 P d ) O(N^2Pd) O(N2Pd) O ( N 2 d ) O(N^2d) O(N2d)。 理论上,与 ViT 相比,MobileViT 效率较低。 然而,在实践中,MobileViT 比 ViTs 更有效。 在 ImageNet-1K 数据集(表 3;§4.3)上,MobileViT 的 FLOPs 减少了 2 倍,准确率比 DeIT 高 1.8%。 我们认为这是因为与轻量化设计(如上所述)类似的原因。

MobileViT architecture(mobilevit 架构)

我们的网络受到轻量级 CNN 理念的启发。 我们在通常用于移动视觉任务的三种不同网络大小(S:小型、XS:超小型和 XXS:超小型)下训练 MobileViT 模型(图 3c)。 MobileViT 中的初始层是跨步 3 × 3 标准卷积,然后是 MobileNetv2(或 MV2)块和 MobileViT 块(图 1b 和§A)。 我们使用 Swish (Elfwing et al., 2018) 作为激活函数。 按照 CNN 模型,我们在 MobileViT 块中使用 n = 3。 特征图的空间维度通常是2和h的倍数,w≤n。 因此,我们在所有空间级别设置 h = w = 2(更多结果请参见 §C)。 MobileViT 网络中的 MV2 块主要负责下采样。 因此,这些块在 MobileViT 网络中是浅而窄的。 图 3d 中 MobileViT 的空间级参数分布进一步表明,MV2 块对总网络参数的贡献在不同的网络配置中非常小。

Multi-scale Sampler for training efficiency(提高训练效率的多尺度采样器)

在这里插入图片描述
基于 ViT 的模型学习多尺度表示的标准方法是微调。 例如,deit对以 224 × 224 的空间分辨率训练的 DeIT 模型独立地进行不同大小的微调。 这种学习多尺度表示的方法更适合 ViT,因为位置嵌入需要根据输入大小进行插值,并且网络的性能受插值方法的影响。 与 CNN 类似,MobileViT 不需要任何位置嵌入,它可能会在训练期间受益于多尺度输入。

以前基于 CNN 的作品表明多尺度训练是有效的。 然而,这些作品中的大多数在固定次数的迭代后对新的空间分辨率进行采样。 例如,YOLOv2 在每 10 次迭代时从预定义的集合中采样一个新的空间分辨率,并在训练期间在不同的 GPU 上使用相同的分辨率。 这会导致 GPU 利用率不足和训练速度变慢,因为所有分辨率都使用相同的批量大小(使用预定义集中的最大空间分辨率确定)。 为了促进 MobileViT 在不进行微调的情况下学习多尺度表示并进一步提高训练效率(即更少的优化更新),我们将多尺度训练方法扩展到可变大小的批量大小。 给定一组已排序的空间分辨率 S = { ( H 1 , W 1 ) , ⋯   , ( H n , W n ) } \mathcal{S}=\{(H_1,W_1),\cdots,(H_n,W_n)\} S={(H1,W1),,(Hn,Wn)}和最大空间分辨率 ( H n , W n ) (H_n,W_n) (Hn,Wn)的批量大小 b,我们随机抽取一个空间分辨率 ( H t , W t ) ∈ S (H_t,W_t) \in \mathcal{S} (Ht,Wt)S在每个 GPU 上的第 t 次训练迭代并计算第 t 次迭代的批量大小为 b t = H n W n b H t W t b_t=\frac{H_n W_n b}{H_t W_t} bt=HtWtHnWnb。 因此,较大的批量大小用于较小的空间分辨率。 这减少了每个时期的优化器更新,并有助于加快训练速度。
图 5 比较了标准和多尺度采样器。 在这里,我们将 PyTorch 中的 DistributedDataParallel 称为标准采样器。 总体而言,多尺度采样器 (i) 减少了训练时间,因为它需要更少的优化器更新和可变大小的批次(图 5b),(ii)将性能提高约 0.5%(图 10;§B),以及(iii ) 迫使网络学习更好的多尺度表示 (§B),即,在不同空间分辨率下评估时,同一网络会产生更好的性能。
与使用标准采样器训练的相比。 在§B 中,我们还展示了多尺度采样器是通用的,并提高了 CNN(例如 MobileNetv2)的性能。

EXPERIMENTAL RESULTS

在本节中,我们首先评估 MobileViT 在 ImageNet-1k 数据集上的性能,并表明 MobileViT 提供了比最先进的网络更好的性能(§4.1)。 在 §4.2 和 §4.3 中,我们分别展示了 MobileViT 是通用的和移动友好的。

Conclusion

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值