深度学习卷积神经网络CNN之MobileNet模型网络模型详解说明(超详细理论篇)

1.MobileNet背景
2.MobileNet V1论文
3. MobileNett改进史
4. MobileNet模型结构
5. 特点(超详细创新、优缺点及新知识点)

一、MobileNet背景

  随着移动设备的普及,深度学习模型的应用场景逐渐扩展至移动端和嵌入式设备。然而,传统的深度学习模型在计算和存储资源上的需求较高,不适合在这些资源受限的设备上运行。因此,Google于2017年提出了MobileNet模型,旨在提供一种在性能不大幅降低的前提下,能够显著降低资源消耗的深度学习解决方案。
在这里插入图片描述

  MobileNet的核心目标是优化计算资源的使用,使其能够在移动设备和嵌入式系统中高效运行。这一模型的出现,为图像分类、目标检测、图像分割等任务提供了新的可能,尤其是在需要快速响应和低功耗的环境中。

二、MobileNet V1论文

论文名字 :MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

https://arxiv.org/abs/1704.04861原论文 V1网址

  提出了一类高效的模型,称为 MobileNets,适用于移动和嵌入式视觉应用。MobileNets 基于一种简化的架构,该架构使用深度可分离卷积来构建轻量级深度神经网络。引入了两个简单的全局超参数,可以有效地在延迟和准确性之间进行权衡。这些超参数允许模型构建者根据问题的约束为其应用选择合适大小的模型。在资源和准确性权衡方面进行了广泛的实验,与其他流行的 ImageNet 分类模型相比,它表现出了强大的性能。然后,展示了 MobileNets 在各种应用和用例中的有效性,包括对象检测、细粒度分类、面部属性和大规模地理定位。

MobileNetV2
论文标题:MobileNetV2: Inverted Residuals and Linear Bottlenecks

论文网址:https://arxiv.org/abs/1801.04381

MobileNetV4
论文标题:Searching for MobileNetV4: Cross-Stage Partial Networks for Next-Generation Mobile Vision Applications

论文网址:https://arxiv.org/abs/2404.10518

三、MobileNet改进史

  MobileNet系列至今已发展至V3版本,每一代都在不断优化性能和效率。

1.MobileNet V1

  首次引入了深度可分离卷积(Depthwise Separable Convolution)的概念。这种卷积方式将标准卷积分解为深度卷积和逐点卷积两个步骤,显著减少了计算量和模型大小。同时,V1还提供了可调的宽度乘子(width multiplier)和分辨率乘子(resolution multiplier),使用户可以根据具体应用需求调整模型的大小和输入图像的分辨率。

2.MobileNet V2

  在V1的基础上,引入了倒残差块(Inverted Residual Block)和线性激活函数(Linear Activation)。这些改进使得V2在保持轻量级特性的同时,实现了更高的准确性和更低的延迟。倒残差块的设计有助于保留和增强特征信息,改善了模型在低资源环境中的表现。

3.MobileNet V3

  进一步对V2进行了全面改进,采用了HardSwish激活函数、挤压励磁模块(Squeeze-and-Excitation Block),以及MnasNet和NetAdapt等网络架构搜索(NAS)技术。这些技术使得V3在保持高性能的同时,实现了更快的推理速度和更小的模型尺寸。

四、 MobileNet模型结构

在这里插入图片描述

  以V1为例,其网络结构主要由标准卷积层、深度可分离卷积层、平均池化层和全连接层组成。
在这里插入图片描述

标准卷积层:通常位于网络的首层,用于提取输入图像的低级特征。

深度可分离卷积层:是MobileNet的核心组件,由深度卷积和逐点卷积组成。深度卷积对每个输入通道进行独立卷积,逐点卷积则通过1x1卷积将各个通道的输出合并。

平均池化层:用于降低特征图的尺寸,减少计算量。
全连接层:位于网络的末层,用于将特征图映射到分类结果上。

  V2和V3在V1的基础上进行了改进,引入了倒残差块、线性激活函数和NAS等技术,进一步提升了模型的性能和效率。

五、特点(超详细创新、优缺点)

1.创新点

  深度可分离卷积:MobileNet的核心创新点在于深度可分离卷积的引入。这种卷积方式将标准卷积分解为深度卷积和逐点卷积两个步骤,显著减少了计算量和模型大小。同时,它还能够保留输入特征的空间结构,使得模型在保持高性能的同时,实现了更高效的计算。

  残差块:V2引入的倒残差块设计,使得特征在经过深度卷积时能够保留更多信息。这种结构首先通过一个1x1卷积将输入特征映射扩展,然后使用深度可分离卷积进行特征提取,最后再通过1x1卷积将特征压缩回原始维度。

  NAS技术:V3采用了MnasNet和NetAdapt等网络架构搜索技术,自动寻找最优的网络结构。这些技术使得V3在保持高性能的同时,实现了更快的推理速度和更小的模型尺寸。

