MobileNet
视频地址: 霹雳吧啦Wz.7.1 MobileNet网络详解
1.模型概述:
- 专注于移动端或者嵌入式设备中的轻量级CNN网络
- 比传统CNN准确率小幅降低,大大减少模型参数与运算量
2.网络亮点:
- Depthwise Convolution(减少参数和运算量)
- 增加超参数α(控制卷积层、核数量)、β(控制输入图像尺寸),这两个超参数是人为设定的
3.传统卷积与MobileNet-V1(深度可分离卷积)
- 传统卷积
特点:
输入通道=3=卷积核通道数,卷积核个数=4=输出通道数
每个卷积核都是3通道,与特征图的每个通道进行卷积
Depthwise Separable卷积由两部分组成:
-
DW卷积(depthwise conv)
特点:
每个卷积核只有一个通道,只负责输入特征图一个通道的卷积
Depthwise convolution和标准卷积不同,对于标准卷积其卷积核是用在所有的输入通道上(input channels),而depthwise convolution针对每个输入通道采用不同的卷积核,就是说一个卷积核对应一个输入通道,所以说depthwise convolution是depth级别的操作
- PW卷积(pointwise conv)
在传统的卷积上,卷积核kernel_size=1x1
4.对比普通CNN和depthwise separable卷积的计算量:
输入特征:DFxDFxM
输出特征:DFxDFxN
对于标准卷积DKxDK计算量
- DF x DF x M x N x DK x DK
对于深度可分离卷积计算量:
- 对于depthwise convolution:DF x DF x M x DK x DK
- 对于pointwise convolution: DF x DF x M x N
采用3x3卷积核的话,depthwise separable convolution相较标准卷积可以降低大约9倍的计算量
5.MobileNet网络架构及超参数α、β
s2:stride=2
3x3x3x32:kernel_size=3,input_channel=3,output_channel=32
基本结构
两个超参数α(Width Multiplier)、β(Resolution Multiplier):
-
α代表的是卷积核个数的倍率因子,控制卷积核个数,即按比例减少通道数,输入与输出通道数变成αM和αN
对于深度可分离卷积,其计算量变为
-
β代表的是分辨率的倍率因子,输入不同尺寸的图像会有不同的准确率
比如原来输入特征图是224x224,可以减少为192x192,计算量变为
6.MobileNet-V2
亮点:
-
Inverted Residual(倒残差结构)
-
Linear Bottlenecks
倒残差结构
residual block
两头大中间小,使用1x1卷积核降维,减少通道数,然后用3x3卷积,再使用1x1卷积升维
使用ReLu激活函数
倒残差结构
两头小中间大,先用1x1卷积升维,再用3x3DW卷积,最后用1x1卷积降维
使用ReLu6激活函数
Linear Bottlenecks
针对倒残差结构中最后1×1卷积层,使用了线性激活函数,而不是relu激活函数。因为relu激活函数对于低维度特征信息会造成大量损失。对于维度较低的,乘以矩阵后经relu再还原效果差,维度较高的相对好。倒残差结构是两头小中间大。
参考 详解MobileNetV2
什么时候有捷径分支?
当stride=1且输入特征矩阵与输出特征矩阵shape相同时
网络结构
1.s代表的是步距,有的bottleneck需要重复两次,两次中只有第一次s是为2的,这个根据Input的特征图大小也能判断出来
2.t代表是扩展因子。这个在上图中的表格也可以看到
3.最后一行k代表的就是分类类别个数,
参考:
[2] 小小将.CNN模型之MobileNet[EB/OL].[2023.11.9].https://www.zhihu.com/people/xiaohuzc/posts.
2.t代表是扩展因子。这个在上图中的表格也可以看到
3.最后一行k代表的就是分类类别个数,
参考:
[2] 小小将.CNN模型之MobileNet[EB/OL].[2023.11.9].https://www.zhihu.com/people/xiaohuzc/posts.