轻量级网络(一):MobileNet V1,V2, V3系列

2023-11-07

轻量级网络(一):MobileNet V1,V2, V3系列


在实际应用中,不仅要关注模型的精度,还需要关注模型的速度。在既要精度又要速度的考量中,轻量化网络应运而生。轻量级网络拥有不差于笨重模型的性能,但相比于笨重模型,有更少的参数和计算量,对硬件更友好。轻量级网络发展至今,已经涌现了SqueezeNet系列,MobileNet系列,ShuffleNet系列,EfficientNet等等系列。这篇文章仅仅阐述MobileNet从V1到V3的发展历程。

MobileNet V1

MobileNet V1版本的主要创新点在于将标准卷积替换为深度可分离卷积。深度可分离卷积相比于标准卷积,能够有效地减少计算量和模型参数。如下表所示,使用深度可分离卷积的MobileNet,相比于使用标准卷积的MobileNet,在ImageNet数据集上的精度下降了1.1%,但是模型参数减少了约7倍,加乘计算量减少了约9倍。
在这里插入图片描述

卷积计算量

标准卷积

假设一个标准卷积的输入特征图 F F F D F × D F × M D_{F} \times D_{F} \times M DF×DF×M,输出特征图 G G G D F × D F × N D_{F} \times D_{F} \times N DF×DF×N,其中是 D F D_{F} DF表示特征图的宽和高, M M M N N N是特征图的通道数目。假设卷积核为 K K K,尺寸为 D K × D K × M × N D_{K} \times D_{K} \times M \times N DK×DK×M×N,其中 D K D_{K} DK是卷积核宽和高。

那么一个标准的卷积运算,stride设为1,padding使得输出特征图长宽和输入特征图一样,那么标准卷积的计算量 D K ⋅ D K ⋅ M ⋅ N ⋅ D F ⋅ D F D_{K} \cdot D_{K} \cdot M \cdot N \cdot D_{F} \cdot D_{F} DKDKMNDFDF

深度可分卷积

深度可分卷积(depthwise separable convolution )是一种可分解卷积形式,它将标准卷积分解为一个**深度卷积(depthwise convolution)**和一个 1 × 1 1 \times 1 1×1卷积,其中 1 × 1 1 \times 1 1×1卷积被称为pointwise convolution。深度卷积的filters尺寸大小为 D K × D K × 1 × M D_{K} \times D_{K} \times 1 \times M DK×DK×1×M,它在每一个输入通道上应用一个单独的fliter,pointwise convolution利用 1 × 1 1 \times 1 1×1卷积将深度卷积的输出通道融合起来。这样分解,能够有效地减少计算量和减少模型大小。

假设一个深度可分卷积的输入特征图为 D F × D F × M D_{F} \times D_{F} \times M DF×DF×M,其输出特征图为 D F × D F × M D_{F} \times D_{F} \times M DF×DF×M,其中是 D F D_{F} DF表示特征图的宽和高, M M M N N N是特征图的通道数目。

  1. 深度卷积: 卷积核为 D K × D K × 1 × M D_{K} \times D_{K} \times 1 \times M DK×DK×1×M,那么输出特征图大小为 D F × D F × M D_{F} \times D_{F} \times M DF×DF×M
  2. 1*1卷积:卷积核为 1 × 1 × M × N 1 \times 1 \times M \times N 1×1×M×N,最后的输出为 D F × D F × M D_{F} \times D_{F} \times M DF×DF×M

深度可分卷积的计算量是深度卷积和pointwise convolution的计算量之和,为 D K ⋅ D K ⋅ M ⋅ D F ⋅ D F + M ⋅ N ⋅ D F ⋅ D F D_{K} \cdot D_{K} \cdot M \cdot D_{F} \cdot D_{F} + M \cdot N \cdot D_{F} \cdot D_{F} DKDKMDFDF+MNDFDF

