0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一种新的轻量级视觉Transformer

CVer 来源:CVHub 作者:CVHub 2022-12-19 14:00 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Introduction

随着 ViT 的出现,Transformer 模型在计算机视觉领域遍地开花,一层激起一层浪。虽然精度很高,但被人广为诟病的依旧是它的效率问题,说人话就是这东西压根不好部署在移动端。

随后,有许多研究人员提出了很多解决方案来加速注意力机制,例如早先苹果提出的 Mobile-Former 以及前段时间的 EdgeNeXt,均是针对移动端设计的。

本文的思路也很简单,就是仿造 CNNs 圈子中的移动端之王—— MobileNet 来进行一系列的设计和优化。对于端侧部署来讲,模型的参数量(例如 Flash 大小)和延迟对资源受限型的硬件来说至关重要。因此,作者结合了细粒度联合搜索策略,提出了一种具备低延迟和大小的高效网络——EfficientFormerV2 ,该网络在同等量级参数量和延迟下比 MobileNetV2 可以高出4个百分点(ImageNet验证集)。

28605084-7f5c-11ed-8abf-dac502259ad0.pngComparison of model size, speed, and performance

上图所示模型是在 ImageNet-1K 上进行训练所获得的 Top-1 精度。延迟是在 iPhone 12(iOS 16)上进行测量的。每个圆圈的面积与参数数量(模型大小)成正比。可以看出,EfficientFormerV2 在模型更小和推理速度更快的情况下获得了更高的性能。

Framework

先来看下整体的网络长什么样子:

288aa5a0-7f5c-11ed-8abf-dac502259ad0.pngOverall

既然都叫 EfficientFormerV2,那必然是在上一版的基础上改进了,如图(a)所示。没什么特别新奇的,一个很常规的 ViT 型架构。下面的图表是作者统计的实验改进结果:

29266526-7f5c-11ed-8abf-dac502259ad0.pngNumber of parameters, latency, and performance for various design choices

基于整体架构图和上述表格,让我们逐步拆解看看究竟做了哪些改进。

Token Mixers vs. Feed Forward Network

通常来说,结合局部信息可以有效提高性能,同时使 ViTs 对明确的位置嵌入缺失表现得更加稳健。PoolFormerEfficientFormer 中都使用了 3×3 的平均池化层(如图 2(a)所示)作为局部的Token Mixers。采用相同卷积核大小的深度可分离卷积(DWCONV)替换这些层不会带来延迟开销,同时性能也能提高 **0.6%**,参数量仅微涨 0.02M。此外,同 NASVit,作者也在 ViTs 的前馈网络(FFN)中注入了局部信息建模层,这也有益于提高性能。

这里,作者直接将原来的 Pooling 层删掉了(下采样越大,理论感受野越大),而是直接替换成 BottleNeck 的形式,先用 1×1 卷积降维压缩,再嵌入 3×3 的深度可分离卷积提取局部信息,最后再通过 1×1 的卷积升维。这样做的一个好处是,这种修改有利于后续直接才用超参搜索技术搜索出具体模块数量的网络深度,以便在网络的后期阶段中提取局部和全局信息。

Search Space Refinement

通过调整网络的深度即每个阶段中的块数和宽度即通道数,可以发现,更深和更窄的网络可以带来:

  • 更好的准确性(0.2% 的性能提升)
  • 更少的参数(0.13M 的参数压缩)
  • 更低的延迟(0.1ms 的推理加速)

同时将这个修改的网络设置为后续 NAS 搜素的 Baseline.

MHSA Improvements

一般的 Transformer 模块都会包含两个组件,即多头注意力 MHSA 和全连接层 FFN. 作者随后便研究了如何在不增加模型大小和延迟的情况下提高注意模块性能的技术。

首先,通过 3×3 的卷积将局部信息融入到 Value 矩阵中,这一步跟 NASVitInception transformer 一样。

其次,在 Head 维度之间添加 FC 层(就图中标识的Talking Head),增强不同头之间的信息交互。

通过这些修改,可以发现性能进一步提高了,与基线模型相比,准确度达到了 80.8%,同时参数和延迟也基本保持一致。

Attention on Higher Resolution

加入注意力机制普遍都是能够提升性能的。然而,将它应用于高分辨率特征会降低端侧的推理效率,因为它具有与空间分辨率成平方关系的时间复杂度。因此,作者仅在最后的 1/32 的空间分辨率下使用,而对于倒数的第二阶段即 4 倍下采样提出了另外一种 MHSA,这有助于将准确率提高了 0.9% 同时加快推理效率。

