轻量级模型解读——MobileNet系列

news/2024/10/4 19:53:03/文章来源:https://blog.csdn.net/lishanlu136/article/details/141924184

MobileNet系列到现在2024年,已经出到了第四个版本,分别如下:
2017年MobileNetv1——>2018年MobileNetv2——>2019年MobileNetv3——>2024年MobileNetv4,下面简要概述一下几个版本的改进部分。


目录

  • 1、MobileNetv1
  • 2、MobileNetv2
  • 3、MobileNetv3
  • 4、MobileNetv4


介绍之前先上一张MobileNet系列各个版本汇总的对比情况,如下,表中数据均来自论文。
在这里插入图片描述

1、MobileNetv1

论文地址:MobileNetv1
MobileNetv1 是一种轻量级的卷积神经网络架构,由 Google 团队在 2017 年提出。作者设计初衷就是为了模型能部署在移动端和嵌入式设备实现高速推理任务。MobilenetV1的主要创新点是提出了深度可分离卷积(Depthwise Separable Convolution)。
在这里插入图片描述
深度可分离卷积将常规卷积(上图(a))拆分成Depthwise卷积(上图(b))和1x1卷积核组成的Pointwise卷积(上图©)。在保证精度的条件下大大减小了参数量。具体来说,可解释为:
Depthwise卷积是对输入特征图按每个通道(channel)分别进行卷积操作,等效于group数量等于input channel的group卷积。这一操作用于提取输入特征图的空间信息的同时大大减小了参数量。
Pointwise卷积可看作常规卷积操作,不同点是它的卷积核空间尺寸是1x1大小,用1x1大小的卷积核对上一步得到的特征图进行逐点卷积,从而恢复输入特征图的通道数量。这一步主要用于融合通道之间的有用信息。

常规的卷积+bn+ReLU模块,替换成深度可分离卷积后,变成如下图所示的模块:
在这里插入图片描述

下表中展示了MobileNet采用深度可分离卷积和采用常规卷积的对比情况:
在这里插入图片描述
可以看到准确率只下降了1.1%,但是计算量和参数量都大大减小。

标准的MobileNet和小版本的MobileNet与当前流行的网络结构再ImageNet数据集上的表现情况如下表:
在这里插入图片描述


2、MobileNetv2

论文地址:MobileNetv2
MobileNetV2是MobileNet系列的第二个版本,由谷歌团队在2018年提出,它在v1的基础上进一步改进网络结构,提升了网络结构运算效率与识别精度。创新点如下:

  1. Inverted residuals,按照之前残差结构的通常用法,都是先经过一个1x1的卷积操作将特征图通道数减少,再做3x3卷积,最后再通过1x1卷积操作升维,将特征图通道扩充回到想要的数量,这样将通道先“压缩后扩张”的方式可以减少参数量。但是MobileNetv2的做法是反着来的,即“先扩张后压缩”。
  2. Linear bottlenecks,为了避免ReLU激活函数对特征的破坏,在residual block的Eltwise sum之前的那个 1*1 Conv 不再采用ReLU。

其中mobilenetv1和mobilenetv2在卷积模块中的不同点如下:
在这里插入图片描述
Mobilenetv2相对于v1版本主要改进点是,在做Depthwise卷积操作前,先用Pointwise卷积将通道数扩张,且在模块最后没有用非线性激活函数。
同时,MobileNetv2也借鉴ResNet结构,设计了残差结构,和Resnet中标注的卷积不同,mobilenetv2中采用Depthwise卷积,两者对比如下:
在这里插入图片描述
可见,和Resnet最大的不同是一个采用标准卷积一个采用Depthwise卷积,这个不同点,直接促使mobilenetv2在做Depthwise卷积之前可以将通道数量扩张而不是压缩,因为depthwise卷积的参数量本来就大大减少了。

相较于目前的轻量级网络,mobilenetv2在imagenet分类数据集上的表现如下表所示:
在这里插入图片描述
可以看到,相较于v1版本,参数量和复杂度都减小了,但准确率提升了1.4%,并且推理速度更快。


3、MobileNetv3

论文地址:MobileNetv3
Mobilenetv3是谷歌团队在2019年提出的,论文标题全名叫“Searching for Mobilenetv3”,从名字中可以看出,该版本的网络结构是结合了自动搜索方式得到的。该版本针对高资源设备和低资源设备分别提出了MobileNetv3-large和MobileNetv3-small两个版本的网络结构。