下述公式计算深度可分卷积的计算量和标准卷积的计算量的比率,可以看出深度可分卷积是标准卷积的 1 N + 1 D K 2 \frac{1}{N} + \frac{1}{D_{K}^{2}} N1+DK21。一般情况下,卷积核大小为 3 × 3 3 \times 3 3×3,为 D K 2 = 9 D_{K}^{2} = 9 DK2=9,卷积核的通道数 N N N的取值一般会大于9,那么 1 N + 1 D K 2 > 1 9 \frac{1}{N} + \frac{1}{D_{K}^{2}} > \frac{1}{9} N1+DK21>91
深度可分卷积 标准卷积 = D K ⋅ D K ⋅ M ⋅ D F ⋅ D F + M ⋅ N ⋅ D F ⋅ D F D K ⋅ D K ⋅ M ⋅ N ⋅ D F ⋅ D F = 1 N + 1 D K 2 \frac{深度可分卷积}{标准卷积}=\frac{D_{K} \cdot D_{K} \cdot M \cdot D_{F} \cdot D_{F} + M \cdot N \cdot D_{F} \cdot D_{F}}{D_{K} \cdot D_{K} \cdot M \cdot N \cdot D_{F} \cdot D_{F}}= \frac{1}{N} + \frac{1}{D_{K}^{2}} 标准卷积深度可分卷积=DKDKMNDFDFDKDKMDFDF+MNDFDF=N1+DK21

MobileNet V1的网络架构图如下所示:
在这里插入图片描述

模型瘦身

从上述深度可分卷积和标准卷积计算量的对比,我们发现MobileNet架构相比于其他卷积网络结构具有较少的参数和计算量,但是仍然有很多场景需要更小更快的模型。为了得到更小的模型,论文里面引入两个超参,宽度倍增器(width multiplier, α \alpha α)和分辨率倍增器(Resolution Multiplier, ρ \rho ρ),对模型进行瘦身。宽度倍增器作用的是每层的通道数,分辨率倍增器作用的是输入图像的分辨率大小。

宽度倍增器

α \alpha α被称为宽度倍增器(width multiplier),作用是对网络瘦身。对于某一层,定义宽度倍增器 α \alpha α,那么输入通道数 M M M则变成 α M \alpha M αM,输出通道数 N N N将变成 α N \alpha N αN α ∈ ( 0 , 1 ] \alpha \in \left(0, 1 \right] α(0,1],一般取 1 , 0.75 , 0.5 , 0.25 1, 0.75, 0.5 , 0.25 1,0.75,0.5,0.25,当时 α = 1 \alpha =1 α=1是基础版MobileNet,当 α < 1 \alpha < 1 α<1时是缩减版mobileNet。缩减后的深度可分卷积的计算量如下公式所示,计算量缩减了 α 2 \alpha^{2} α2倍。
D K ⋅ D K ⋅ α M ⋅ D F ⋅ D F + α M ⋅ α N ⋅ D F ⋅ D F D_{K} \cdot D_{K} \cdot \alpha M \cdot D_{F} \cdot D_{F} + \alpha M \cdot \alpha N \cdot D_{F} \cdot D_{F} DKDKαMDFDF+αMαNDFDF

分辨率倍增器

ρ \rho ρ被称为分辨率倍增器(Resolution Multiplier),输入大小增大/缩小 ρ \rho ρ倍,那么网络中的每一层也随之增大/缩小 ρ \rho ρ倍。 ρ ∈ ( 0 , 1 ] \rho \in \left(0, 1 \right] ρ(0,1],网络的输入分辨率一般取 224 , 192 , 160 , 128 224, 192, 160 , 128 224,192,160,128。当时 ρ = 1 \rho =1 ρ=1为基础版MobileNet,当 ρ < 1 \rho < 1 ρ<1时为缩减版mobileNet。缩减后的深度可分卷积的计算量如下公式所示,可见计算量缩减了 ρ 2 \rho^{2} ρ2倍。

D K ⋅ D K ⋅ α M ⋅ ρ D F ⋅ ρ D F + α M ⋅ α N ⋅ ρ D F ⋅ ρ D F D_{K} \cdot D_{K} \cdot \alpha M \cdot \rho D_{F} \cdot \rho D_{F} + \alpha M \cdot \alpha N \cdot \rho D_{F} \cdot \rho D_{F} DKDKαMρDFρDF+αMαNρDFρDF

