高效神经网络架构的正确打开方式 | EMO:结合 CNN 和 Transformer 的现代倒残差移动模块设计

简介: 高效神经网络架构的正确打开方式 | EMO:结合 CNN 和 Transformer 的现代倒残差移动模块设计

Title: Rethinking Mobile Block for Efficient Neural Models


Author:Jiangning Zhang et al. (腾讯优图、浙大、北大、武大)


Paper: https://arxiv.org/pdf/2301.01146


Github: https://github.com/zhangzjn/EMO


引言

本文重新思考了 MobileNetv2 中高效的倒残差模块 Inverted Residual Block 和 ViT 中的有效 Transformer 的本质统一,归纳抽象了 MetaMobile Block 的一般概念。受这种现象的启发,作者设计了一种面向移动端应用的简单而高效的现代反向残差移动模块 (Inverted Residual Mobile Block, iRMB),它吸收了类似 CNN 的效率来模拟短距离依赖和类似 Transformer 的动态建模能力来学习长距离交互。所提出的高效模型 (Efficient MOdel, EMO) 在 ImageNet-1K、COCO2017 和 ADE20K 基准上获取了优异的综合性能,超过了同等算力量级下基于 CNN/Transformer 的 SOTA 模型,同时很好地权衡模型的准确性和效率。


动机

近年来,随着对存储和计算资源受限的移动应用程序需求的增加,涌现了非常多参数少、FLOPs 低的轻量级模型,例如 Inceptionv3 时期便提出了使用非对称卷积代替标准卷积。后来 MobileNet 提出了深度可分离卷积 depth-wise separable convolution 以显着减少计算量和参数,一度成为了轻量化网络的经典之作。在此基础上,MobileNetv2 提出了一种基于 Depth-Wise Convolution (DW-Conv) 的高效倒置残差块(IRB),更是成为标准的高效模块代表作之一。然而,受限于静态 CNN 的归纳偏差影响,纯 CNN 模型的准确性仍然保持较低水平,以致于后续的轻量化之路并没有涌现出真正意义上的突破性工作。


c827cadbadce988ead630f6d1d43118a.png



ebe23d47d5c91e03a5b610cb7df8c646.png



2783e4172033ee6fd0a7aa91cde8cbfb.png

41d3879b3a02a0b628d87cfd25193ce5.png


随着 Transformer 在 CV 领域的崛起,一时间涌现了许多性能性能超群的网络,如 Swin transformer、PVT、Eatformer、EAT等。得益于其动态建模和不受归纳偏置的影响,这些方法都取得了相对 CNN 的显着改进。然而,受多头自注意(MHSA)参数和计算量的二次方限制,基于 Transformer 的模型往往具有大量资源消耗,因此也一直被吐槽落地很鸡肋。


针对 Transformer 的这个弊端,当然也提出了一些解决方案:


设计具有线性复杂性的变体,如FAVOR+和Reformer等;

降低查询/值特征的空间分辨率,如Next-vit、PVT、Cvt等;

重新排列通道比率来降低 MHSA 的复杂性,如Delight;


不过这种小修小改还是难成气候,以致于后续也出现了许多结合轻量级 CNN 设计高效的混合模型,并在准确性、参数和 FLOPs 方面获得比基于 CNN 的模型更好的性能,例如Mobilevit、MobileViTv2和Mobilevitv3等。然而,这些方法通常也会引入复杂的结构,或者更甚者直接采用多个混合的模块如Edgenext和Edgevits,这其实是不利于优化的。


总而言之,目前没有任何基于 Transformer 或混合的高效块像基于 CNN 的 IRB 那样流行。因此,受此启发,作者重新考虑了 MobileNetv2 中的 Inverted Residual Block 和 Transformer 中的 MHSA/FFN 模块,归纳抽象出一个通用的 Meta Mobile Block,它采用参数扩展比 λ 和高效算子 F 来实例化不同的模块,即 IRB、MHSA 和前馈网络 (FFN)。


