MobileNet系列总结
1、概述
MobileNet系列网络是Google为了移动端和嵌入式设备设计的模型,主要是在追求准确性和运行速度之间的平衡。
从模型结构上主要对以下几点做了研究:
V1:深度可分离卷积
V2:倒置残差块 和 线性瓶颈层
V3:网络架构搜索
V1和V2都是先提出了一种理论、假说、发现,然后根据这种理论来指导模型的设计,这是有一定启发意义的。V3主要是在用NAS搜索结构,使用V2+SENet+swish的基本模块构建网络,设计思路上并没有很大的启发。
2、MobileNetV1
论文:《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》
概述:
MobileNetV1是基于深度可分离卷积而构建的模型。
深度可分离卷积是将标准卷积分解成k*k深度卷积(Depth-wise,DW)和1x1逐点卷积(Point-wise,PW)的卷积结构。深度卷积对每个输入通道都使用一个单一的卷积核,逐点卷积就将深度卷积的输出组合起来。一个标准的卷积在一步操作内做了上面2件事情,而深度可分离卷积将它们分成两步。这种分解显著的减小了模型的计算量和大小。
标准卷积 和 深度可分离卷积对比:
网络整体结构:
3、MobileNetV2
论文:《MobileNetV2: Inverted Residuals and Linear Bottlenecks》
概述:
MobileNetV2架构基于线性bottleneck的倒置残差层。该模块以一个低维的压缩特征作为输入,首先被扩展到高维,然后用一个轻量级的深度卷积过滤。特征随后用线性卷积投影回低维表示。
V2和V1结构比较:
回顾V1的网络结构,我们发现V1很像是一个直筒型的VGG网络。我们想像Resnet一样复用我们的特征,所以我们引入了shortcut结构,这样V2的block就是如下图形式:
对比resnet和V2:
可以发现,都采用了 1×1 -> 3×3 -> 1×1 的模式,以及都使用Shortcut结构。但是不同点呢:
- ResNet 先降维 (0.25倍)、卷积、再升维。
- MobileNetV2 则是 先升维 (6倍)、卷积、再降维。
刚好V2的block刚好与Resnet的block相反,作者将其命名为Inverted residuals。就是论文名中的Inverted residuals。
MobileNet V2 反向残差结构:
网络整体结构:
4、MobileNetV3
论文:《Searching for MobileNetV3》
概述:
该论文主要讲如何使用NAS搜索出适用于移动设备的轻型网络,提出了MobileNetV3-Large和MobileNetV3-Small两个模型。
基础结构:
网络结构图如下所示,主要是在点向卷积后加了一个SENet的attention模块。
激活函数:
另外用上了swish激活函数。给出了两种形式。
MobileNetV3的网络结构:
MobileNetV3定义了两个模型: MobileNetV3-Large和MobileNetV3-Small。V3-Large是针对高资源情况下的使用,相应的,V3-small就是针对低资源情况下的使用。两者都是基于之前的简单讨论的NAS。
参考:
- https://zhuanlan.zhihu.com/p/93156235
- https://zhuanlan.zhihu.com/p/70703846
- https://blog.csdn.net/weixin_42108090/article/details/103112731
- https://blog.csdn.net/Chunfengyanyulove/article/details/91358187