轻量化网络结构MobileViT

MobileViT是作者在2021年提出的一种新型网络结构,它将Transformer融入MobileNetV2,旨在创建适用于移动设备的轻量级视觉模型。与传统的ViT不同,MobileViT不需要大量数据增强,且在ImageNet-1k上表现出优于MobileNetV3和DeiT的性能。MobileViT设计兼顾轻量化、通用性和低延迟,解决了Transformer缺乏局部特征的问题。通过多尺度采样训练策略,模型能获得更好的多尺度表达能力。实验结果显示,MobileViT在分类、检测和分割任务上均有出色表现,并且在速度上虽慢于CNN,但提供了更高的准确率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

论文: MOBILEVIT: LIGHT-WEIGHT, GENERAL-PURPOSE, AND MOBILE-FRIENDLY VISION TRANSFORMER

Github:https://github.com/chinhsuanwu/mobilevit-pytorch

2021,苹果公司

传统的视觉 transformers(ViTs),主要是在transformer中嵌入cnn,而本文基于在cnn中嵌入transformers,即在mobilenetv2中嵌入transformer,提出了轻量化的网络结构MOBILEVIT。最终在 ImageNet-1k 上达到78.4%的top-1准确性,比 MobileNetv3高出 3.2%,比 DeIT高出6.2%。在 MS-COCO检测任务上, MobileViT比MobileNetv3高出5.7%。 

is it possible to combine the strengths of CNNs and ViTs to build a light-weight and low latency network for mobile vision tasks?

传统的ViTs需要大量的训练数据,大量的数据增强(data augmentation)以及正则化(L2 regularization),在分割类型任务需要比较昂贵的解码模块。而本文提出的MobileViT只需要正常简单的数据增强即可,不需要 CutMix,MixUp,Mosaic,DeIT-style等数据增强方式。

MobileViT主要的设计思想包括

  1. 轻量化light-weight
  2. 通用general-purpose
  3. 低延迟low latency

a表示传统的ViT设计结构,b表示本文提出的MobileViT,主要改进在于将MobileNetv2中的残差block替换为MobileViT block。

传统的cnn具有更好的局部特征能力,transformer具有更好的全局特征能力,将cnn和transformer进行结合,可以获得全局能力+局部能力,可以更好的解决transformer缺乏空域归纳偏置(spatial inductive bias)的问题。

 如图灰色表示每个像素,黑色表示每个patch。MobileViT block,可以实现通过红色像素加入到蓝色像素中,得到全局的特征,而每一个蓝色的像素已经基于cnn编码了其8邻域的像素。

MobileViT包含3个基本模型,(S: small, XS: extra small, XXS: extraextra small)

MobileViT的优点包括

  1. 更好的表现,精度更高,速度慢于cnn,Better performance
  2. 更好的泛化能力, Generalization capability
  3. 训练更加鲁棒,Robust

多尺度采样训练策略 

这里采用pytorch的DistributedDataParallel进行多尺度训练的加速,不仅会有训练速度的提升,同时还会有0.5%精度的提升,同时促使网络学习更好的多尺度表达能力。

实验结果

分类结果, 

检测结果, 

分割结果, 

 

和cnn推理速度对比,

 

 

### 轻量级 Transformer 模型综述 除了 MobileViT 外,还有多个轻量级 Transformer 架构被设计用于高效计算资源下的高性能表现。这些架构通过不同的优化手段,在保持良好性能的同时降低了参数数量和计算复杂度。 #### 1. TinyBERT TinyBERT 是 BERT 的蒸馏版本,旨在减少原始 BERT 模型的大小并提高推理速度而不显著损失准确性[^1]。该模型采用知识蒸馏技术来学习教师网络的知识,并针对移动设备进行了专门优化。 #### 2. DistilBERT DistilBERT 同样基于知识蒸馏方法构建而成,它仅保留了原版 BERT 中最核心的部分,从而实现了更小体积以及更快的速度,同时在许多自然语言处理任务上仍能取得接近于全尺寸 BERT 的效果。 #### 3. DeiT (Data-efficient Image Transformers) DeiT 针对视觉识别任务提出了高效的训练策略,使得 Vision Transformer 可以利用较少的数据集达到良好的泛化能力。此框架引入了一系列改进措施,包括但不限于混合精度训练和支持多种输入分辨率的能力。 #### 4. PVT (Pyramid Vision Transformer) PVT 设计了一种金字塔结构的空间下采样机制,允许不同层次的感受野逐渐增大,这有助于捕捉图像中的多尺度特征信息。这种分层的设计不仅提高了效率还增强了表达力。 ```python from transformers import AutoModelForImageClassification, ViTFeatureExtractor model_name = "uw-madison/pvt-tiny" feature_extractor = ViTFeatureExtractor.from_pretrained(model_name) model = AutoModelForImageClassification.from_pretrained(model_name) def preprocess_image(image_path): image = feature_extractor(images=image_path, return_tensors="pt") return image image_input = preprocess_image("path_to_your_image.jpg") with torch.no_grad(): output = model(**image_input) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值