先前的解决方案,例如 Cswin transformerSwin transformer 都是采用基于滑动窗口的方式去压缩特征维度,又或者像 Next-vit 一样直接将 KeysValues 矩阵进行下采样压缩,这些方法对于移动端部署并不是一个最佳的选择。这里也不难理解,以 Swin transformer 为例,它在每个 stage 都需要进行复杂的窗口划分和重新排序,所以这种基于 windows 的注意力是很难在移动设备上加速优化的。而对于 Next-vit 来说表面上看虽然进行了压缩,但整个 KeyValue 矩阵依旧需要全分辨率查询矩阵(Query)来保持注意力矩阵乘法后的输出分辨率。

本文方法的解决方案可以参考图(d)和(e),整体思路是采用一个带步长的注意力,实现上就是将所有的 QKV 均下采样到固定的空间分辨率(这里是 1/32),并将注意力的输出复原到原始分辨率以喂入下一层。(⊙o⊙)…,有点类似于把瓶颈层的思路又搬过来套。

Attention Downsampling

以往的下采样方式大都是采用带步长的卷积或者池化层直接进行的。不过最近也有一部分工作在探讨 Transformer 模块内部的下采样方式,如 LeViTUniNet 提出通过注意力机制将特征分辨率减半,从而更好的整合全局上下文来进感知下采样。具体的做法也就是将 Query 中的 Token 数量减半,从而对注意力模块的输出进行压缩。

说到这里不经意间有个疑问,Token 数量减少多少才是合适?况且,如果我们直接就对所有的查询矩阵进行降采样的话,这对于较前的 stage 的特征提取是不利的,因为网络的浅层更多的是提取诸如纹理、颜色、边缘等 low-level 的信息,因此从经验上来看是需要保持更高分辨率的。

作者的方法是提出一种结合局部和全局上下文融合的组合策略,如上图(f)所示。为了得到下采样的查询,采用池化层作为静态局部下采样,而 3×3 DWCONV 则作为可学习的局部下采样,并将结果拼接起来并投影到查询矩阵中。此外,注意力下采样模块残差连接到一个带步长的卷积以形成局部-全局方式,类似于下采样瓶颈 或倒置瓶颈层。

Super-Network-Search

上面定义完基础的网络架构后,作者又进一步的应用了一种细粒度联合搜索策略,具体算法步骤如下所示:

2946b952-7f5c-11ed-8abf-dac502259ad0.pngNAS

整体架构沿用的是超网的结构。

Conclusion

在这项工作中,作者全面研究混合视觉主干并验证对于端侧更加友好的网络结构设计。此外,基于确定的网络结构,进一步提出了在大小和速度上的细粒度联合搜索,并获得了轻量级和推理速度超快的 EfficientFormerV2 模型。


		
			

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机视觉
    +关注

    关注

    9

    文章

    1714

    浏览量

    47452
  • Transformer
    +关注

    关注

    0

    文章

    154

    浏览量

    6814

原文标题:更快更强!EfficientFormerV2来了!一种新的轻量级视觉Transformer

