首页 > 其他分享 >轻量化网络——MobileNet

轻量化网络——MobileNet

时间:2024-04-11 22:34:44浏览次数:27  
标签:维空间 MobileNet 卷积 网络 ReLU 轻量化 V1 深度

原文链接:https://zhuanlan.zhihu.com/p/402766063

作为轻量化网络的经典网络,MobileNet自诞生就被广泛应用于工业界。笔者也经常在结构设计中使用MobileNet的诸多设计思想。本文参考众多大神文章,较详细介绍MobileNet系列的设计及改进思想,力求温故知新,举一反三。

MobileNet V1

MobileNet V1是由google2016年提出,2017年发布的文章。其主要创新点在于深度可分离卷积,而整个网络实际上也是深度可分离模块的堆叠。

在介绍深度可分离之前,先从模型推理时间的角度分析下模型结构对与模型耗时的影响。

 该图是AlexNet网络中不同层的GPU和CPU的时间消耗,我们可以清晰的看到,不管是在GPU还是在CPU运行,最重要的“耗时杀手”就是conv,卷积层。也就是说,想要提高网络的运行速度,就得到提高卷积层的计算效率。

深度可分离卷积

深度可分离卷积被证明是轻量化网络的有效设计,如上图所示,深度可分离卷积由逐深度卷积(Depthwise)和逐点卷积(Pointwise)构成。

对比于标准卷积,逐深度卷积将卷积核拆分成为单通道形式,在不改变输入特征图像的深度的情况下,对每一通道进行卷积操作,这样就得到了和输入特征图通道数一致的输出特征图。

逐点卷积就是1×1卷积。主要作用就是对特征图进行升维和降维。

标准卷积与深度可分离卷积详细对比:

 

 了解了MobileNet V1的基本结构,那么MobileNet V1为什么会快呢?

 

ReLU6就是普通的ReLU但是限制最大输出值为6(对输出值做clip),这是为了在移动端设备float16的低精度的时候,也能有很好的数值分辨率,如果对ReLU的激活范围不加限制,输出范围为0到正无穷,如果激活值非常大,分布在一个很大的范围内,则低精度的float16无法很好地精确描述如此大范围的数值,带来精度损失。

MobileNet1.0 由于是2016年就提出,其结构其实非常简单, 论文里头是一个非常复古的直筒结构, 类似于VGG一样。

MobileNet V2

以上介绍了MobileNet V1,那么MobileNet V1是否有缺点呢?答案是肯定的。

  • 结构问题:

V1结构过于简单,没有复用图像特征,即没有concat/eltwise+ 等操作进行特征融合,而后续的一系列的ResNet, DenseNet等结构已经证明复用图像特征的有效性。

逐深度卷积问题:
在处理低维数据(比如逐深度的卷积)时,relu函数会造成信息的丢失。
DW 卷积由于本身的计算特性决定它自己没有改变通道数的能力,上一层给它多少通道,它就只能输出多少通道。所以如果上一层给的通道数本身很少的话,DW 也只能很委屈的在低维空间提特征,因此效果不够好。
原论文作者用了大量篇幅说明以上结论1,在此我们简单理解下(因为笔者只能”简单理解“,不得已为之)。

 

上图input为2维空间的一组m个点构成的螺旋线数据​,利用随机矩阵T映射到n维空间上并进行ReLU运算,即:

再利用随机矩阵T的逆矩阵T-1,将y映射回2维空间当中:

上图的整个过程就是对一个n维空间中的一个“数据”做ReLU运算,然后(利用T的逆矩阵T-1恢复)对比ReLU之后的结果与Input的结果相差有多大。由上图可知:

当n = 2,3时,与Input相比有很大一部分的信息已经丢失了。而当n = 15到30,还是有相当多的地方被保留了下来。

也就是说,对低维度做ReLU运算,很容易造成信息的丢失。而在高维度进行ReLU运算的话,信息的丢失则会很少。

 

V2使用了跟V1类似的深度可分离结构,不同之处也正对应着V1中逐深度卷积的缺点改进:

V2 去掉了第二个 PW 的激活函数改为线性激活。
论文作者称其为 Linear Bottleneck。原因如上所述是因为作者认为激活函数在高维空间能够有效的增加非线性,而在低维空间时则会破坏特征,不如线性的效果好。
V2 在 DW 卷积之前新加了一个 PW 卷积。
给每个 DW 之前都配备了一个 PW,专门用来升维,定义升维系数
,这样不管输入通道数
是多是少,经过第一个 PW 升维之后,DW 都是在相对的更高维 (
) 进行更好的特征提取。
Inverted residuals

 Mobilenet v2中有两种深度可分离模块,步长为1时输入输出size相等,此时使用shortcut结构。步长为2时,由于input与outputsize不符,不添加shortcut结构。

