FastViT: A Fast Hybrid Vision Transformer using Structural Reparameterization

这篇具有很好参考价值的文章主要介绍了FastViT: A Fast Hybrid Vision Transformer using Structural Reparameterization。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

FastViT: A Fast Hybrid Vision Transformer using Structural Reparameterization

论文地址:https://arxiv.org/pdf/2303.14189.pdf


概述

本文提出了一种通用的 CNN 和 Transformer 混合的视觉基础模型

移动设备和 ImageNet 数据集上的精度相同的前提下,FastViT 比 CMT 快3.5倍,比 EfficientNet 快4.9倍,比 ConvNeXt 快1.9倍

本文是 MobileOne 原班人马打造,可以看做是 MobileOne 的方法在 Transformer 上的一个改进型的应用

作者取名 FastViT,是一种 CNN,Transformer 混合架构的低延时模型

作者引入了一种新的 token mixer,叫做 RepMixer,它使用结构重新参数化技术,通过删除网络中的 Shortcut 来降低内存访问成本

进一步使用大核卷积使得 FastViT 精度得到提升,而且不怎么影响延时

在移动设备和 ImageNet 数据集上的精度相同的前提下,FastViT 比 CMT 快3.5倍,比 EfficientNet 快4.9倍,比 ConvNeXt 快1.9倍

在类似的延迟下,FastViT 在 ImageNet 上获得的 Top-1 准确率比 MobileOne 高 4.2%,是一种极具竞争力的混合架构模型


背景

本文的目标是做一个卷积,Attention 的低延时混合架构

因为这种架构有效地结合了 CNN 和 Transformer 的优势,在多个视觉任务上有竞争力

本文的目标是建立一个模型,实现 SOTA 的精度-延时 Trade-off

像 CMT,LIT等 CNN 和 Transformer 混合架构的模型都遵循 MetaFormer的架构

它由带有 skip-connection 的 token mixer 和带有 skip-connection 的前馈网络 (Feed Forward Network) 组成

由于增加了内存访问成本 (memory access cost),这些跳过连接在延迟方面占了很大的开销

为了解决这个延迟开销,本文提出 RepMixer,这是一个完全可以重参数化的混合器

它的特点有:

  1. 是使用结构重参数化来删除 skip-connection
  2. 在训练期间为主要的层添加一些过参数化的额外的分支,以在训练时提升模型的精度,在推理时全部消除
  3. 在网络中使用了大核卷积在前几个阶段替换掉 Self-Attention

具体是在前馈网络 (FFN) 层和 Patch Embedding 层中加入了大核卷积

这些更改对模型的总体延迟影响很小,同时提高了性能

对于性能这块作者在 iPhone 12 Pro 设备和 NVIDIA RTX-2080Ti desktop GPU 上进行了详尽的分析
FastViT: A Fast Hybrid Vision Transformer using Structural Reparameterization
可以看到在两种设备上,FastViT 都实现了最佳的精度-延时的权衡


FastViT 模型架构

FastViT: A Fast Hybrid Vision Transformer using Structural Reparameterization
Stage 的内部架构

FastViT 采用了4个 stage 的架构,每个 stage 相对于前一个的分辨率减半,通道数加倍。前3个 stage 的内部架构是一样的

第4个 stage采用 Attention 来作为 token mixer,可能是为了性能考虑,宁愿不采用结构重参数化,牺牲延时成本,以换取更好的性能

值得注意的是,每个 Stage 中的 FFN 使用的并不是传统的 FFN 架构,而是带有大核 7×7 卷积的 ConvFFN 架构

Stem 的结构

Stem 是整个模型的起点,FastViT 的 Stem 在推理时的结构是 3×3 卷积 + 3×3 Depth-wise 卷积 + 1×1 卷积

在训练时分别加上 1×1 分支或者 Identity 分支做结构重参数化

Patch Embedding 的架构

Patch Embedding 是模型在 Stage 之间过渡的部分

FastViT 的 Patch Embedding 在推理时的结构是 7×7 大 Kernel 的 Depth-wise 卷积 + 1×1 卷积

在训练时分别加上 3×3 分支做结构重参数化

位置编码

位置编码使用条件位置编码,它是动态生成的,并以输入 token 的局部邻域为条件

这些编码是由 depth-wise 运算符生成的,并添加到 Patch Embedding 中


RepMixer 的延时优势

作者对比了 RepMixer 和高效的 Pooling 操作的延时情况

架构使用的是 MetaFormer S12,大概有 1.8 GFLOPs

在 iPhone 12 Pro 移动设备上为从 224×224 到 1024×1024 的各种输入分辨率的模型计时

可以看到 RepMixer 明显优于 Pooling,尤其是在较高分辨率的时候

在分辨率为 384×384 时,使用 RepMixer 可以降低 25.1% 的延迟,而在分辨率为 1024×1024 时