基于此,本文提出了一种简单高效的模块——反向残差移动块(iRMB),通过堆叠不同层级的 iRMB,进而设计了一个面向移动端的轻量化网络模型——EMO,它能够以相对较低的参数和 FLOPs 超越了基于 CNN/Transformer 的 SOTA 模型,如下图所示:


e542f16ad95421865d251b44b50c331d.png


方法


945f965879e42df0a19da77acf368ab0.png


上图是整体框架图,左边是 iRMB 模块的示例图。下面让我们进一步拆解下这个网络结构图。


Meta Mobile Block


b29fe0e5f96665ac60365deaa9437111.png


如上所述,通过对 MobileNetv2 中的 Inverted Residual Block 以及 Transformer 中的核心 MHSA 和 FFN 模块进行抽象,作者提出了一种统一的 Meta Mobile (M2) Block 对上述结构进行统一的表示,通过采用参数扩展率 λ 和高效算子 F 来实例化不同的模块。


Inverted Residual Mobile Block


基于归纳的 M2 块,本文设计了一个反向残差移动块 (iRMB),它吸收了 CNN 架构的效率来建模局部特征和 Transformer 架构动态建模的能力来学习长距离交互。


具体实现中,iRMB 中的 F 被建模为级联的 MHSA 和卷积运算,公式可以抽象为 F ( ⋅ ) = C o n v ( M H S A ( ⋅ ) ) F(·) = Conv(MHSA(·))F(⋅)=Conv(MHSA(⋅))。这里需要考虑的问题主要有两个:


λ λλ 通常大于中间维度将是输入维度的倍数,导致参数和计算的二次增加。

MHSA 的 FLOPs 与总图像像素的二次方成正比。

具体的参数比对大家可以简单看下这个表格:


f64ca1b46fb7564718969c84a9ac0a73.png


因此,作者很自然的考虑结合 W-MHSA 和 DW-Conv 并结合残差机制设计了一种新的模块。此外,通过这种级联方式可以提高感受野的扩展率,同时有效的将模型的 MPL 降低到 O ( 2 W / ( k − 1 + 2 w ) ) O(2W/(k − 1 + 2w))O(2W/(k−1+2w))。


为了评估 iRMB 性能,作者将 λ 设置为 4 并替换 DeiT 和 PVT 中标准的 Transformer 结构。如下述表格所述,我们可以发现 iRMB 可以在相同的训练设置下以更少的参数和计算提高性能。


3274a141f8ff3b2c843fedb273cb107b.png


EMO


为了更好的衡量移动端轻量化模型的性能,作者定义了以下4个标准:


可用性。即不使用复杂运算符的简单实现,易于针对应用程序进行优化。

简约性。即使用尽可能少的核心模块以降低模型复杂度。

有效性。即良好的分类和密集预测性能。

高效性。即更少的参数和计算精度权衡。

下面的表格总结了本文方法与其它几个主流的轻量化模型区别:


a252e03b13585b861510e1cbecddd2f3.png


可以观察到以下几点现象:


基于 CNN 的 MobileNet 系列的性能现在看起来略低,而且其参数略高于同行;

近期刚提出的 MobileViT 系列虽然取得了更优异的性能,但它们的 FLOPs 较高,效率方面欠佳;

EdgeNeXt 和 EdgeViT 的主要问题是设计不够优雅,模块较为复杂;

基于上述标准,作者设计了一个由多个 iRMB 模块堆叠而成的类似于 ResNet 的高效模型——EMO,主要体现在以下几个优势:


1)对于整体框架,EMO 仅由 iRMB 组成,没有多样化的模块,这在设计思想上可称得上大道至简;


2)对于特定模块,iRMB 仅由标准卷积和多头自注意力组成,没有其他复杂的运算符。此外,受益于 DW-Conv,iRMB 还可以通过步长适应下采样操作,并且不需要任何位置嵌入来向 MHSA 引入位置偏差;


3)对于网络的变体设置,作者采用逐渐增加的扩展率和通道数,详细配置如下表所示。



1fc155743eef5515bd93203b6465cd66.png

