MobileNet家族:从v1到v4的架构演进与发展历程

MobileNet 是一个专为移动设备和嵌入式系统设计的轻量化卷积神经网络(CNN)家族,旨在在资源受限的环境中实现高效的图像分类、对象检测和语义分割等任务。自 2017 年首次推出以来,MobileNet 经历了从 v1 到 v4 的多次迭代,每一代都在计算效率、模型大小和准确性上取得了显著进步。本文将详细探讨 MobileNet v1、v2、v3 和 v4 的原理、架构设计及其发展历程,并分析其关键创新和性能表现。


MobileNet v1:奠定轻量化基础

发布时间:2017 年
MobileNet v1 是该系列的起点,由 Google 提出,目标是设计一种高效的 CNN,适合在移动设备上运行。其核心创新是引入了深度可分离卷积(depthwise separable convolution),大幅降低了计算复杂度和模型参数量。

  • 原理与创新
    深度可分离卷积将标准卷积分解为两个步骤:

    1. 深度卷积(depthwise convolution):对每个输入通道单独应用一个滤波器,减少计算量。
    2. 逐点卷积(pointwise convolution):使用 1x1 卷积融合深度卷积的输出,生成新的特征图。
      相比标准卷积,这种方法将计算成本降低了约 8-9 倍(取决于滤波器数量)。
      此外,v1 引入了宽度乘数(α)分辨率乘数(ρ),允许用户通过调整滤波器数量和输入分辨率,在效率和准确性之间灵活权衡。
  • 架构设计
    网络以一个标准的 3x3 卷积层开头,随后是 13 个深度可分离卷积模块,通过步幅实现降采样,最后以平均池化和全连接层完成分类。输入分辨率默认设为 224x224。

  • 性能表现
    在 ImageNet 数据集上,MobileNet v1(α=1,ρ=1)实现了 70.6% 的 top-1 准确率,拥有 4.2 百万参数和 569 百万乘加运算(MAdds)。相比之下,VGG-16 的参数量(138 百万)和计算量(15,300 MAdds)远超 v1,而准确率仅略高(71.5%)。

  • 意义
    MobileNet v1 奠定了轻量化网络的基础,证明了深度可分离卷积在移动视觉任务中的潜力。

参考文献MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications


MobileNet v2:倒置残差与线性瓶颈的突破

发布时间:2018 年
MobileNet v2 在 v1 的基础上引入了倒置残差(inverted residuals)线性瓶颈(linear bottlenecks),进一步提升了效率和性能。

  • 原理与创新

    1. 倒置残差
      与传统残差网络(如 ResNet)不同,v2 的残差连接发生在低维瓶颈层之间,而非高维层。每个模块首先通过 1x1 卷积扩展通道(扩展因子通常为 6),然后应用深度卷积,最后通过 1x1 卷积压缩回低维。这种“扩展-卷积-压缩”的结构被称为倒置残差。
    2. 线性瓶颈
      在压缩层后,v2 移除非线性激活(如 ReLU),以避免低维特征的信息损失,保留更多表示能力。
  • 架构设计
    网络以一个 32 通道的 3x3 卷积层开始,随后是 19 个瓶颈残差块。这些块分为扩展层(expansion layer)、深度卷积层和投影层(projection layer),通过残差连接优化梯度流动。

  • 性能表现
    在 ImageNet 上,MobileNet v2(α=1)达到 72.0% 的 top-1 准确率,参数量为 3.4 百万,MAdds 为 300 百万,Google Pixel 1 上的 CPU 延迟为 75ms。相比 v1(70.6% 准确率,575 MAdds,113ms),v2 在更低的计算成本下提高了准确性。

  • 意义
    倒置残差和线性瓶颈的引入使 MobileNet v2 成为更高效的模型,广泛应用于实时任务。

参考文献MobileNetV2: Inverted Residuals and Linear Bottlenecks


MobileNet v3:神经架构搜索与硬件优化

