分享自:

MobileViT:轻量级、通用且移动友好的视觉Transformer

期刊:ICLR

本研究由苹果公司的Sachin Mehta和Mohammad Rastegari共同完成,并以题为“MobileViT: Light-weight, General-purpose, and Mobile-friendly Vision Transformer”的论文形式,作为会议论文发表在ICLR 2022上。

一、 研究背景 本研究属于计算机视觉领域,特别是深度学习模型架构设计范畴,聚焦于为移动设备开发高效能的视觉识别模型。背景知识主要涉及两类主流视觉模型:轻量级卷积神经网络(CNN)和视觉变换器(Vision Transformer, ViT)。轻量级CNN(如MobileNet系列)因其参数少、计算效率高且易于优化,已成为移动视觉任务的默认选择。然而,CNN的核心操作(卷积)本质上是空间局部的,难以直接建模图像中的长程依赖关系。另一方面,基于自注意力机制的ViT能够进行全局信息处理,在多项视觉任务上展现出强大性能。但标准ViT模型通常非常庞大,需要大量参数、复杂的训练技巧(如大规模数据增强、强L2正则化)才能达到良好性能,并且难以直接集成到为CNN设计的任务特定网络中(如下游的检测、分割网络),导致其不适用于资源受限的移动设备。即使将ViT的参数量压缩到与轻量级CNN相当的水平,其性能也显著落后。因此,一个核心的开放性问题被提出:能否结合CNN和ViT的优势,构建一个既轻量、低延迟又具备强大性能的通用视觉骨干网络,用于移动视觉任务?本研究的核心目标正是回答这个问题,旨在设计一个结合了CNN的空间归纳偏置、易于优化的特性,以及ViT的全局处理能力和输入自适应加权优势的移动友好型网络。

二、 研究流程 本研究系统地提出了MobileViT模型,并通过详尽的实验验证其有效性。整体工作流程包含模型设计、高效训练方法、以及在多个标准数据集和任务上的全面评估。

2.1 核心模型设计:MobileViT块与网络架构 研究首先提出了创新的MobileViT块作为基本构建模块。设计灵感源于将变换器视为卷积这一新颖视角。标准卷积可分解为三个连续操作:展开(unfolding,将局部区域拉平)、局部处理(矩阵乘法)、折叠(folding,恢复空间结构)。MobileViT块保留了卷积的展开和折叠操作,但将中间的局部处理替换为使用变换器进行的全局处理。具体流程如下: 1. 局部特征编码:对于输入张量,首先应用一个n x n标准卷积层(文中默认n=3),后接一个1x1卷积层。前者捕获局部空间信息,后者将特征投影到更高维度。 2. 全局信息建模:将上一步得到的特征图在空间上展开成一系列不重叠的扁平化图像块(patch)。随后,对每个空间位置(即所有块的同一相对位置)的像素序列(而非像标准ViT那样对每个块序列)应用变换器层(L层)。这种操作确保了像素的空间顺序(包括块内和块间)不被破坏,并且结合了局部卷积编码的上下文,使得每个输出像素都能聚合来自输入图像所有像素的信息(具有H x W的有效感受野)。这被称为“通过变换器的全局处理”。 3. 特征融合与投影:将变换器输出的全局特征重新折叠回空间结构,然后通过一个1x1卷积层投影回较低的通道维度,最后通过跳跃连接与原始输入特征在通道维度上进行拼接。接着,使用另一个n x n卷积层来融合这些拼接的特征。

这种设计赋予了MobileViT块类似CNN的属性(如空间归纳偏置),同时又能进行全局处理,使其能够以更少的参数学习更优的表示,并且对数据增强的敏感性较低。

基于MobileViT块,研究者构建了完整的MobileViT网络架构。网络设计遵循轻量级CNN的理念,初始层是一个步长为2的3x3标准卷积,用于快速下采样和提取低级特征。随后,网络交替堆叠了MobileNetV2(MV2)模块和MobileViT模块。其中,MV2模块主要负责空间下采样,而MobileViT模块则在多个空间尺度上(特征图尺寸为32x32, 16x16, 8x8)学习多尺度特征表示。研究者设计了三种不同大小的模型:MobileViT-XXS, -XS, -S,其参数量分别为130万、230万和560万,以覆盖不同的移动设备算力需求。网络在所有空间级别上设置图像块大小为2x2(即h=w=2),这确保了每个像素都能通过卷积和变换器聚合全部信息,并在实验中证明了其在精度和延迟之间的良好权衡。

