轻量级网络模型MobileNet发展脉络(V1-V2-V3)

news2025/2/6 6:48:37

 

 卷积神经网络发展

        卷积神经网络被广泛应用在图像分类、目标检测等视觉任务中,并取得了巨大的成功。然而,卷积神经网络通常需要较大的运算量和内存占用,在移动端以及嵌入式设备等资源受限的环境中受到限制,因此需要进行网络压缩。从2012年AlexNet网络提出获得image net分类任务第一名后,深度学习模型迅速发展,网络层数不断加深,2015年提出的ResNet的准确率首次超越人类,但同时网络层数也达到了152层。

        MobileNet系列是谷歌推出的轻量级网络模型,旨在不过多牺牲模型性能的同时大幅度减小模型的尺寸和加快模型的运算速度。

MobileNet V1

        MobileNet V1基于一种流线型结构使用深度可分离卷积来构造轻型权重深度神经网络。主要用于移动端以及嵌入式设备。模型包含两个权衡延迟和准确率的全局超参数-宽度乘法器(width multiplier)分辨率乘法器(resolution multiplier),允许模型构造器能够根据特定问题选择合适大小的模型。

深度可分离卷积

        深度可分离卷积是一种将标准卷积分解成深度卷积以及一个1x1的卷积即逐点卷积。能够有效减少计算量以及模型的大小。如图所示,一个标准的卷积(a)被分解成深度卷积(b)以及1x1的逐点卷积(c)。 

 

 一个 3x3 Conv 被拆分成了 3x3 Depthwise Conv和 1x1 Conv

常规卷积操作

假设输入特征图的尺寸(H, W, D)是

DF⋅DF⋅M ,可以得到:

  - 输入特征图尺寸:DF⋅DFM

  - 卷积核尺寸: DK * DK * M * N

  - 输出特征图尺寸:DF⋅DF N

  - 运算量为: DK⋅DK⋅M⋅N⋅DF⋅DF

有 N 个卷积核,每个大小为 DK⋅DK⋅M ,每个卷积核作用于 M 个通道。也就是1个 Filter 连接 3 个 input channels。

深度卷积

深度卷积每个卷积核只处理1个输入特征通道,而不是M个输入特征通道,这样大大减少了运算量。输入特征图的尺寸(H, W, D)是 DF⋅DF⋅M ,可以得到如下公式:

- 输入特征图尺寸:DF⋅DF⋅M

- 卷积核尺寸: DK⋅DK⋅1⋅M

- 输出特征图尺寸:DF⋅DF⋅M

- 运算量为:DK⋅DK⋅1⋅M⋅DF⋅DF

有M个卷积核,每个大小为DK⋅DK⋅1 ,每个卷积核作用于1个通道。也就是1个 Filter 连接1个 input channel。

 逐点卷积

假设深度卷积层输出的特征图的尺寸(H, W, D)是DF⋅DF⋅M ,

- 输入特征图尺寸:DF⋅DF⋅M

- 卷积核尺寸:1⋅1⋅M⋅N

- 输出特征图尺寸:DF⋅DF⋅N

- 运算量为:1⋅1⋅M⋅N⋅DF⋅DF

有 N 个卷积核,每个大小为1⋅1⋅M ,每个卷积核作用于M个通道。也就是1个 Filter 连接M个input channels。

        深度卷积每个卷积核只处理1个输入特征通道,而不是M个输入特征通道,这样大大减少了运算量。但是在这个过程中通道与通道之间的联系被切断,所以后面需要再用 1x1 大小的逐点卷积层来处理M个特征通道之间的信息。

常规卷积VS深度可分离卷积计算量

  - 常规卷积运算量:

 

  - 深度可分离卷积运算量:

 

  - 运算量对比:

 

        MobileNet V1使用3x3的深度可分离卷积将卷积分为滤波和组合两个过程相较于标准卷积少了8到9倍的计算量,只有极小准确率的下降。

网络结构

        MobileNet一共有28层,13组深度可分离卷积,除第一层为全卷积其他全由深度可分离卷积构成。所有的层都跟着一个BN以及ReLU非线性激活函数,除最后一层全连接层没有非线性激活函数直接送入softmax层进行分类。

 

        MobileNet在1×1卷积中花费了95%的计算时间,大约占有75%的参数,几乎所有的附加参数都在全连接层中。