使用 RepMixer 可以降低 43.9% 的延迟

FastViT: A Fast Hybrid Vision Transformer using Structural Reparameterization


FastViT 的大核卷积

RepMixer 的感受野是局部的

我们知道 Self-Attention 操作的感受野是全局的,但是 Self-Attention 操作计算量昂贵

因此之前有工作说使用大核卷积可以在计算量得到控制的情况下有效增加感受野的大小

FastViT 在两个位置引入了大核卷积,分别是 Patch Embedding 层和 FFN

将 V5 与 V3 进行比较,模型大小增加了 11.2%,延迟增加了 2.3 倍,而 Top-1 精度的增益相对较小,只有 0.4%

说明使用大核卷积来替换 Self-Attention 是一种高效,节约延时的方式

V2 比 V4 大 20%,延时比 V4 高 7.1%,同时在 ImageNet 上获得相似的 Top-1 精度
FastViT: A Fast Hybrid Vision Transformer using Structural Reparameterization

随着感受野的增加,大核卷积也有助于提高模型的鲁棒性,FastViT 各种模型的超参数配置如下

FastViT: A Fast Hybrid Vision Transformer using Structural Reparameterization


ImageNet-1K 图像分类实验结果

对于 iPhone 设备延时的测量,作者使用 Core ML Tools (v6.0) 导出模型,并在带有 iOS 16 的 iPhone12 Pro Max 上运行

并将所有模型的 Batch Size 大小设置为1

对于 GPU延时的测量,作者把模型导出为 TensorRT (v8.0.1.6) 格式,并在 NVIDIA RTX-2080Ti 上运行

Batch Size 大小为8,报告100次运行的中位数

与 SOTA 模型的性能比较

本文的 FastViT 实现了最佳的精度-延时均衡

比如 FastViT-S12 在 iPhone 12 Pro 上比 MobileOne-S4 快 26.3%,GPU 上快 26.9%

在 83.9% 的 Top-1 精度下,FastViT-MA36 比 iPhone 12 Pro 上优化的 ConvNeXt-B 模型快 1.9倍, GPU上快2.0倍
FastViT: A Fast Hybrid Vision Transformer using Structural Reparameterization


知识蒸馏实验结果

FastViT 作为学生模型的知识蒸馏实验结果

作者遵循 DeiT 中的实验设置,RegNet16GF 作为教师模型,使用 Hard Distillation

其中教师的输出设置为 true label,一共训练300个 Epochs

FastViT 优于最近最先进的模型 EfficientFormer

FastViT-SA24 的性能与 EfficientFormer-L7 相似,但参数少3.8倍,FLOPs 少2.7倍,延迟低2.7倍

FastViT: A Fast Hybrid Vision Transformer using Structural Reparameterization


目标检测和语义分割实验结果

对于语义分割,作者在 ADE20k 上验证了模型的性能语义分割模型头使用的是 Semantic FPN

所有的模型都是用预先训练好的对应图像分类模型的权重进行初始化

在 512×512 的设置上估计 FLOPs 和延迟

由于输入图像的分辨率较高,在表9和表10中,GPU 延迟在测量时使用了大小为2的 Batch Size

作者将 FastViT 与最近的工作进行了比较

FastViT-MA36 的 mIoU 比 PoolFormer-M36 高 5.2%,但是 PoolFormer 具有更高的 FLOPs、参数量和延迟

FastViT: A Fast Hybrid Vision Transformer using Structural Reparameterization
目标检测和实例分割实验实验 MS-COCO 数据集

所有模型都使用 Mask-RCNN 目标检测和实例分割头按照 1x schedule 进行训练

所有的模型都是用预先训练好的对应图像分类模型的权重进行初始化

结果显示出 FastViT 在多种延迟机制下实现了最先进的性能

FastViT-MA36 模型的性能与 CMT-S 相似,但在桌面GPU 和移动设备上分别快2.4倍和4.3倍

FastViT: A Fast Hybrid Vision Transformer using Structural Reparameterization


总结

本文提出了一种通用的 CNN 和 Transformer 混合的视觉基础模型,是由 MobileOne 原班人马打造

可以看做是 MobileOne 的方法在 Transformer 上的一个改进型的应用

作者引入了一种新的 token mixer,叫做 RepMixer,它使用结构重新参数化技术

通过删除网络中的 Shortcut 来降低内存访问成本,尤其是在较高分辨率时

作者还提出了进一步的架构更改,以提高 ImageNet 分类任务和其他下游任务的性能

在移动设备和 ImageNet 数据集上的精度相同的前提下,FastViT 比 CMT 快3.5倍,比 EfficientNet 快4.9倍,比 ConvNeXt 快1.9倍

在类似的延迟下,FastViT 在 ImageNet 上获得的 Top-1 准确率比 MobileOne 高 4.2%,是一种极具竞争力的混合架构模型