2.优点

高效性:MobileNet模型在计算效率和参数数量上都显著减少,使其非常适合在手机等资源受限的设备上运行。
灵活性:用户可以通过调整宽度乘子和分辨率乘子来定制模型的复杂度,以满足不同应用场景的需求。
高性能:尽管MobileNet是轻量级模型,但在标准数据集(如ImageNet)上的表现仍然相对较好。它能够达到与许多重型网络相媲美的准确率。

3.缺点

  相对较低的准确性:虽然MobileNet的性能在轻量级模型中表现良好,但与一些大型、重型模型(如ResNet或Inception)相比,其准确性通常较低。在某些复杂任务中,可能无法达到所需的性能。
  信息损失:深度可分离卷积虽然减少了参数和计算量,但也可能导致信息的损失。因为每个通道是独立处理的,可能无法捕捉到跨通道的特征

4.新知识点

  宽度乘子和分辨率乘子:这两个超参数允许用户根据具体应用需求调整模型的大小和输入图像的分辨率,从而在准确率和效率之间找到平衡。
  NAS技术:网络架构搜索技术能够自动寻找最优的网络结构,提高模型的性能和效率。
  HardSwish激活函数:V3采用的HardSwish激活函数相比传统的ReLU激活函数,在某些情况下能够改善模型的学习能力

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

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

相关文章

垂起固定翼无人机大面积森林草原巡检技术详解

垂起固定翼无人机大面积森林草原巡检技术是一种高效、精准的监测手段,以下是对该技术的详细解析: 一、垂起固定翼无人机技术特点 垂起固定翼无人机结合了多旋翼和固定翼无人机的优点,具备垂直起降、飞行距离长、速度快、高度高等特点。这种无…

kubernates实战

使用k8s来部署tomcat 1、创建一个部署,并指定镜像地址 kubectl create deployment tomcat6 --imagetomcat:6.0.53-jre82、查看部署pod状态 kubectl get pods # 获取default名称空间下的pods kubectl get pods --all-namespaces # 获取所有名称空间下的pods kubect…

数据挖掘之认识数据

在数据挖掘过程中,数据的认识是非常重要的一步,它为后续的数据分析、建模、特征选择等工作奠定基础。以鸢尾花数据集(Iris Dataset)数据集之鸢尾花数据集(Iris Dataset)-CSDN博客为例,下面将介绍…

Java 优化springboot jar 内存 年轻代和老年代的比例 减少垃圾清理耗时 如调整 -XX:NewRatio

-XX:NewRatio 是 Java Virtual Machine (JVM) 的一个选项,用于调整 年轻代(Young Generation)和 老年代(Old Generation)之间的内存比例。 1. 含义 XX:NewRatioN 用于指定 老年代 与 年轻代 的内存比例。 N 的含义&…

统信UOS 1071 AI客户端接入本地大模型配置手册

文章来源:统信UOS 1071本地大模型配置手册 | 统信软件-知识分享平台 1. OS版本确认 1.1. 版本查看 要求:计算机,属性,查看版本(1070,构建号> 101.100) 2. UOS AI版本确认 UOS AI,设置&am…

定时任务——定时任务技术选型

摘要 本文深入探讨了定时任务调度系统的核心问题、技术选型,并对Quartz、Elastic-Job、XXL-Job、Spring Task/ScheduledExecutor、Apache Airflow和Kubernetes CronJob等开源定时任务框架进行了比较分析,包括它们的特点、适用场景和技术栈。文章还讨论了…

【ArcGIS Pro微课1000例】0064:栅格目录、栅格数据集、镶嵌数据集

一、栅格目录与栅格数据集 1. 定义 栅格目录:是一个用于管理和组织栅格数据集的结构,通常包含多个栅格数据集的元数据和索引信息。它相当于一个文件夹,里面可以存放多个栅格文件。可以将工作空间转栅格目录。 栅格数据集:是指单个的栅格数据文件,包含了具体的空间数据,…

Java基础 | 数据库的命名规范

数据库的命名规范 1. 基本原则2. 命名规范详解2.1 命名禁止项2.2 命名规范3. 通用字段规范4. 特殊表命名建议 1. 基本原则 统一性:全库采用一致的命名规范简洁性:在表达清晰的前提下尽量简短规范性:遵循数据库标准规范可读性:命名…