文章出处:【微信号:CVer,微信公众号:CVer】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Transformer如何让自动驾驶变得更聪明?

    ]自动驾驶中常提的Transformer本质上是一种神经网络结构,最早在自然语言处理里火起来。与卷积神经网络(CNN)或循环神经网络(RNN)不同,Transformer能够自动审视所有输入信息,并动态判断哪些部分更为关键,同时
    的头像 发表于 11-19 18:17 1901次阅读

    【CW32】uart_obj_fw 轻量级串口框架

    轻量级跨平台串口通信框架,专为资源受限的嵌入式设备设计。单个对象RAM占用最小68字节左右(不算缓冲区),ROM占用1-2k字节左右,功能支持裁剪,资源占用小并不代表低性能,该库参考了freeRTOS
    的头像 发表于 09-29 18:02 7430次阅读

    Crypto核心库:颠覆传统的数据安全轻量级加密方案

    传统加密方案常陷入“安全与性能”的二元悖论。Crypto核心库打破这僵局,通过轻量级架构与算法优化,实现加密解密的双向突破:在保障银行级安全的同时,将资源消耗压缩至极致,让数据安全“轻”装上
    的头像 发表于 08-04 14:44 525次阅读
    Crypto核心库:颠覆传统的数据安全<b class='flag-5'>轻量级</b>加密方案

    基于米尔瑞芯微RK3576开发板部署运行TinyMaix:超轻量级推理框架

    本文将介绍基于米尔电子MYD-LR3576开发平台部署超轻量级推理框架方案:TinyMaix 摘自优秀创作者-短笛君 TinyMaix 是面向单片机的超轻量级的神经网络推理库,即 TinyML
    发表于 07-25 16:35

    如何在RK3576开发板上运行TinyMaix :超轻量级推理框架--基于米尔MYD-LR3576开发板

    本文将介绍基于米尔电子MYD-LR3576开发平台部署超轻量级推理框架方案:TinyMaix摘自优秀创作者-短笛君TinyMaix是面向单片机的超轻量级的神经网络推理库,即TinyML推理库,可以
    的头像 发表于 07-25 08:03 3991次阅读
    如何在RK3576开发板上运行TinyMaix :超<b class='flag-5'>轻量级</b>推理框架--基于米尔MYD-LR3576开发板

    轻量级≠低效能:RK3506J核心板如何用性价比感动用户?

    瑞芯微 RK3506J凭借多核异构架构设计与国产化供应链整合,以轻量级硬件资源实现工业级性能输出,重新定义了控制芯片的性价比边界,为工业控制芯片领域带来了全新的解决方案与发展方向。
    的头像 发表于 06-17 09:20 2563次阅读
    <b class='flag-5'>轻量级</b>≠低效能:RK3506J核心板如何用性价比感动用户?

    一种新型激光雷达惯性视觉里程计系统介绍

    针对具有挑战性的光照条件和恶劣环境,本文提出了LIR-LIVO,这是一种轻量级且稳健的激光雷达-惯性-视觉里程计系统。通过采用诸如利用深度与激光雷达点云关联实现特征的均匀深度分布等先进技术,以及利用
    的头像 发表于 04-28 11:18 799次阅读
    <b class='flag-5'>一种</b>新型激光雷达惯性<b class='flag-5'>视觉</b>里程计系统介绍

    树莓派替代台式计算机?树莓派上七款最佳的轻量级操作系统!

    替代台式计算机。好吧,它可以,但您需要以下专为RaspberryPi设计的轻量级操作系统的帮助。注意:RaspberryPi市场上有许多不同的型号。对于本文,我们将
    的头像 发表于 03-25 09:43 946次阅读
    树莓派替代台式计算机?树莓派上七款最佳的<b class='flag-5'>轻量级</b>操作系统!

    ​VLM(视觉语言模型)​详细解析

    视觉语言模型(Visual Language Model, VLM)是一种结合视觉(图像/视频)和语言(文本)处理能力的多模态人工智能模型,能够理解并生成与视觉内容相关的自然语言。以下
    的头像 发表于 03-17 15:32 7577次阅读
    ​VLM(<b class='flag-5'>视觉</b>语言模型)​详细解析

    文详解视觉语言模型

    视觉语言模型(VLM)是一种多模态、生成式 AI 模型,能够理解和处理视频、图像和文本。
    的头像 发表于 02-12 11:13 3241次阅读
    <b class='flag-5'>一</b>文详解<b class='flag-5'>视觉</b>语言模型

    云服务器 Flexus X 实例:轻量级 http 服务器 Tinyhttpd 部署

    Flexus 云服务器 X 实例 是华为云推出的款高性能、高可靠性的云服务器产品,它专为满足企业级用户对计算资源的严格要求而设计。本篇文章通过部署 轻量级 http 服务器 Tinyhttpd
    的头像 发表于 01-07 16:59 916次阅读
    云服务器 Flexus X 实例:<b class='flag-5'>轻量级</b> http 服务器 Tinyhttpd 部署

    一种新的通用视觉主干模型Vision Mamba

    CNN和Transformer常作为深度学习模型的首选基础模块,被应用于各种场景,如文本、视觉、语音信号处理及其各种下游应用。然而这两个基础模块都有着其固有而互补的缺陷:CNN具有固定大小窗口的卷积
    的头像 发表于 01-06 09:55 2251次阅读
    <b class='flag-5'>一种</b>新的通用<b class='flag-5'>视觉</b>主干模型Vision Mamba

    华为Flexus云服务器搭建SamWaf开源轻量级网站防火墙

    在当今数字化高速发展的时代,网络安全问题日益凸显。为了保障网站的稳定运行和数据安全,我们可以借助华为 Flexus 云服务器搭建 SamWaf 开源轻量级网站防火墙。这不仅是次技术的挑战,更是为网站筑牢安全防线的重要举措。
    的头像 发表于 12-29 16:59 1141次阅读
    华为Flexus云服务器搭建SamWaf开源<b class='flag-5'>轻量级</b>网站防火墙

    部署轻量级任务管理工具DooTask

    云服务器是一种虚拟化的计算资源,它提供了一种按需获取计算能力的方式。通过云服务器,我们可以轻松搭建和管理各种应用,无需购买和维护物理服务器。云服务器具有弹性伸缩、高可用性、按需付费等特点,极大地简化了 IT 基础设施的管理。
    的头像 发表于 12-29 10:03 2171次阅读
    部署<b class='flag-5'>轻量级</b>任务管理工具DooTask

    华为云 Flexus X 实例部署安装 HivisionIDPhoto 轻量级的 AI 证件照制作算法

    背景 最近有个开源项目非常火,就是 HivisionIDPhotos 轻量级的 AI 证件照制作算法 github 仓库 https://github.com/Zeyi-Lin
    的头像 发表于 12-25 17:08 1744次阅读
    华为云 Flexus X 实例部署安装 HivisionIDPhoto <b class='flag-5'>一</b>个<b class='flag-5'>轻量级</b>的 AI 证件照制作算法