参考文献文章来源地址https://www.toymoban.com/news/detail-417875.html

  1. https://arxiv.org/pdf/2303.14189.pdf
  2. https://arxiv.org/pdf/2107.06263.pdf
  3. https://arxiv.org/pdf/2105.14217.pdf
  4. https://arxiv.org/pdf/2105.14217.pdf
  5. https://mp.weixin.qq.com/s/uqcWy4sx1NQuqOplsGDUlg

到了这里,关于FastViT: A Fast Hybrid Vision Transformer using Structural Reparameterization的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vision Transformer (ViT)

    生成式模型与判别式模型 生成式模型,又称概率模型 ,是指 通过学习数据的分布来建立模型P(y|x) ,然后利用该模型来生成新的数据。生成式模型的典型代表是 朴素贝叶斯模型 ,该模型通过学习数据的分布来建立概率模型,然后利用该模型来生成新的数据。 判别式模型,又

    2024年02月15日
    浏览(53)
  • Vision Transformer综述 总篇

    Transformer首先应用于自然语言处理领域,是一种以自我注意机制为主的深度神经网络。由于其强大的表示能力,研究人员正在寻找将变压器应用于计算机视觉任务的方法。在各种视觉基准测试中,基于变压器的模型表现类似或优于其他类型的网络,如卷积和循环神经网络。由

    2024年02月09日
    浏览(37)
  • Vision Transformer(VIT)

    Vision Transformer(ViT)是一种新兴的图像分类模型,它使用了类似于自然语言处理中的Transformer的结构来处理图像。这种方法通过将输入图像分解成一组图像块,并将这些块变换为一组向量来处理图像。然后,这些向量被输入到Transformer编码器中,以便对它们进行进一步的处理。

    2024年02月07日
    浏览(44)
  • Vision Transformer (ViT)介绍

    paper:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale 把transformer直接应用于图像块序列,也可以在图像分类任务上表现很好。 通过在大数据集上预训练,然后迁移到中等规模和小规模数据集上,ViT可以取得和SOTA的卷积网络同样出色(甚至更好)的结果,同时需要更

    2024年02月13日
    浏览(53)
  • Vision Transformer(VIT)调研

    综述参考:https://zhuanlan.zhihu.com/p/598785102 2020 VIT 代码库 https://github.com/lucidrains/vit-pytorch 只有分类任务,有训练的测试。有各种各样的vit模型结构。 原文 https://arxiv.org/abs/2010.11929 2021 Swim Transformer https://arxiv.org/abs/2103.14030 v2 https://arxiv.org/pdf/2111.09883.pdf code and pretrain_model https:/

    2023年04月11日
    浏览(55)
  • 论文阅读 Vision Transformer - VIT

    通过将图像切成patch线形层编码成token特征编码的方法,用transformer的encoder来做图像分类 解决问题: transformer输入限制: 由于自注意力+backbone,算法复杂度为o(n²),token长度一般要512才足够运算 解决:a) 将图片转为token输入 b) 将特征图转为token输入 c)√ 切patch转为token输入 tra

    2024年02月01日
    浏览(43)
  • CNN + Vision Transformer 结合学习

    介绍三篇结合使用CNN+Transformer进行学习的论文:CvT(ICCV2021),Mobile-Former(CVPR2022),SegNetr(arXiv2307). 论文:https://arxiv.org/abs/2103.15808 代码:https://github.com/leoxiaobin/CvT 解读:CvT | CNN+Vision Transformer会有什么样的火花呢? - 知乎 (zhihu.com) 读论文之transformer系列-CvT:将卷积引入

    2024年02月16日
    浏览(37)
  • ViT-vision transformer

    介绍 Transformer最早是在NLP领域提出的,受此启发,Google将其用于图像,并对分类流程作尽量少的修改。 起源 :从机器翻译的角度来看,一个句子想要翻译好,必须考虑上下文的信息! 如:The animal didn’t cross the street because it was too tired将其翻译成中文,这里面就涉及了it这个

    2024年02月15日
    浏览(41)
  • Vision Transformer架构Pytorch逐行实现

    代码来自哔哩哔哩博主deep_thoughts,视频地址,该博主对深度学习框架方面讲的非常详细,推荐大家也去看看原视频,不管是否已经非常熟练,我相信都能有很大收获。 论文An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale,下载地址。开源项目地址 本文不对开源项目

    2024年02月06日
    浏览(49)
  • 【论文笔记】Video Vision Transformer(ViViT)

    以下是我看了ViViT这篇文章的理解,如果理解有误,欢迎各位大佬指正。 原文:https://arxiv.org/abs/2103.15691 代码:https://github.com/google-research/scenic. 目录 一.介绍 二.简单介绍ViT原理  三.Video Vision Transformer原理(ViViT)  1.Tublet Embedding 2.“central  frame initialisation”3D滤波器生成方法

    2024年04月27日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包