回顾:
MobileNetv1提出深度可分离卷积在保持精度基本不变的情况下,大大减小参数量;
MobileNetv2引入线性瓶颈层和反转残差结构来构建更有效的网络结构;
MnasNet在MobileNetv2基础上引入轻量化的注意力模块,该注意力模块由SE(squeeze and excitation)子模块组成,该模块放置在扩展中的DW Conv操作之后,以便将注意力集中在最大的表示上。
而MobileNetv3,为了构建最有效的模型,使用这些层的组合作为构建块,激活函数替换成了h-swish,在残差层中应用SE模块,并且在不同的层中应用不同的非线性激活函数。

MobileNetv3网络结构的改变
1、网络结构尾部的优化
针对224x224的输入,当前基于MobileNetv2的倒置瓶颈结构和变体使用1x1卷积作为最后一层,以便扩展到更高维度的特征空间。这一层对于拥有准确的预测特征是至关重要的。然而,这是以额外的延迟为代价的。为了减少延迟并保留高维特征,作者将升维这一动作移到最终的平均池化之后。如下图所示,高效的最后阶段将延迟减少了7毫秒,占运行时间的11%,并在几乎没有准确性损失的情况下将操作次数减少了3000万次。
在这里插入图片描述
2、头部卷积核个数减半
当前的MobilenetV2开始使用32个3x3的卷积核,作者发现使用h-swish激活函数相比于使用ReLU或者swish函数,可以在保持精度不减的情况下,将卷积核降低到16个,并且提速2ms、减少了1000万次加法运算。
在这里插入图片描述
在这里插入图片描述
可以看到MobileNetv2和Mobilenetv3-small的结构,后者在第一层特征图的通道设置为了16。

3、非线性激活函数
Swish激活函数作为ReLU的替待形式,可以显著提升模型的准确性,但为了在移动设备上移植更友好,作者参考ReLU-6提出了h-swish激活函数,公式如下:
在这里插入图片描述
在这里插入图片描述

4、在残差模块中加入SE模块
在这里插入图片描述
这个注意力子模块来自SENet,它通过对前一层特征图(N个channel)按通道在空间尺度上做avg pooling,得到和输入通道相同的N个值,然后经过两个FC层,两个FC层都有非线性激活,一个是ReLU,一个是h-sigmoid,最后得到N个非线性变换后的值,将这N个值与原有的N个输入通道做乘积将得到N个通道的重要程度加权,也就是加了通道注意力。

下表展示了MobileNetv3与其他轻量级模型在ImageNet数据集上的表现情况:
在这里插入图片描述
在同级别上,MobileNetv3相对于v2版本表现出了较大优势。


4、MobileNetv4

论文地址:MobileNetv4
在2024年,MobileNet迎来了第4个版本更新,名为MobileNetv4(MNv4),也是应用神经网络架构搜索(NAS)方式搜索得到的,其核心部分在于提出了通用倒置瓶颈块(Universal Inverted Bottlenecks, UIB),它是一个统一且灵活多变的结构,包含了倒置瓶颈(IB),ConvNext,前馈神经网络(FFN)以及一种新的额外深度可分 (ExtraDW) 变体的各种组合。同时,作者还提出了Mobile MQA,这是一个专为移动加速器设计的注意力块,能带来显著的39%速度提升。

回顾:优化模型的准确率和效率是长期深入研究的问题。可分为如下几个方面:
移动卷积网络(Mobile Convolutional Networks): 如MobileNetv1利用深度可分离卷积提升效率,MobileNetv2引入线性瓶颈和倒置残差模块,MnasNet在瓶颈模块中引入轻量级注意力模块,MobileOne在推理时在倒置瓶颈中重参数化线性分支。
高效混合网络(Efficient Hybrid Networks): 这个方向整合了卷积和注意力机制,主要是transformer,
比如MobileViT通过全局注意力块将CNN与ViT组合,MobileFormer并行结合MobileNet和transformer的特征,FastViT 在最后一个阶段加入注意力,并使用大的卷积核作为早期阶段自注意力机制的替代。
高效注意力: 最近的研究者集中提升MHSA(Multi Head Self-Attention)的高效实现。EfficientViT和MobileViTv2提出了自注意力近似方法,在保证准确率的条件下,使得注意力头达到线性复杂度。EfficientFormer-V2为了提高效率而对Q、K、V进行下采样,而CMT和NextViT仅对K和V进行下采样。
硬件感知神经架构搜索(NAS): 另一种常见的技术是使用硬件感知神经架构搜索(NAS)来自动化模型设计过程。NetAdapt 使用经验延迟表来在目标延迟约束下优化模型的准确性。MnasNet同样使用延迟表,但它应用强化学习来进行硬件感知的NAS。FBNet 通过可微分的NAS加速了多任务硬件感知搜索。MobileNetV3 通过结合硬件感知NAS、NetAdapt算法和架构改进,针对手机CPU进行调优。MobileNetMultiHardware 为多个硬件目标优化单一模型。Once-for-all 为提高效率,将训练和搜索分离。