宽度乘法器-Width Multiplier

        宽度乘法器的作用就是对每一层均匀薄化。给定一个层以及宽度乘法器,输入通道数M变成了α* M,输出通道数N变成α* N。深度可分离卷积运算量变为:

 

        其中α一般设置为1\0.75\0.5\0.25。当α=1时,是最基本的MobileNet,当时α<1时就是薄化的MobileNet。宽度乘法器对计算量和参数量的减少大约α^2倍。宽度乘法器可以合理的权衡精度和延迟的大小。

注:宽度乘法器常用来薄化一个新的需要从头开始训练的网络结构。

分辨率乘法器-Resolution Multiplier

        第二个减少神经网络计算量的超参数是ρ-分辨率乘法器。对特征图进行下采样的 Resolution Multiplier ρ(0<ρ<1):

 

        其中图像分辨率一般设置为224\192\160\128等。当ρ=1时为最基本的MobileNet,当ρ<1时为薄化的MobileNet。分辨率乘法器对网络约化大约ρ^2倍。

实验对比

a.深度可分离卷积与全卷积对比

    精度只下降1%,参数减少7倍。

b.宽度乘法器α不同系数对比

    准确率直到宽度乘法器α下降到0.25才显示下降很多。

c.分辨率乘法器ρ不同参数对比

    准确率随着分辨率下降而平滑减小

d.MobileNet V1与其他模型对比

 

        MobileNet和VGG16准确率几乎一样,但是参数量少了32倍,计算量少了27倍。相较于GoogleNet准确率更高,且参数量和计算量都少了2.5倍。

约化后MobileNet(α=0.5,分辨率为160x160)相较于这两个模型,准确率都高且计算量相较于AlexNet少了9.4倍,比SqueezeNet少了22倍。

 MobileNet V2

        MobileNetV2网络设计基于MobileNet V1,它保留了其简单性且不需任何特殊的运算符,同时显着提高了其准确性,从而实现了针对移动应用程序的图像分类和检测任务等。网络中的亮点是 Inverted Residuals (倒残差结构 )Linear Bottlenecks(线性瓶颈)。

        模型主要贡献是提出了具有线性瓶颈的倒置残差块-Bottleneck Residual Block。该模块将低维压缩表示作为输入,首先将其扩展到高维,然后使用的深度可分离卷积进行提取特征。随后将特征投影回具有线性卷积的低维表示。

 

具有线性瓶颈的倒置残差块-Bottleneck Residual Block

a.扩展卷积-Expansion Convolution

使用1x1大小卷积核增加输入特征图的通道数(升维)。让Depthwise Convolution有更多机会获取有效信息。

b.深度可分离卷积-Depthwise Convolution

和MobileNetV1一致。

c.投影卷积-Projection Convolution

Projection Convolution是大小为1x1的卷积核(降维),输出通道数远小于输入通道数,从而达到限制模型大小的目的。

d.残差连接-Residual Connection

借鉴了ResNet的理念,插入"short-cut"的目的是为了帮助梯度在不同网络层间的传播。使用Residual connection要满足条件:输入特征图尺寸等于输出特征图尺寸。

MobileNetV1网络模块结构:

MobileNet V2 网络结构:

 线性瓶颈-Linear Bottlenecks

 

        Input是一个2维数据,其中兴趣流形是其中的蓝色螺旋线。使用矩阵T将数据嵌入到n维空间中(升维),后接ReLU,再使用 T的转置矩阵将其投影回2维平面(降维):

维度越高,降维后保留的兴趣流形就越完整,信息丢失就越少。
想要减少运算量,就需要尽可能将网络维度设计的低一些,但是维度如果低的话,激活函数 ReLU 可能会滤除很多有用信息。

        兴趣流形-manifold of interest:

深度神经网络一连串的卷积和激活层形成一个兴趣流形(manifold of interest,感兴趣、有用的数据信息)
兴趣流形可以通过数据降维被嵌入到低维空间(如 MobileNetV1 α 乘法因子, 1x1 卷积)