由于 MHSA 更适合为更深层的语义特征建模,因此 EMO 仅在第3和第4个stage采用它。为了进一步提高 EMO 的稳定性和效率,作者还在第1和第2个stage引入 BN 和 SiLU 的组合,而在第3和第4个stage替换成 LN 和 GeLU 的组合,这也是大部分 CNN 和 Transformer 模型的优先配置。


实验

参数比对

先来看下 EMO 和其他轻量化网络的相关超参比对:


2236138cf6bd839fec83c87e81f50505.png


可以看到,EMO 并没有使用大量的强 DataAug 和 Tricks,这也充分体现了其模块设计的有效性。


性能指标


372e3f8bc48e40cb67d092920c7141b0.png


65e58019f7eda26d58a505920605593d.png


fa260b0d579cae2d65b13e64f9b3d06e.png

整体来看,EMO 在图像分类、目标检测和语义分割 CV 三大基础任务都表现强劲,可以以较少的计算量和参数量取得更加有竞争力的结果。


可视化效果


05618c68c6eb6d174305c28adc2c6579.png


从上面的可视化结果可以明显的观察到,本文提出的方法在分割的细节上表现更优异。


2b7be16998e7f2ed06c685fc97b0277e.png



为了更好地说明本文方法的有效性,作者进一步采用 Grad-CAM 方法突出显示不同模型的相关区域。如上图所示,基于 CNN 的 ResNet 倾向于关注特定对象,而基于 Transformer 的 MPViT 更关注全局特征。相比之下,EMO 可以更准确地关注显着物体,同时保持感知全局区域的能力。这在一定程度上也解释了为什么 EMO 在各类任务中能获得更好的结果。


6c42895e17f8779162f8f3adc0b10d4d.png



上面我们提到过,通过级联 Convolution 和 MHSA 操作可以有效提高感受野的扩展速度。为了验证此设计的有效性,这里将第3个Stage中具有不同组成的对角线像素的相似性进行可视化,即可视化 DW-Conv 和 EW-MHSA 以及同时结合两个模块。


10c545a47172349ed58aed0eb5317723.png


可以看出,无论从定量或定性的实验结果看来,当仅使用 DW-Conv 时,特征往往具有短距离相关性,而 EW-MHSA 带来更多的长距离相关性。相比之下,当同时采用这两者时,网络具有更大感受野的模块,即更好的建模远距离的上下文信息。


6e6ac1602198b29c6ae47d2d572629cb.png


最后展示的是本文的消融实验,整体来说实验部分还是挺充实的,感兴趣的小伙伴去看下原文,时间有限,今天我们就分析到这里。


结论


本文探讨了面向移动端的高效架构设计,通过重新思考 MobileNetv2 中高效的 Inverted Residual Block 和 ViT 中的有效 Transformer 的本质统一,作者引入了一个称为 Meta Mobile Block 的通用概念,进而推导出一个简单而高效的现代 iRMB 模块。具体地,该模块包含两个核心组件,即 DW-Conv 和 EW-MHSA,这两个组件可以充分利用 CNN 的效率来建模短距离依赖同时结合 Transformer 的动态建模能力来学习长距离交互。最后,通过以不同的规模堆叠 iRMB 模块搭建了一个高效的类 ResNet 架构——EMO,最终在 ImageNet-1K、COCO2017 和 ADE20K 三个基准测试的大量实验证明了 EMO 优于其它基于 CNN 或 Transformer 的 SOTA 方法。


image.png