下面简要介绍两个主要的创新点UIB和Mobile MQA:
Universal Inverted Bottlenecks
UIB的结构如下图所示,这是一个适用于高效网络设计的可变构建块,它具有灵活适应各种优化目标的能力,不会使得搜索复杂度爆炸性增长。
在这里插入图片描述
UIB中两个可选深度卷积有4种组合方式,这能导致不同的精度与速度之间的权衡;
倒置瓶颈(IB),在扩展的特征激活上进行空间混合,以增加成本为代价提供更大的模型容量。
ConvNext通过在扩展之前执行空间混合,实现了使用更大核尺寸进行更廉价的空间混合。
ExtraDW是本文提出的一种新变体,它允许廉价地增加网络的深度和感受野。
FFN是由两个1x1的点卷积(PW)堆叠而成,并在它们之间加入激活和标准化层。PW是最受加速器友好的操作之一,但最好与其他模块一起使用。
由上面可知,在网络的每个阶段,UIB提供了以下优势:达成一个即时的空间和通道混合的权衡;按需扩大感受野;最大化计算利用率。

Mobile MQA
在近期视觉模型的研究中,他们大多致力于减少算术运算(MACs)以提高效率。然而,在移动加速器上性能的真正瓶颈往往不是计算而是内存访问。这是因为加速器提供的计算能力远大于内存带宽。因此,仅仅最小化MACs可能并不会导致更好的性能。这里作者考虑操作强度,即算术运算与内存访问的比率。作者通过使用Multi-Query Attention (MQA) 通过在所有头之间使用共享的键和值简化了内存访问次数,从而实现提速39%的显著效果。MQA主要用于混合结构网络的加速。

MobileNetv4在ImageNet数据集上的表现如下:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程新知网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

聊聊Redis分布式锁的八大坑

前言 在分布式系统中,由于redis分布式锁相对于更简单和高效,成为了分布式锁的首先,被我们用到了很多实际业务场景当中。 但不是说用了redis分布式锁,就可以高枕无忧了,如果没有用好或者用对,也会引来一些…

JavaEE-HTTPHTTPS

目录 HTTP协议 一、概念 二、http协议格式 http请求报文 http响应报文 URL格式 三、认识方法 四、认识报头 HTTP响应中的信息 HTTPS协议 对称加密 非对称加密 中间人攻击 解决中间人攻击 HTTP协议 一、概念 HTTP (全称为 "超⽂本传输协议") 是⼀种应⽤…

k8s配置

一、前期准备 1、修改主机的/etc/hosts文件挟持域名 [rootk8s-master ~]# vim /etc/hosts 192.168.8.199 k8s-master 192.168.8.200 k8s-node1 192.168.8.201 k8s-node2 2、配置yum源 [rootk8s-master ~]# cd /etc/yum.repos.d/ [rootk8s-master yum.repos.d]# vim kubernetes…

最新实践!如何基于 DB-GPT 搭建财报分析助手?

DB-GPT 财报分析助手 精准解析数据 实现智慧决策 背景 最近,利用大模型进行财务报表分析正逐渐成为垂直领域的一个热门应用。大模型能够比人类更准确地理解复杂的财务规则,并在基于专业知识的基础上输出合理的分析结果。然而,财务报表信…

web3.0区块链元宇宙是什么

Web3.0 什么是 Web3.0 Web3.0是指基于区块链的去中心化在线生态系统,代表了互联网的下一个阶段。它是由以太坊联合创始人Gavin Wood在2014年创造的概念。Web3.0的发展是随着用户权利的增加和在互联网中角色的重要性不断进化的。 从互联网的发展历程来看&#xff0…

opencv之形态学

文章目录 1. 什么是形态学2. 形态学操作2.1 腐蚀2.2 膨胀2.3 通用形态学函数2.4 开运算2.5 闭运算2.6 形态学梯度运算2.7 礼帽运算2.8 黑帽运算 1. 什么是形态学 在图像处理领域,形态学是一种基于形状的图像分析技术,用于提取和处理图像的形态特征。这包…

【科研绘图】【风筝图】:附Origin详细画图流程

