美文网首页
MobileNet系列

MobileNet系列

作者: cheerss | 来源:发表于2018-09-09 12:14 被阅读0次

MobileNet V1

思想

思想主要来源于Xception,Xception也是谷歌的作品,主要就是引入了separable convolution,mobilenet整个网络就是用了这种结构。当然,把普通的卷积分为depth-wise的卷积核point-wise的卷积可以大大的减少计算量,理论分析这里就不说了,论文里说的很清楚,网上也有不少分析的文章。直接上MobileNet的结构吧。

结构

在上图中,Conv dw代表depth-wise卷积,不加dw代表point-wise卷积,实际上也就是kernel为1的普通卷积。

实验结果

Seperable Conv的功效

MobileNet的结构上文已经说清楚了,这里的对比实验,Conv MobileNet将MobileNet中的dw,pw卷积换成了普通卷积,可以看出,MobileNet在大大减少了参数的基础上,精度损失只有1.1%

窄vs浅

从这里可以看出,一定程度上,窄比浅更好一点,可以很大的减少参数量,精度还高

不同宽度的MobileNet

不同宽度的MobileNet下的实验,其中1.0是标准的,其余的宽度分别是1.0版本的0.75,0.5……参数量和精度的变化都在表格中

不同resolution图片对于精度的影响
这里是计算量和精度的一个tradeoff
计算量、模型参数和精确度的关系
基本是线性,但是有一个阶跃的地方 随着参数量增加,精度增加越来越慢
和其他网络的比较
可以看出,对于分类,其他大网络的冗余确实太高了 同样,可以看出大网络有不少冗余。面部属性的那个实验没怎么看出来门道

结论

综合MobileNet的实验,给人的感觉:

  1. 宁愿变窄,不要变浅
  2. 对于MobileNet的网络,重要度排序:深度 >> 图片尺寸 ≈ 宽度。所以,想要减小计算量,首先要想的是减少宽度和图片大小,迫不得已再是网络深度。当然,这件事情要辩证看,也许MobileNet的实验只能说明某种程度上是这样,如果网络深度冗余太高,也许裁掉一些也还OK。

MobileNet V2

思想

MobileNet V2继承了V1的思想,卷积依然使用的是separable的卷积。但是在此基础上文章又提出了如下观点:

  1. 我们模型想要学习的高维流形是可以嵌入到低维流形中的
  2. 把高纬度的流形变成低维流形很简单,只需要减少filter的channel数量就可以了,实验证明一定程度上减小filter数量不会使模型精度降低,但是减多了就不行了,原因见下一条。
  3. 神经网络会使用激活函数,比如ReLU,但是ReLU激活函数是会丢失一些信息的,即所有负数都变成了0了,这个过程就丢失了信息,所以让ReLU在高维度流形中进行是有必要的,这样,某些维度丢失掉的信息可能可以通过其他维度弥补回来,实验也证明,ReLU在低维情况下丢失的信息比在高维时要多,比如下面这张图,显然,维度越高,恢复之后越接近原图。
  4. 为了利用可能丢失的信息,还可以利用residual的方式,来减少信息的丢失。
  1. 通过以上三点,我们可以得出以下结论:设计神经网络时层与层之间的filter数量可以减少以降低维度,这样可以有效减少计算量,但是根据上述观点1可知,这样可以玩。但是为了防止激活函数丢失信息,在有激活函数的地方,维度必须高,保证信息丢失少,在经过激活函数后,再把维度降下来。因此。。。

结构

MobileNet中的基本block如下:

一个block包含以上三层,可以看出,前两层是有激活函数ReLU的,因为前两层通过卷积把filter的数量变成了原来的t倍,这样即使有ReLU,信息丢失也不多,但是在最后一层,仅仅是一个线性层,因为此时维度又被降下来了,会使信息丢失。其中用到的卷积也都是separable的卷积。

MobileNet V2的整体结构如下:

这里提到的bottleneck就是上面那张图的三层结构。

实验结果

分类
可以看出,MobileNetV2和shuffleNet的效果基本差不多,感觉做实验强行超越1 个点 基本ShuffleNet和MobileNetV2差不多,NasNet也还行
语义分割
想象之中,感觉YOLOv2有点凉,不过YOLOv2是16年的

相关文章

  • MobileNet系列

    MobileNet V1 思想 思想主要来源于Xception,Xception也是谷歌的作品,主要就是引入了se...

  • MobileNet

    【深度学习MobileNet】——深刻解读MobileNet网络结构MobileNet V1论文阅读和代码解析 t...

  • 适合移动端的轻量级网络

    MobileNet 【MobileNet v1】https://arxiv.org/pdf/1704.04861....

  • 网络学习系列(九)mobilenet

    mobilenet v1 要解决的问题: 目前大多数的网络虽然能实现比较高的性能,但网络过于庞大,所以论文要解决的...

  • 轻量级网络:MobileNet系列

    阅读论文时常有种感受,可能作者在原有网络上稍微优化了网络结构或损失函数,然后发现检测精度有所上升便撰写了一篇论文。...

  • 2018-01-22

    昨天还在mobileNet的基础上加了残差网络,今天就看到谷歌出了个mobileNet2……

  • 2020 深度学习 mobileNet

    MobileNet 模型 MobileNet 模型是 google 在 2017 年针对手机或者嵌入式提出轻量级模...

  • Classification基础实验系列四——MobileNet

    一、概述   上一篇博客记录了MobileNet v1的学习过程,了解到该网络主要是由深度可分离卷积(depthw...

  • Classification基础实验系列三——MobileNet

    一、概述   本文记录MobileNet论文的阅读笔记以及代码实现。其实本来是想直接看MobileNet v2的,...

  • mobileNet

    MobileNet V1 1、为什么要设计mobilenet? 为移动端和嵌入式端深度学习应用设计的网络,使得在c...

网友评论

      本文标题:MobileNet系列

      本文链接:https://www.haomeiwen.com/subject/mnlnwftx.html