发布时间:2019 年
MobileNet v3 通过**神经架构搜索(NAS)**和硬件感知优化,将移动网络设计推向新高度。它结合了 v2 的基础结构,并引入了新的激活函数和模块。

  • 原理与创新

    1. 神经架构搜索(NAS)
      使用 NAS 自动搜索网络结构,结合 NetAdapt 算法微调层级参数,优化延迟和准确性。
    2. h-swish 激活
      替换传统 ReLU 和 swish,h-swish(基于硬 sigmoid)在深层网络中减少计算开销,同时保持非线性表达能力。
    3. 挤压-激励(SE)模块
      在瓶颈块中加入 SE 模块,固定为扩展层的 1/4 大小,增强通道间的依赖性。
  • 架构设计
    MobileNet v3 基于 v2 的倒置残差块(称为 MBConv),提供两种变体:

    • MobileNetV3-Large:适用于高资源场景,目标延迟约 80ms。
    • MobileNetV3-Small:适用于低资源场景,结构更紧凑。
  • 性能表现

    • MobileNetV3-Large:75.2% top-1 准确率,5.4 百万参数,217 MAdds。
    • MobileNetV3-Small:67.5% top-1 准确率,2.5 百万参数,57 MAdds。
      与 v2 相比,Large 模型准确率提升 3.2%,延迟降低约 20%。
  • 意义
    MobileNet v3 通过自动化设计和硬件优化,成为移动设备上的标杆模型。

参考文献Searching for MobileNetV3


MobileNet v4:通用设计与多硬件支持

发布时间:2024 年
MobileNet v4 是最新一代,旨在为移动生态系统提供通用的高效架构,针对多种硬件(如 CPU、DSP、GPU 和专用加速器)进行了优化。

  • 原理与创新

    1. 通用倒置瓶颈(UIB)
      通过搜索融合多种块类型(倒置瓶颈、ConvNext、FFN 和 Extra Depthwise),生成灵活的计算单元,适应不同硬件需求。
    2. 移动优化多查询注意力(Mobile MQA)
      引入轻量化的注意力机制,加速约 39%,提升特征表达能力。
    3. 增强的 NAS
      使用更先进的搜索策略,优化延迟、内存和准确性的 Pareto 前沿。
  • 架构设计
    v4 的具体层级细节依赖于搜索结果,但其核心是 UIB 块和 MQA 模块的组合,支持多种硬件加速器(如 Apple Neural Engine 和 Google EdgeTPU)。

  • 性能表现
    具体数据需参考最新论文,但 v4 被设计为在多种移动场景下实现最优性能,尤其是在边缘计算中表现出色。

  • 意义
    MobileNet v4 的通用性和硬件适配能力使其成为未来移动视觉任务的理想选择。

参考文献MobileNetV4 – Universal Models for the Mobile Ecosystem


发展历程总结

版本发布年份核心创新Top-1 准确率(α=1)参数量 (M)MAdds (M)
MobileNet v12017深度可分离卷积70.6%4.2569
MobileNet v22018倒置残差,线性瓶颈72.0%3.4300
MobileNet v32019NAS,h-swish,SE 模块75.2% (Large)5.4217
MobileNet v42024UIB,Mobile MQA,增强 NAS未公开未公开未公开

未来展望

MobileNet 从 v1 的轻量化探索,到 v4 的通用硬件优化,展示了深度学习在移动设备上的演进路径。未来,随着边缘计算和专用硬件的发展,MobileNet 可能进一步通过自动化设计和跨平台优化,满足更复杂的实时视觉需求。


参考文献

  1. Howard, A. G., et al. (2017). MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications. arXiv:1704.04861
  2. Sandler, M., et al. (2018). MobileNetV2: Inverted Residuals and Linear Bottlenecks. arXiv:1801.04381
  3. Howard, A., et al. (2019). Searching for MobileNetV3. arXiv:1905.02244
  4. Yang, T., et al. (2024). MobileNetV4 – Universal Models for the Mobile Ecosystem. arXiv:2404.10518

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

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