目录
相关文章
|
12天前
|
机器学习/深度学习 存储 算法
Transformer、RNN和SSM的相似性探究:揭示看似不相关的LLM架构之间的联系
通过探索大语言模型(LLM)架构之间的潜在联系,我们可能开辟新途径,促进不同模型间的知识交流并提高整体效率。尽管Transformer仍是主流,但Mamba等线性循环神经网络(RNN)和状态空间模型(SSM)展现出巨大潜力。近期研究揭示了Transformer、RNN、SSM和矩阵混合器之间的深层联系,为跨架构的思想迁移提供了可能。本文深入探讨了这些架构间的相似性和差异,包括Transformer与RNN的关系、状态空间模型在自注意力机制中的隐含作用以及Mamba在特定条件下的重写方式。
44 7
Transformer、RNN和SSM的相似性探究:揭示看似不相关的LLM架构之间的联系
|
1天前
|
机器学习/深度学习 人工智能 算法
深度学习中的卷积神经网络(CNN)入门与实践
【9月更文挑战第19天】在这篇文章中,我们将探索深度学习的一个重要分支——卷积神经网络(CNN)。从基础概念出发,逐步深入到CNN的工作原理和实际应用。文章旨在为初学者提供一个清晰的学习路径,并分享一些实用的编程技巧,帮助读者快速上手实践CNN项目。
|
1天前
|
机器学习/深度学习 人工智能 自动驾驶
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【9月更文挑战第19天】在人工智能的浩瀚星海中,卷积神经网络(CNN)如同一颗璀璨的星辰,照亮了图像处理的天空。本文将深入CNN的核心,揭示其在图像识别领域的强大力量。通过浅显易懂的语言和直观的比喻,我们将一同探索CNN的奥秘,并见证它如何在现实世界中大放异彩。
|
5天前
|
存储 监控 物联网
蜂窝网络基础架构详解:从基站到核心网
蜂窝网络基础架构详解:从基站到核心网
27 9
|
1天前
|
机器学习/深度学习 人工智能 TensorFlow
深入探索深度学习中的卷积神经网络(CNN)
【9月更文挑战第19天】本文将深入浅出地介绍卷积神经网络(CNN)在深度学习领域的应用和原理,旨在为初学者提供一个清晰的理解框架。通过实例演示,我们将展示如何利用Python和TensorFlow库构建一个简单的CNN模型,用于图像分类任务。此外,文章还将探讨CNN在不同应用场景下的优化策略和挑战。
|
6天前
|
机器学习/深度学习 人工智能 TensorFlow
深度学习入门:理解卷积神经网络(CNN)
【9月更文挑战第14天】本文旨在为初学者提供一个关于卷积神经网络(CNN)的直观理解,通过简单的语言和比喻来揭示这一深度学习模型如何识别图像。我们将一起探索CNN的基本组成,包括卷积层、激活函数、池化层和全连接层,并了解它们如何协同工作以实现图像分类任务。文章末尾将给出一个简单的代码示例,帮助读者更好地理解CNN的工作原理。
23 7
|
4天前
|
机器学习/深度学习 算法 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【9月更文挑战第16天】本文将深入浅出地介绍卷积神经网络(CNN)的基本概念、结构和工作原理,同时通过一个实际的代码示例来展示如何在Python中使用Keras库构建一个简单的CNN模型进行图像识别。我们将看到,即使是初学者也能够通过简单的步骤实现深度学习的强大功能,进而探索其在复杂数据集上的应用潜力。
|
12天前
|
机器学习/深度学习 自然语言处理 自动驾驶
CNN的魅力:探索卷积神经网络的无限可能
卷积神经网络(Convolutional Neural Networks, CNN)作为人工智能的重要分支,在图像识别、自然语言处理、医疗诊断及自动驾驶等领域展现了卓越性能。本文将介绍CNN的起源、独特优势及其广泛应用,并通过具体代码示例展示如何使用TensorFlow和Keras构建和训练CNN模型。
|
12天前
|
机器学习/深度学习 数据采集 数据可视化
深度学习实践:构建并训练卷积神经网络(CNN)对CIFAR-10数据集进行分类
本文详细介绍如何使用PyTorch构建并训练卷积神经网络(CNN)对CIFAR-10数据集进行图像分类。从数据预处理、模型定义到训练过程及结果可视化,文章全面展示了深度学习项目的全流程。通过实际操作,读者可以深入了解CNN在图像分类任务中的应用,并掌握PyTorch的基本使用方法。希望本文为您的深度学习项目提供有价值的参考与启示。
|
12天前
|
编解码 人工智能 文件存储
卷积神经网络架构:EfficientNet结构的特点
EfficientNet是一种高效的卷积神经网络架构,它通过系统化的方法来提升模型的性能和效率。
18 1

热门文章

最新文章