2.2 高效的训练方法:多尺度采样器 为了提升MobileViT的训练效率和泛化能力,并使其能够学习多尺度表示而无需微调,研究者提出了一种新颖的多尺度采样器。与以往在每个固定迭代次数后为所有GPU统一采样一个新分辨率的做法不同,该方法: 1. 在每次训练迭代中,为每个GPU独立地从一个预定义的分辨率集合(如{160x160, 192x192, 256x256, 288x288, 320x320})中随机采样一个空间分辨率。 2. 采用可变大小的批次以适应不同分辨率。给定最大分辨率下的批次大小B,对于采样到的较小分辨率,按面积比例相应增大该次迭代的批次大小。 这种方法减少了每个训练周期所需的优化器更新次数,从而加速了训练;同时迫使网络适应不同尺度,增强了模型的鲁棒性和泛化能力,在ImageNet分类任务上带来了约0.5%的精度提升。实验还证明该方法也适用于CNN(如MobileNetV2),具有通用性。

2.3 实验评估流程 研究通过三个核心视觉任务来全面评估MobileViT的性能、通用性和移动友好性。所有MobileViT模型均在ImageNet-1K数据集上从头开始训练,使用基础数据增强(随机裁剪和水平翻转)、AdamW优化器、余弦学习率衰减和适中的L2权重衰减(0.01),训练300个周期。这与许多需要“高级”数据增强(如MixUp, CutMix, RandAugment)的ViT变体形成鲜明对比。 1. 图像分类(ImageNet-1K):这是评估模型表示能力的基础任务。研究比较了MobileViT与一系列轻量级CNN(如MobileNetV1/V2/V3、ShuffleNetV2、EfficientNet-B0)和ViT变体(如DeiT、PiT、CvT、CrossViT等)在相似参数量下的Top-1精度。同时,评估了模型在训练/验证误差上的泛化能力。 2. 目标检测(MS-COCO):为了评估其作为通用骨干网络的能力,研究将预训练的MobileViT作为特征提取器,集成到SSDLite检测框架中。在MS-COCO数据集上进行微调,输入分辨率为320x320,使用AdamW优化器和相应的检测损失函数。比较指标是在相似参数量下,不同骨干网络(如MobileNetV1/V2/V3、MNasNet)所获得的平均精度均值(mAP)。 3. 语义分割(PASCAL VOC 2012):同样评估其通用性,将MobileViT集成到DeepLabV3分割框架中。在PASCAL VOC数据集(包含额外标注数据)上进行微调,输出步长为16。比较指标是在相似参数量下,不同骨干网络所获得的平均交并比(mIoU)。 4. 移动设备性能评估:这是验证“移动友好性”的关键。研究将训练好的全精度MobileViT模型转换为CoreML格式,并在iPhone 12上测量其在不同任务和输入分辨率下的推理时间(毫秒),以评估其是否满足实时性(≥30 FPS)要求。同时,也对比了其与MobileNetV2、DeiT、PiT等模型在iPhone上的实际推理速度。

三、 主要结果 3.1 图像分类结果 MobileViT在ImageNet-1K上表现出色,显著超越了同等参数量的轻量级CNN和ViT变体。具体数据如下: * 对比轻量级CNN:参数量约230万的MobileViT-XS取得了74.8% 的Top-1精度,比参数量相似的MobileNetV2(69.8%)、ShuffleNetV2(69.4%)和MobileNetV3(67.4%)分别高出5.0%、5.4%和7.4%。参数量560万的MobileViT-S达到78.4%,比同等量级的轻量CNN(如EfficientNet-B0的76.3%)和部分重量级CNN(如ResNet-101的77.4%)更优。 * 对比ViT变体:在仅使用基础数据增强的情况下,MobileViT-S的78.4%精度优于许多使用高级数据增强的ViT变体。例如,它比使用高级增强的DeiT(72.2%, 570万参数)高出6.2%,比使用高级增强的PiT(73.0%, 490万参数)高出5.4%,且参数量更少。更重要的是,MobileViT展示了与CNN相似的优秀泛化能力:其训练误差与验证误差之间的差距很小,并且在多尺度采样器的帮助下,对不同的输入分辨率表现出良好的鲁棒性。同时,MobileViT对L2权重衰减超参数相对不敏感,显示了其鲁棒性。