倒置残差-Inverted residuals

        在之前的ResNet残差结构是先用1x1的卷积降维,再升维的操作。而在MobileNetV2中,是先升维再降维。所以ResNet残差结构是两头大中间小。

        MobileNetV2结构是中间大两头小。并且采用了新的激活函数:ReLU6,它与低精度计算一起使用时具有鲁棒性。

 

网络结构

        基本构建块是一个具有残差的瓶颈深度可分离卷积。包含具有32个通道的初始全卷积层,然后是下表中所述的19个残差瓶颈层。将ReLU6用作非线性函数,因为它与低精度计算一起使用时具有鲁棒性。始终使用3×3的内核大小,并在训练过程中利用dropoutBN.

        使用与Mobilenets v1中一样的输入图像分辨率和宽度乘数作为可调超参数来针对不同的性能点调整体系结构。输入分辨率参数为96-224,宽度乘数为0.35-1.4

实验对比

 在ImageNet上的性能,不同网络的比较

 SSD和SSDLite配置的大小和计算成本的比较MobileNetV2和对80个类进行预测.

MnasNet

MnasNet介于V2和V3之间,主要有两个亮点

多目标优化函数:准确度性能+真实手机推理时间

分层的神经架构搜索空间

网络思想

        使用多目标优化的目标函数,兼顾速度和精度,其中速度用真实手机推断时间衡量提出分层的神经网络架构搜索空间,将卷积神经网络分解为若干block,分别搜索各自基本模块,保证层结构多样性。

网络结构

 

MobileNetV3

        MobileNetV3综合了三种模型的思想:MobileNetV1的深度可分离卷积(depthwise separable convolutions)、MobileNetV2的具有线性瓶颈的倒残差结构(the inverted residual with linear bottleneck)和MnasNet的基于squeeze and excitation结构的轻量级注意力模型模型引入了以下几个设计

1.互补搜索技术

        •资源受限的NAS:计算和参数量受限前提下搜索网络的各个模块

        NetAdapt:用于对NAS搜索的各个模块网络层的微调

2.适用于移动环境的新的高效非线性版本

        •重新设计的激活函数hard-swish()

3.新的高效网络设计:       

        •降低卷积核数量并用不同的激活方式降低冗余

        •精简Last Stage

4.新的高效分割解码器

        •MobileNetV3-Large

        •MobileNetV3-Small

更新Block

1.加入SE模块

在V3中使用(squeeze-and-excite,SE) 模块,将 expansion layer的channel变为原来的1/4,即提高了精度,也没有增加时间消耗。并且SE结构放在了depthwise 之后。实质为引入了一个 channel 注意力机制。

2.更新了激活函数

hard-swish()

重新设计计算复杂的层

1.降低卷积核数量并用不同的激活方式降低冗余

        减少了第一个卷积层的卷积核个数(32—>16),并使用hard-swish 非线性激活,在减少卷积核个数同时保持准确率(和使用 32 个卷积核并在该层使用 ReLU 是的效果比),计算量降低200W,时间节省2ms

2.精简Last Stage

        时间节省7ms,约占总体运行时间的11%,计算量减少3000w,准确率几乎没有下降。

重新设计激活函数

 

 

不同大小的模型设计

        V3设计了两种体量的模型,Large和Small,都是经过 NAS和优化后的。SE: 该块中是否存在挤压和激发。NL表示所使用的非线性类型。HS: h-swish, RE: ReLU。NBN:无批处理归一化, S: 步幅, exp size:第一个1x1升维维数。

 实验结果

 

MobileNet模型总结