总结
MobileNetV1 模型引入的深度可分离卷积(depthwise separable convolutions);

MobileNetV2 模型引入的具有线性瓶颈的倒残差结构(the inverted residual with linear bottleneck);

 

 

 

标签:维空间,MobileNet,卷积,网络,ReLU,轻量化,V1,深度
From: https://www.cnblogs.com/Dongmy/p/18130158

相关文章

  • 读论文-基于图神经网络的会话推荐方法综述
    前言今天读的一篇文章是于2023年6月25日在《数据分析与知识发现》发表的一篇期刊论文,文章聚焦图神经网络技术,对会话推荐方法进行述评,为后续研究提供借鉴。以“SessionbasedRecommendation”、“GraphNeuralNetwork”、“会话推荐”、“图神经网络”为检索词,在“WebofScience......
  • 卷积神经网络中的 “全连接层”
    原文链接:https://blog.csdn.net/nanhuaibeian/article/details/100532038、https://cloud.tencent.com/developer/article/2299601改进:https://www.bilibili.com/read/cv28976895/    CNN中的逐点卷积:替换全连接层它利用转置卷积层来替换CNN最后的全连接层,从而可以实现......
  • 卷积神经网络-激活函数
    原文链接:https://zhuanlan.zhihu.com/p/508741909?utm_id=0、https://zhuanlan.zhihu.com/p/476373735?utm_id=0、https://blog.csdn.net/purple_love/article/details/134620930https://www.zhihu.com/question/60650016/answer/2441796198?utm_id=0卷积神经网络中的卷积和池化......
  • [转帖]迈入 Cilium+BGP 的云原生网络时代
     http://arthurchiao.art/blog/trip-stepping-into-cloud-native-networking-era-zh/ Thispostalsoprovidesan Englishversion.本文是我们的前一篇博客 Trip.com:FirstSteptowardsCloudNativeNetworking 的后续,介绍自上一篇博客以来我们在基于Cilium的......
  • Microsoft Wi-Fi Direct Virtual Adapter 是 Windows 操作系统中的一个虚拟网络适配器
    MicrosoftWi-FiDirectVirtualAdapter是Windows操作系统中的一个虚拟网络适配器,用于支持Wi-FiDirect功能。Wi-FiDirect是一种无需基础设施的连接技术,允许支持Wi-Fi的设备之间直接进行点对点连接,无需通过传统的Wi-Fi路由器或接入点。作用:直连功能: MicrosoftWi-......
  • 卷积神经网络中池化层的详细介绍
    原文链接:https://blog.csdn.net/a486259/article/details/131311587https://zhuanlan.zhihu.com/p/476242144池化层的本质是一个下采样,因为数据经过卷积之后维度越来越高,而且特征图没有多大改变,在连续多个卷积之后,会产生一个很大的参数量,不仅会大大的增加网络训练的难度,还容易造......
  • 7、yum 仓库服务与 PXE 网络装机
    1.部署yum软件仓库1.1.使用本地yum挂载umount/dev/sr0mount/dev/sr0/media/mkdir/root/yum.bakmv/etc/yum.repos.d/root/yum.bakvim/etc/yum.repos.d/test.repo[local-yum]#定义名称name=local-yum#定义使用的yumbaseurl=file:///media/#定义挂......
  • Java程序设计教程(第九版)1.3网络
    目录1.3网络网络连接局域网和广域网因特网万维网统一资源定位器1.3网络网络就是将两台或多台计算机连接在一起,以便实现信息交换简单的计算机网络中,有一台用作文件服务器的计算机,用于保存网络用户需要用到的程序和数据网络连接网络连接方式近距离:点对点连接缺点......
  • 深度学习-nlp-循环神经网络RNN--69
    目录1.概述2.RNN的模型参考:https://zhuanlan.zhihu.com/p/308449051.概述输出会反馈到输入的神经网络:循环神经网络(RecurrentNeuralNetworks,以下简称RNN),它广泛的用于自然语言处理中的语音识别,手写书别以及机器翻译等领域。在前面讲到的DNN和CNN中,训练样本的输入和输出......
  • 数据是一维数据,利用tensorflow深度学习框架,写一个带自注意力机制的卷积神经网络,并进行
    下面是一个使用TensorFlow框架的带有自注意力机制的卷积神经网络(Self-AttentionConvolutionalNeuralNetwork)的示例代码,包括数据处理、模型定义和训练过程:importtensorflowastffromtensorflow.keras.layersimportConv1D,Dense,GlobalMaxPooling1D,Concatenate#......