目录 No.1 理解风筝图 1 什么是风筝图 2 解读风筝图 No.2 画图流程 1 导入数据,绘制图形 2 设置绘图细节 3 设置坐标轴 4 效果图 No.1 理解风筝图 1 什么是风筝图 风筝图,也称为点图或散点图的一种变体,在生态学和环境科学中&#x…

win10本地设置无密码远程桌面登录设置

win10本地设置无密码远程桌面登录

25考研人数预计下降?这一届考研有哪些新趋势?

2025年考研时间线: 2024年9月:公共课及各院校考试大纲公布; 2024年9月下旬:预报名; 2024年10月:正式报名; 2024年11月:线上/线下确认; 2024年12月中下旬&#xff1a…

上传本地项目到git上面

文章目录 1.服务器创建一个空项目1.1.创建项目1.2.界面可能不一样 2.上传新项目到git上面2.1.将远程项目拉取到本地进行上传1. 将项目克隆到本地:(为了建立本地仓库和远程仓库关系方便推送)2. 建立本地仓库和远程仓库关系并推送(如…

百度地图SDK Android版开发 10 InfoWindow

百度地图SDK Android版开发 10 InfoWindow 前言InfoWindow 相关类和接口BaiduMap类InfoWindow 类构造方法gettersetterOnInfoWindowClickListener 接口 InfoWindowAdapter 相关类和方法BaiduMap类InfoWindowAdapter 接口Marker 类 示例界面布局MapInfoWindow类常量成员变量初始…

JVM5-垃圾回收

自动垃圾回收 在C/C这类没有自动垃圾回收机制的语言中,一个对象如果不再使用,需要手动释放,否则就会出现内存泄漏,称这种释放对象的过程为垃圾回收,而需要程序员编写代码进行回收的方式为手动回收 内存泄漏指的是不再…

数据结构——单链表查询、逆序、排序

1、思维导图 2、查、改、删算法 //快慢排序法找中间值 int mid_link(Link_t *plink) {Link_Node_t *pfast plink->phead;Link_Node_t *pslow pfast;int m 0;while(pfast ! NULL){pfast pfast->pnext;m;if(m % 2 0){pslow pslow->pnext;}}printf("%d\n&quo…

大数据-117 - Flink DataStream Sink 案例:写出到MySQL、写出到Kafka

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

bug“医典”

温馨提示:本篇文章主要用于收藏博主所遇到的各种bug,并且不定期更新 未初始化 “病状” “处方” 在需要的位置进行初始化即可 数组越界 “病状” “处方” 修改原理:越界通常是下标或者指针因为没有合适的控制,导致其走出了边界&#xf…

CDA数据分析一级考试备考攻略

一、了解考试内容和结构 CDA一级考试主要涉及的内容包括:数据分析概述与职业操守、数据结构、数据库基础与数据模型、数据可视化分析与报表制作、Power BI应用、业务数据分析与报告编写等。 CDA Level Ⅰ 认证考试大纲:https://www.cdaglobal.com/certification.h…

开源通用验证码识别OCR —— DdddOcr 源码赏析(二)

文章目录 前言DdddOcr分类识别调用识别功能classification 函数源码classification 函数源码解读1. 分类功能不支持目标检测2. 转换为Image对象3. 根据模型配置调整图片尺寸和色彩模式4. 图像数据转换为浮点数据并归一化5. 图像数据预处理6. 运行模型,返回预测结果 …

海洋运输船5G智能工厂物联数字孪生平台,推进制造业数字化转型

海洋运输船5G智能工厂物联数字孪生平台,推进制造业数字化转型。在当今全球制造业的浪潮中,数字化转型已成为不可逆转的趋势,它不仅重塑了生产流程,更深刻影响着企业的竞争力与可持续发展能力。其中,海洋运输船5G智能工…

NSS题目练习

[SWPUCTF 2022 新生赛]js_sign 打开后先随便填入,点击check,发现出现弹窗,并且尝试抓包抓不到,说明是js前端 查看源码找到js文件 补充: ‌‌ btoa函数是‌JavaScript中的一个全局函数,用于将二进制字符串…

爬虫 可视化 管理:scrapyd、Gerapy、Scrapydweb、spider-admin-pro、crawllab、feaplat、XXL-JOB

1、scrapyd 大多数现有的平台都依赖于 Scrapyd,这将选择限制在 python 和 scrapy 之间。当然 scrapy 是一个很棒的网络抓取框架,但是它不能做所有的事情。 对于重度 scrapy 爬虫依赖的、又不想折腾的开发者,可以考虑 Scrapydweb;…