3.2 通用骨干网络结果 * 目标检测:在MS-COCO数据集上,将SSDLite的骨干网络从MNasNet替换为MobileViT-XS,在参数量减少约1.8倍(从490万到270万)的同时,mAP提升了1.8%(从23.0%到24.8%)。使用更大的MobileViT-S骨干,mAP达到27.7%,超越了使用VGG(35.6M参数, mAP 25.1%)和ResNet-50(22.9M参数, mAP 25.2%)等重型骨干的SSD-300模型。 * 语义分割:在PASCAL VOC 2012上,将DeepLabV3的骨干从MobileNetV2替换为MobileViT-XS,参数量从450万降至290万的同时,mIoU提升了1.4%(从75.7%到77.1%)。MobileViT-S骨干以仅640万参数取得了79.1%的mIoU,与使用ResNet-101骨干(5820万参数, mIoU 80.5%)的性能相当,但参数量减少了约9倍。 这些结果充分证明了MobileViT作为一种通用、轻量且高性能的视觉骨干网络的有效性,能够无缝集成到现有任务特定架构中并带来显著增益。

3.3 移动设备性能结果 在iPhone 12上的实测数据显示: * MobileViT-XS和-XXS模型在图像分类(256x256)、目标检测(320x320)和语义分割(512x512)任务上,除了最大型号(MobileViT-S)在最高分辨率的分割任务外,均能实现实时推理(推理时间<33ms)。 * 与轻量级CNN相比,MobileViT在iPhone上的推理速度目前仍慢于MobileNetV2(例如,MobileViT-XS 7.28ms vs. MobileNetV2 0.92ms,分类任务)。论文分析认为,这主要是因为移动设备上缺乏针对变换器操作的专用硬件级优化(而CNN受益于如批量归一化融合等优化),且当前的推理计算图可能不是最优。然而,在相同计算量(FLOPs)的ViT变体中,MobileViT更快(例如,与PiT相比,MobileViT-XS快1.45倍)。 * 研究还探讨了通过调整MobileViT块中的图像块大小来权衡精度和速度。使用较大的块(如8,4,2组合)虽然精度略有下降,但能获得更快的推理速度,这为实际部署提供了灵活性。

四、 结论与价值 本研究成功回答了开篇的问题,证实了结合CNN和ViT优势以构建高性能移动视觉模型的可行性。MobileViT的提出具有重要的科学价值和应用价值: * 科学价值:它提出了一种新颖且有效的模型设计范式——“变换器即卷积”,为如何将全局处理能力优雅地嵌入到具有空间归纳偏置的轻量级架构中提供了新思路。它证明了轻量级ViT模型能够在仅使用简单训练方法的情况下,在多个任务上达到并超越轻量级CNN的性能,打破了ViT难以轻量化和优化的固有印象。 * 应用价值:MobileViT是一个轻量、通用且移动友好的视觉骨干网络。其参数量小、性能优越、易于集成到下游任务的特点,使其非常适合部署在手机、自动驾驶轮椅、增强现实眼镜等资源受限的边缘设备上,执行实时的目标检测、语义分割、图像分类等任务,具有广阔的产业应用前景。 * 启发性观点:研究强调了对于移动设备而言,浮点运算次数(FLOPs)不足以衡量模型效率,必须考虑实际推理时间,因为后者受内存访问、并行度和平台特性等多种因素影响。这提示未来研究需更注重硬件感知的模型设计。

五、 研究亮点 1. 开创性设计:首次提出了“MobileViT块”和“变换器即卷积”的核心理念,创造性地将全局变换器处理嵌入到局部卷积框架中,实现了性能与效率的突破。 2. 卓越性能:在参数量相当的情况下,MobileViT在ImageNet分类、COCO检测、VOC分割等多个核心任务上,全面超越了当时最先进的轻量级CNN和ViT变体,树立了新的标杆。 3. 训练友好性与强泛化:模型仅需基础数据增强和标准的训练配置即可达到优异性能,对超参数(如权重衰减)不敏感,且表现出优秀的泛化能力(训练与验证误差差距小),降低了研究和应用的门槛。 4. 实用的训练优化:提出的多尺度采样器不仅提升了MobileViT的训练效率和性能,还被证明是一种可推广至CNN的通用训练加速与泛化提升技术。 5. 全面的移动端验证:研究没有停留在理论或GPU性能上,而是通过CoreML转换和在iPhone上的实测,提供了真实的移动端延迟数据,并客观分析了当前Transformer在移动端部署面临的挑战,为后续的硬件和软件协同优化指明了方向。

六、 其他有价值内容 文中包含详细的消融实验,系统性地验证了各个设计选择的有效性,包括:权重衰减的影响、MobileViT块中跳跃连接的重要性、不同图像块尺寸对精度和速度的权衡、以及指数移动平均和标签平滑等技术的影响。这些分析为理解模型行为和未来改进提供了坚实的基础。此外,论文还开源了所有代码和预训练模型,促进了该领域的可复现性和后续研究。

上述解读依据用户上传的学术文献,如有不准确或可能侵权之处请联系本站站长:admin@fmread.com