MobileNet V2

MobileNet V2 的创新点在于带有线性瓶颈的反残差模块( the inverted residual with linear bottleneck)。在论文中,作者发现在低维空间使用非线性函数会损失一些信息,但在高维空间,损失相对少一些。因此,引入反残差(Inverted Residuals)的概念,先升维再做卷积,相对能够较好地保存特征。升维会增加计算量,因此需要降维,又因为非线性会损失信息,所以采用线性的方式进行降维,被称为线性瓶颈(Linear Bottlenecks)。

Bottleneck residual block

在这里插入图片描述
MobileNetV2和MobileNetV1相比,如上图所示,保留了深度卷积和 1 × 1 1 \times 1 1×1卷积,增加了 1 ∗ 1 1*1 11卷积的线性层,MobileNet V2的基础组件称为Bottleneck residual block。不过 1 × 1 1 \times 1 1×1卷积是在输入之后,深度卷积之前,目的是为了扩张维度。实验验证,使用 1 × 1 1 \times 1 1×1线性卷积的目的是为了阻止非线性破坏过多的信息。strides为1时,借鉴残差结构,不过不同于残差结构通道数的先降后升,MobileNetV2则是先升通道后降通道数。

假设输入特征图大小为 h × w × k h \times w \times k h×w×k,首先经过一个 1 × 1 1 \times 1 1×1大小的卷积,输出特征图的大小为 h × w × ( t k ) h \times w \times \left(tk\right) h×w×(tk),其中 t t t是膨胀系数,MobileNet V2网络架构中取 t = 6 t=6 t=6。随后紧接一个 3 × 3 3 \times 3 3×3大小的卷积,步数为 s s s,输出特征图大小为 h s × w s × ( t k ) \frac{h}{s} \times \frac{w}{s} \times \left( tk \right) sh×sw×(tk),最后经过一个 1 × 1 1 \times 1 1×1大小的线性卷积,得到最后的输出,输出特征图大小为 h × w × k ′ h \times w \times {k}' h×w×k

在这里插入图片描述

模型架构

MobileNet V2的网络架构如下图所示,其实 t t t为膨胀系数, c c c是通道数, n n n是重复次数, s s s是步数。

在这里插入图片描述

MobileNet V3

MnasNet在MobileNet V2 Bottleneck block的基础上加入SE模块引入轻量级注意力,如上图所示,为了将注意力应用到最大表示上,SE模块用在膨胀的深度可分卷积后。MobileNet V3网络架构中包括MnasNet和MobileNet V2基础块。

在这里插入图片描述
MobileNet V3网络架构的构造包含两个步骤:首先,由platform-aware NAS和NetAdapt算法复合网络搜索搜索基本架构;然后再引入几个新组件改进模型性能,形成最终模型。platform-aware NAS通过优化每一个网络块搜索全局网络结构,NetAdapt算法搜索每一层的filter数量。MobileNet V3中引入了一个新的非线性函数,h-swish(swish的改进版),它能够更快阶段,并且量化更友好。MobileNet V3 在保持准确率的前提下,重新设计了计算昂贵的网络开端和末端层,减少延迟。这个具体见论文。

s w i s h    x = x ⋅ σ ( x ) h − s w i s h [ x ] = s R e L U 6 ( x + 3 ) 6 swish \; x = x \cdot \sigma \left( x \right) \\ h-swish\left[ x \right] = s \frac{ReLU6\left( x + 3 \right)}{6} swishx=xσ(x)hswish[x]=s6ReLU6(x+3)

MobileNet V3有两个模型:MobileNetV3-Large 和 MobileNetV3-Small。大小模型的网络结构分表如下表所示,它们分别针对高和低资源用例。其中SE表示在block中是否包括Squee-And-Excite。NL是非线性类型,其中HS表示h-swish,RE表示ReLU。NBN表示没有BN操作。

