MobileNet
MobileNet
MobileNets: V1:《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 》2017
MobileNet V2:《MobileNetV2:Inverted Residuals and Linear Bottlenecks》
MobileNet V3:《searching For MobileNet V3》
MobileNet V3
2016年6月,谷歌提出了MobileNetV1,由于各种原因当时没有挂上arxiv,一直到2017年4月才提交。好巧不巧,谷歌的另一团队,同时提出了Xception。所有才有了两个结构都是基于深度可分离卷积的相似争论
谷歌在2019年5月份推出了最新的MobileNetV3
https://zhuanlan.zhihu.com/p/70703846
摘要
有更小的体积,更少的计算量,更高的精度。在轻量级神经网络中拥有极大的优势。
创新点
MobileNet V1
- MobileNetV1就是把VGG中的标准卷积层换成深度可分离卷积depthwise separable convolution就可以了。
- 深度可分离卷积 = 深度卷积+逐点卷积
- 引入ReLU6替代ReLU,在大于6时候取6。ReLU6作为非线性激活函数,在低精度计算下具有更强的鲁棒性。
MobileNet V2
- 有人在实际使用的时候, 发现深度卷积部分的卷积核比较容易训废掉:训完之后发现深度卷积训出来的卷积核有不少是空的。作者认为这是ReLU这个激活函数的锅。
- 虽然V2的层数比V1的要多很多,但是FLOPs,参数以及CPU耗时都是比V1要好的。但是实验发现不匝地
- 把ReLU变成线性激活函数,把最后的那个ReLU6换成Linear。
- 提出Expansion layer,在深度卷积之前先用逐点卷积升通道纬度:深度卷积本身没有改变通道的能力,只能在低维度上工作,这样效果并不会很好,所以在DW深度卷积之前使用PW1*1卷积进行升维,再在一个更高维的空间中进行卷积操作来提取特征
- 学resnet加入shortcut
- resnet的bottleneck结构是先降维 (0.25倍)、卷积、再升维。MobileNetV2 则是 先升维 (6倍)、卷积、再降维。作者将其命名为Inverted residuals
MobileNet V3
-
用神经结构搜索NAS,不看了
-
0.网络的架构基于NAS实现的MnasNet(效果比MobileNetV2好)
1.引入MobileNetV1的深度可分离卷积
2.引入MobileNetV2的具有线性瓶颈的倒残差结构
3.引入基于squeeze and excitation结构的轻量级注意力模型(SE)
4.使用了一种新的激活函数h-swish(x)
5.网络结构搜索中,结合两种技术:资源受限的NAS(platform-aware NAS)与NetAdapt
6.修改了MobileNetV2网络端部最后阶段
创新点讲解
深度可分离卷积
- 可分离卷积主要有两种类型:空间可分离卷积和深度可分离卷积。空间可分离就是将一个大的卷积核变成两个小的卷积核,比如将一个3×3的核分成一个3×1和一个1×3的核
深度卷积
- 标准卷积:一个卷积核对w*h*c每个c做卷积再相加,一个核生成一个w*h的特征图,n个核生成n个通道的特征
- 深度卷积:c个卷积核对w*h*c做卷积,第i个对第i个通道做卷积,一一对应,这样最后还是w*h*c,输入通道是多少个,卷积核就有几个,输出通道还是多少个
逐点卷积
- 通道数太少,特征图的维度太少,不能获取到足够的有效信息,所以需要对特征图升维。逐点卷积就是1×1卷积
- 在深度卷积的过程中,我们得到了8×8×3的输出特征图,我们用256个1×1×3的卷积核对输入特征图进行卷积操作,输出的特征图和标准的卷积操作一样都是8×8×256了。
ReLU6
作者认为ReLU6作为非线性激活函数,在低精度计算下具有更强的鲁棒性。
网络架构
MobileNet V1
MobileNet V2
MobileNet V3
网络架构
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 This is a 部落格 of outbreak_sen!