麒麟操作系统服务架构保姆级教程(二)sersync、lsync备份和NFS持久化存储

如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情 上篇文章我们说到rsync虽好,但是缺乏实时性,在实际应用中,咱们可以将rsync写进脚本,然后写进定时任务去备份,如果每天凌晨1:00…

青少年编程与数学 02-004 Go语言Web编程 16课题、并发编程

青少年编程与数学 02-004 Go语言Web编程 16课题、并发编程 一、并发编程并发编程的关键概念包括: 二、并发与并行并发编程(Concurrency)并行计算(Parallelism)区别 三、Go语言并发编程1. 协程(Goroutine&am…

均值聚类算法

K-均值聚类算法是一种常用的无监督学习算法,用于将数据集划分为K个簇或聚类。它的基本思想是通过迭代将数据点分配到簇中,使得每个数据点都属于最近的簇中心,并且使得簇内的数据点之间的距离最小化。 算法步骤如下: 1. 初始化K个…

wtforms+flask_sqlalchemy在flask-admin视图下实现日期的修改与更新

背景: 在flask-admin 的modelview视图下实现自定义视图的表单修改/编辑是件不太那么容易的事情,特别是想不自定义前端view的情况下。 材料: wtformsflask_sqlalchemy 制作: 上代码 1、模型代码 from .exts import db from …

【AIGC-ChatGPT进阶副业提示词】末日生存指南 2.0:疯狂科学家的荒诞智慧

引言 在这个不断变化的世界中,末日似乎总是lurking在角落。但是,亲爱的幸存者们,不要害怕!因为我,疯狂科学家2099,正在这里为你们带来最新版本的末日生存指南。这不是你祖母的应急手册,而是一本…

BiLSTM:深度学习中的双向长短期记忆网络

目录 ​编辑 1. BiLSTM原理 2. BiLSTM的应用案例 3. BiLSTM研究进展 4. BiLSTM技术挑战 5. BiLSTM未来趋势 6. BiLSTM的实际应用示例 6.1 数据准备 6.2 构建BiLSTM模型 6.3 训练模型 6.4 评估模型 6.5 可视化训练过程 7. 结论 在深度学习的浪潮中,BiLS…

Socket 收发内部拆包封包函数

在socket通信的时候,有时候数据比较大,内部缓存会溢出,导致发送或接收数据不正确。 针对这个情况,封装了一个接收和发送的底层函数,根据缓存大小批次发送和接收,内部有自己的缓冲区,测试情况良…

RK3588 , mpp硬编码yuv, 保存MP4视频文件.

RK3588 , mpp硬编码yuv, 保存MP4视频文件. ⚡️ 传送 ➡️ Ubuntu x64 架构, 交叉编译aarch64 FFmpeg mppRK3588, FFmpeg 拉流 RTSP, mpp 硬解码转RGBRk3588 FFmpeg 拉流 RTSP, 硬解码转RGBRK3588 , mpp硬编码yuv, 保存MP4视频文件.

powershell美化

powershell美化 写在前面 除了安装命令,其他都是测试命令,后续再写进配置文件 安装主题控件 安装主题oh-my-posh,powershell中执行 winget install JanDeDobbeleer.OhMyPosh -s winget oh-my-posh init pwsh | Invoke-Expression # 查看…

2024/12/22周报

文章目录 摘要Abstract深度学习文献阅读1. 背景与问题2. 发明目的3. 方法与实现3.1 数据采集与变量选取3.2 BP神经网络建立稳态预测模型3.3 构建多目标优化函数3.4 多目标差分进化算法求解优化3.5 最优决策变量筛选3.6 实时控制 4. 系统实现5. 实际效果与验证5.1 仿真验证5.2 神…

前端编程训练 异步编程篇 请求接口 vue与react中的异步

文章目录 前言代码执行顺序的几个关键点接口请求vue与react中的异步 vue中的异步react的state修改异步 前言 本文是B站三十的前端课的笔记前端编程训练,异步编程篇 代码执行顺序的几个关键点 我们可以理解为代码就是一行一行,一句一句是执行(定义变…

Excel生成DBC脚本源文件

Excel制作 新建一个Excel,后缀为“.xls” 工作本名称改为“CAN_Matrix” 在首行按照列来起名字,在里面只需要填写必须的内容即可。 列数名称第0列Message Name第1列Message Format第2列Message ID第3列Message Length (byte)第4列Message Transmitte…