相关文章

在 Windows 上使用 choco 安装 mkcert 并配置 Vue 运行HTTPS

解决在Windows上使用Vue本地运行HTTPS的问题,vue-cli或vite都可以使用 步骤 1:确认 Chocolatey 是否已安装 1. 检查 choco 命令是否可用 打开 PowerShell(管理员权限),输入: choco -v如果显示版本号(如…

【PHP】新版本特性记录(持续更新)

文章目录 前言PHP 7.01&#xff09;NULL合并运算符&#xff1a;??2&#xff09;参数、返回值支持类型声明3&#xff09;太空船操作符&#xff1a;<>4&#xff09;通过 define 定义常量数组5&#xff09;匿名类实例化6&#xff09;字符串里使用\u转义unicode codepoint …

【记】如何理解kotlin中的委托属性?

1. 什么是委托属性&#xff1f; 委托属性的核心思想是&#xff1a; 你可以将一个属性的 getter 和 setter 的逻辑交给一个外部对象&#xff08;称为委托对象&#xff09;来处理。这个外部对象负责存储属性的值&#xff0c;并提供自定义的 get 和 set 行为。 通过委托属性&am…

使用自动导入后,eslint报错 eslint9

前提&#xff1a;使用pnpm create vuelatest创建vue应用&#xff0c;并且在创建项目时就勾选eslint和prettier&#xff0c;不然有些配置还需要手动配&#xff0c;比如解决eslint和prettier的冲突问题 1. 解决使用自动导入后Eslint报错问题 配置vite.config.ts // 自动导入api…

springboot EasyExcel 实现导入导出

1. 添加依赖 确保 Maven 依赖中包含 EasyExcel 3.0.5&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.0.5</version></dependency><!-- excel工具 --><dep…

实现悬浮按钮拖动,兼容h5和微信小程序

h5用js写&#xff0c;微信小程序用 代码里面没有完全实现吸附边缘的功能&#xff0c;需要吸附边缘的话还得自己再完善下&#xff08;h5的吸附边缘是可以的&#xff0c;小程序的还有点问题&#xff09; 主要功能是&#xff1a;图片上写文字的悬浮按钮&#xff0c;文字使用的是…

2、操作系统之软件基础

一、硬件支持系统 &#xff0c;系统管理硬件 操作系统核心功能可以分为&#xff1a; 守护者&#xff1a;对硬件和软件资源的管理协调者&#xff1a;通过机制&#xff0c;将各种各样的硬件资源适配给软件使用。 所以为了更好的管理硬件&#xff0c;操作系统引进了软件。其中3大…

17 | 实现简洁架构的 Biz 层

提示&#xff1a; 所有体系课见专栏&#xff1a;Go 项目开发极速入门实战课&#xff1b;欢迎加入 云原生 AI 实战 星球&#xff0c;12 高质量体系课、20 高质量实战项目助你在 AI 时代建立技术竞争力&#xff08;聚焦于 Go、云原生、AI Infra&#xff09;&#xff1b;本节课最终…

idea更新git代码报错No Git Roots

idea更新git代码报错&#xff1a; No Git Roots None of configured Git roots are under Git. The configured directory must have ".git directory in it.但是本地项目里是存在.git文件的&#xff0c;就是突然间不能更新代码了 然后尝试重新拉新项目代码提示: Git i…

Webpack 知识点整理

​ 1. 对 webpack 的理解&#xff1f;解决了什么问题&#xff1f; Webpack 是前端工程化领域的核心工具&#xff0c;其核心定位是模块打包器&#xff08;Module Bundler&#xff09;&#xff0c;通过将各类资源&#xff08;JS、CSS、图片等&#xff09;视为模块并进行智能整合…

[Hello-CTF]RCE-Labs超详细WP-Level13Level14(PHP下的0/1构造RCE命令简单的字数限制RCE)

Level 13 源码分析 这题又回到了 PHP重点关注preg_match("/[A-Za-z0-9\"%*,-.\/:;>?[\]^|]/", $cmd)禁用了所有数字, 并且回到了 PHP, 没办法用上一关的方法进行绕过但是比起上一关, 给我们少绕过了 &, ~, _似乎有其他方法 解题分析 利用 $(()) 和 …

Qt 控件概述 QWdiget 1.1

目录 qrc机制 qrc使用 1.在项目中创建一个 qrc 文件 2.将图片导入到qrc文件中 windowOpacity&#xff1a; cursor 光标 cursor类型 自定义Cursor font tooltip focusPolicy styleSheet qrc机制 之前提到使用相对路径的方法来存放资源&#xff0c;还有一种更好的方式…

【eNSP实战】将路由器配置为DHCP服务器

拓图 要求&#xff1a; 为 office100 和 office200 分别配置地址池 AR1接口配置 interface GigabitEthernet0/0/0ip address 192.168.100.1 255.255.255.0 # interface GigabitEthernet0/0/1ip address 192.168.200.1 255.255.255.0 AR1路由器上创建office100地址池 [AR1…

数据结构——顺序表seqlist

前言&#xff1a;大家好&#x1f60d;&#xff0c;本文主要介绍了数据结构——顺序表部分的内容 目录 一、线性表的定义 二、线性表的基本操作 三.顺序表 1.定义 2. 存储结构 3. 特点 四 顺序表操作 4.1初始化 4.2 插入 4.2.1头插 4.2.2 尾插 4.2.3 按位置插 4.3 …

OSPF | LSDB 链路状态数据库 / SPF 算法 / 实验

注&#xff1a;本文为 “OSPF | LSDB / SPF ” 相关文章合辑。 LSDB 和 SPF 算法 潇湘浪子的蹋马骨汤 发布 2019-02-15 23:58:46 1. 链路状态数据库 (LSDB) 链路状态协议除了执行洪泛扩散链路状态通告&#xff08;LSA&#xff09;以及发现邻居等任务外&#xff0c;其第三个任…

前端---CSS(前端三剑客)

1.基本语法规范 选择器 {⼀条/N条声明} • 选择器决定针对谁修改 (找谁) • 声明决定修改啥. (⼲啥) • 声明的属性是键值对. 使⽤ ; 区分键值对, 使⽤ : 区分键和值 比如&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta…

【C++】 —— 笔试刷题day_6

刷题day_6&#xff0c;继续加油哇&#xff01; 今天这三道题全是高精度算法 一、大数加法 题目链接&#xff1a;大数加法 题目解析与解题思路 OK&#xff0c;这道题题目描述很简单&#xff0c;就是给我们两个字符串形式的数字&#xff0c;让我们计算这两个数字的和 看题目我…

todolist docker 小工具

参考链接 前排提示 没有中文&#xff0c;可使用浏览器 翻译 前提 安装docker安装docker-compose 下载仓库 git clone https://github.com/JordanKnott/taskcafe进行安装 cd taskcafe docker-compose -p taskcafe up -d服务启动后会监听在 3333 端口上&#xff0c;通过浏览器…

Unity--GPT-SoVITS接入、处理GPTAPI的SSE响应流

GPT-SoVITS GPT-SoVITS- v2&#xff08;v3也可以&#xff0c;两者对模型文件具有兼容&#xff09; 点击后 会进入新的游览器网页 ----- 看了一圈&#xff0c;发现主要问题集中在模型的训练很需要CPU&#xff0c;也就是模型的制作上&#xff0c;问题很多&#xff0c;如果有现有…

《TypeScript 快速上手:类型、编译与严格模式的简明教程》

一、TypeScript介绍 在引入编程社区 20 多年后&#xff0c;JavaScript 现在已成为有史以来应用最广泛的跨平台语言之一。JavaScript 最初是一种用于向网页添加微不足道的交互性的小型脚本语言&#xff0c;现已发展成为各种规模的前端和后端应 用程序的首选语言。虽然用 JavaSc…