MobileNet v1:提出了 Depthwise Separable Convolutions( 深度可分离卷积
MobileNet v2:在 MobileNet V1 深度可分离卷积的基础上提出了 Bottleneck Residual Block( 瓶颈残差模块
MobileNet v3:使用了 NAS 和 NetAdapt 算法搜索最优的模型结构,同时对模型一些结构进行了改进,在 MobileNet_V2的Bottleneck Residual Block基础上引入 MnasNet Squeeze-and-Excitation 注意力机制

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/102983.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

虹科案例 | 如何快速精准监测打桩机打桩深度?

想要精准测量打桩设备每个桩的测量深度&#xff0c;以正确设置多排电池板的太阳能农场&#xff1f;但是由于测量环境恶劣&#xff0c;导致普通传感器无法正常工作&#xff1f;那快了解一下我们的虹科Dimetix激光测距传感器吧&#xff0c;它可以完美解决上述问题&#xff01; 一…

NFC技术的特点与应用

NFC技术能给我们的生活带来极大的便利&#xff0c;能够用于乘车、购物、交换信息、刷门禁卡&#xff0c;可以说它能够应用到我们生活的方方面面。 但是&#xff0c;NFC到底是谁发明的&#xff1f;什么时候发明的&#xff1f;我们就来了解一下。 NFC的中文全称为近场通信技术&…

85%的攻击现在使用加密通道

©网络研究院 加密攻击仍然是全球各国面临的一个重大问题&#xff0c;美国、印度和日本的攻击数量在过去12个月中增长最快。 此外&#xff0c;与2021年相比&#xff0c;南非的TLS/SSL攻击显著增加。 Zscaler的安全研究和运营副总裁表示:“随着组织网络防御的成熟&#x…

22-12-19 西安 vue-cli(01) vue-cli脚手架、组件化编程、vue-router路由

"对A&#xff0c;我还剩一张牌啦&#xff01;" "呃。。。要不起" 周六&#xff08;12-03&#xff09;&#xff0c;早上刷到印度的三相神。梵天&#xff0c;毗湿奴&#xff0c;湿婆&#xff0c;看来很多个相关的视频介绍&#xff0c;结果睡觉&#xff08;不…

蓝桥杯题目类型总结

搜索类 BFS 大胖子走迷宫&#xff08;简单&#xff09;&#xff08;2019国赛&#xff09; 迷宫与陷阱&#xff1a;&#xff08;中等2018国赛&#xff09; 迷宫与陷阱&#xff1a;&#xff08;中等2018国赛&#xff09; 迷宫与陷阱&#xff1a;&#xff08;中等2018国赛&…

安卓PorterDuffXfermode之正片叠底 PorterDuff.Mode.MULTIPLY

setXfermode Paint#setXfermode()接口是在绘制时设置画笔的图形混合模式的,下面是官网的介绍&#xff1a; public Xfermode setXfermode (Xfermode xfermode) Set or clear the transfer mode object. A transfer mode defines how source pixels (generate by a drawing com…

three.js之旋转成型(车削缓冲几何体)

文章目录简介例子解释专栏目录请点击 简介 一条曲线围绕空间中的某个轴进行旋转&#xff0c;会形成一个几何体这个在three.js中也是可以实现的&#xff0c;主要就是使用到了three.js中的LatheGeometry&#xff0c;官网 例子 <!DOCTYPE html> <html lang"en&qu…

SpringBoot2.X+Vue+UniAPP 全栈开发医疗小程序 中间件搭建

文章目录一、安装Docker环境1. 关闭SELINUX服务2. 更新yum程序3. 安装Docker4. 管理Docker二、搭建HBasePhoenix大数据平台2.1. 加载镜像2.2. 创建容器2.3. 创建逻辑库2.4. 创建数据表与导入数据2.5. 配置JDBC连接信息三、Redis服务3.1. 加载镜像3.2. 配置文件3.3. 创建Redis容…

专注性能的多端研发框架 - ice.js 3 正式发布!

ice.js 框架在之前的版本中&#xff0c;主要服务于中后台 / PC 的项目研发&#xff0c;而随着无线端以及多端能力的拓展&#xff0c;ice.js 3 将成为一套面向大淘宝技术的终端应用框架。因此在 ice.js 3 的版本中除了「开发者体验」之外&#xff0c;还围绕「用户体验」探索了大…

拥抱实体经济,可以说是当下互联网参与者的首要选择

拥抱实体经济&#xff0c;绝对是当下互联网玩家们的首要选择。无论是头部的互联网企业来讲&#xff0c;还是新生的互联网玩家而言&#xff0c;它们都不约而同地将关注的焦点聚焦在了这样一个方向上。   透过这一点&#xff0c;我们可以非常明显地感受到&#xff0c;一个全新的…

1574_AURIX_TC275_SCU中的杂项控制

全部学习汇总&#xff1a; GitHub - GreyZhang/g_TC275: happy hacking for TC275! 接下来的这一段算是SCU章节最后的一次内容梳理了&#xff0c;剩下的内容也不是很多了。杂项并不是英文的直接翻译&#xff0c;算是我自己选择的一个表达方式。 这里涉及到的功能有CCU6&#x…

基于机器学习算法与历史数据预测未来的站点关闭(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 应用背景&#xff1a; 通过分析序列进行合理预测&#xff0c;做到提前掌握未来的发展趋势&#xff0c;为业务决策提供依据&am…

2023材料科学与工程国际会议(CoMSE 2023)

2023材料科学与工程国际会议&#xff08;CoMSE 2023&#xff09; 重要信息 会议网址&#xff1a;www.icomse.org 会议时间&#xff1a;2023年3月24-26日 召开地点&#xff1a;中国上海 截稿时间&#xff1a;2023年1月25日 录用通知&#xff1a;投稿后2周内 收录检索&…

手把手教你使用Appium进行IOS真机自动化测试

讲解方式&#xff1a; 课程内容条理清晰&#xff0c;目标明确&#xff0c;由浅入深&#xff0c;环环相扣。重点部分进行额外梳理和总结&#xff0c;更易理解和吸收。 教程推荐&#xff1a;使用Appium进行IOS真机自动化测试 课程亮点&#xff1a;1&#xff0c;讲解清晰&a…

VRRP多备份组+策略路由实现主备负载

上篇文章&#xff0c;我们介绍了VRRP单备份组和策略路由之间主备切换的差异&#xff08;&#xff09;&#xff0c;整体上看&#xff0c;单备份组VRRP的主备切换速度非常快&#xff0c;用过调整配置&#xff0c;可以轻轻松松将切换时间压缩到1秒钟以内&#xff1b;但是主备之间无…

【大数据技术Spark】DStream编程操作讲解实战(图文解释 附源码)

DStream编程 批处理引擎Spark Core把输入的数据按照一定的时间片&#xff08;如1s&#xff09;分成一段一段的数据&#xff0c;每一段数据都会转换成RDD输入到Spark Core中&#xff0c;然后将DStream操作转换为RDD算子的相关操作&#xff0c;即转换操作、窗口操作以及输出操作…

和冬天有关的歌

我写过关于四季《新朝花夕拾》&#xff0c;我也写过关于夏天的歌&#xff1a;《和夏天有关的歌》&#xff0c;所以我也想写写冬天。&#xff08;1&#xff09;北风当你想到冬天的时候&#xff0c;你会想起什么&#xff1f;我会想到&#xff1a;北风、北方。正好有这么一首歌&am…

神经网络架构搜索

神经网络架构搜索 定义内涵 神经网络架构搜索是为给定数据集自动找到一个或多个架构的任务&#xff0c;这些架构将为给定 的数据集生成具有良好结果的模型&#xff0c;其本质是在高维空间的最优参数搜索问题。 技术背景 深度学习模型的使用越来越大众化&#xff0c;在很多行…

免费内网穿透工具测评对比,谁更好用 3

文章目录1. 前言2. 对比内容2.1 TCP协议功能及操作对比2.1.1 网云穿的TCP设置2.1.2 cpolar的TCP设置1.2 使用感受对比3. 结语1. 前言 发布本地网页通常是内网穿透的主要作用之一&#xff0c;但并不是唯一作用&#xff0c;内网穿透还能将本地硬件发布到公共互联网上&#xff0c…

ASP.NET企业HR人力资源管理系统源码(带使用手册和操作说明)

中小型企业HR人力资源管理系统源码带使用手册和操作说明 【程序语言】&#xff1a;.NET 【数据库】&#xff1a;SQL SERVER 2008 【运行环境】&#xff1a;WINDOWSIIS 【其他】&#xff1a;前端bootstrap框架 了解更多HR源码事宜可私信我&#xff01; 系统运行环境&#x…