MobileNetV3-Large网络结构如下所示:

MobileNet V3 Large
MobileNet V3 small网络结构如下所示:
MobileNet V3 Small

MobileNet V1,V2,V3对比

以下是MobileNetV1-V3各网络在ImageNet-1k上的top-1精度和参数两对比。

Network Top-p1 Params
MobileNetV1 70.6 4.2M
MobileNetV2 72.0 3.4M
MobileNetV2(1.4) 74.7 6.9M
MobileNetV3-Large(1.0) 75.2 5.4M
MobileNetV3-Large(0.75) 73.3 4.0M
MobileNetV3-Small(1.0) 67.4 2.5M
MobileNetV3-Small(0.75) 65.4 2.0M

参考

  1. MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
  2. MobileNetV2: Inverted Residuals and Linear Bottlenecks
  3. Searching for MobileNetV3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

轻量级网络(一):MobileNet V1,V2, V3系列 的相关文章

  • 探索人工智能:深度学习、人工智能安全和人工智能编程(文末送书)

    文章目录 学习AI要看的第一本书 人工智能应当以人为本 史蒂芬 卢奇 Stephen Lucci 萨尔汗 M 穆萨 Sarhan M Musa 丹尼 科佩克 Danny Kopec 已故 通晓六点 明白人工智能是怎么回事 基本概念和历史
  • S281 LoRa网关在智能电力监测系统中的应用

    随着能源消耗的增加和环境保护的要求 智能电力监测系统在电力行业得到了广泛的应用 作为一家领先的科技公司 钡铼技术有限公司推出的S281 LoRa网关为智能电力监测系统提供了强大的支持和解决方案 本文将重点介绍S281 LoRa网关在智能电力
  • 如何使用内网穿透实现iStoreOS软路由公网远程访问局域网电脑桌面

    文章目录 简介 一 配置远程桌面公网地址 二 家中使用永久固定地址 访问公司电脑 具体操作方法是 简介 软路由 是PC的硬件加上路由系统来实现路由器
  • 成为一个黑客,就按照这个路线来!

    前几天一个同学在聊天中提到毕业后想要从事网络安全方向的工作 虽然他本身也是学计算机的 但是又怕心有余而力不足 因为 从事网络安全方面的工作向来起点都比较高 大学里少有开设这类课程的 在学校能够学到的知识比较有限 网上的关于这方面课程的质量又
  • 如何解决Mybatis-plus与Mybatis不兼容的问题:An attempt was made to call a method that does not exist. The attempt

    博主猫头虎的技术世界 欢迎来到 猫头虎的博客 探索技术的无限可能 专栏链接 精选专栏 面试题大全 面试准备的宝典 IDEA开发秘籍 提升你的IDEA技能 100天精通Golang Go语言学习之旅 领域矩阵 猫头虎技术领域矩阵 深入探索各技
  • 【CTF必看】从零开始的CTF学习路线(超详细),让你从小白进阶成大神!

    最近很多朋友在后台私信我 问应该怎么入门CTF 个人认为入门CTF之前大家应该先了解到底 什么是CTF 而你 学CTF的目的又到底是什么 其次便是最好具备相应的编程能力 若是完全不具备这些能力极有可能直接被劝退 毕竟比赛的时候动不动写个脚本
  • 深度好文:最全的大模型 RAG 技术概览

    本文是对检索增强生成 Retrieval Augmented Generation RAG 技术和算法的全面研究 对各种方法进行了系统性的梳理 涉及了 RAG 流程中的数据拆分 向量化 查询重写 查询路由等等 在做 RAG 的小伙伴一定知道
  • Python爬虫实战:IP代理池助你突破限制,高效采集数据

    当今互联网环境中 为了应对反爬虫 匿名访问或绕过某些地域限制等需求 IP代理池成为了一种常用的解决方案 IP代理池是一个包含多个可用代理IP地址的集合 可以通过该代理池随机选择可用IP地址来进行网络请求 IP代理池是一组可用的代理IP地址
  • 用通俗易懂的方式讲解:如何用大语言模型构建一个知识问答系统

    传统搜索系统基于关键字匹配 在面向 游戏攻略 技术图谱 知识库等业务场景时 缺少对用户问题理解和答案二次处理能力 本文探索使用大语言模型 Large Language Model LLM 通过其对自然语言理解和生成的能力 揣摩用户意图 并对
  • 通俗易懂,十分钟读懂DES,详解DES加密算法原理,DES攻击手段以及3DES原理

    文章目录 1 什么是DES 2 DES的基本概念 3 DES的加密流程 4 DES算法步骤详解 4 1 初始置换 Initial Permutation IP置换 4 2 加密轮次 4 3 F轮函数 4 3 1 拓展R到48位 4 3 2
  • 【图像融合】基于联合双边滤波和局部梯度能量的多模态医学图像融合研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 图像 文章
  • 【网安神器篇】——WPScan漏洞扫描工具

    目录 一 Wordpress简介 二 WPScan介绍 三 安装 四 获取token 1 注册账号 2 拿到token 五 使用教程 1 常用选项 2 组合命令 1 模糊扫描 2 指定扫描用户 3 插件漏洞扫描 4 主题漏洞扫描 5 Tim
  • 网络安全(黑客)自学启蒙

    一 什么是网络安全 网络安全是一种综合性的概念 涵盖了保护计算机系统 网络基础设施和数据免受未经授权的访问 攻击 损害或盗窃的一系列措施和技术 经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 作
  • 用CHAT分析高校体育智慧教学体系构建与探索研究现状

    CHAT回复 现阶段 高校体育智慧教学体系的构建与探索研究还处于初级阶段 但全球数字化转型大潮的推动下 一些较为前沿的研究和实践已经开始出现 1 教学平台的建设 很多高校已经开始尝试使用在线教育平台进行体育教学 把传统的面对面授课模式转变为
  • 短信系统搭建主要因素|网页短信平台开发源码

    短信系统搭建主要因素 网页短信平台开发源码 随着移动互联网的快速发展 短信系统已成为企业和个人进行信息传递的重要工具 建立一个高效可靠的短信系统对于企业来说非常重要 下面我们将介绍一些影响短信系统搭建的主要因素 1 平台选择 在搭建短信系统
  • 静态综合实验

    1 IP地址划分 192 168 1 0 27 用于主干拆分 192 168 1 32 27 用于用户拆分 192 168 1 64 27 用于用户拆分 192 168 1 96 27 用于用户拆分 192 168 1 128 27 用于用
  • 为什么我强烈推荐大学生打CTF!

    前言 写这个文章是因为我很多粉丝都是学生 经常有人问 感觉大一第一个学期忙忙碌碌的过去了 啥都会一点 但是自己很难系统的学习到整个知识体系 很迷茫 想知道要如何高效学习 这篇文章我主要就围绕两点 减少那些罗里吧嗦的废话 直接上干货 CTF如
  • 【无标题】

    大家都知道该赛项的规程和样题向来都是模棱两可 从来不说具体的内容 导致选手在备赛时没有头绪 不知道该怎么训练 到了赛时发现题目和备赛的时候完全不一样 那么本文将以往年信息安全管理与评估赛项经验来解读今年2023年国赛的规程 帮助选手们指明方
  • 网工内推 | 上市公司同程、科达,五险一金,年终奖,最高12k*15薪

    01 同程旅行 招聘岗位 网络工程师 职责描述 1 负责职场 门店网络规划 建设 维护 2 负责网络安全及访问控制 上网行为管理和VPN设备的日常运维 3 负责内部相关网络自动化和系统化建设 4 优化与提升网络运行质量 制定应急预案 人员培
  • 网络安全行业热门认证证书合集

    网络安全认证证书 就和学历一样是敲门砖 拿到了可以用不到 但不能没有 技术大牛可以没有证书 但普通人不能没有 1 初级入门 就像学历在职场上展示一个人的基本素养一样 网络安全认证证书可以展示一个人在网络安全领域具备的基本知识和技能 它为初学

随机推荐