深度可分离卷积(Depthwise Seperable Convolution)与Mobilenet

一、标准卷积流程:

一次性完成,输入为DF \times DF \times M, 过滤器为DK \times DK \times M(个数为N),输出为DG \times DG \times N

计算量为:DK \times DK \times M \times DG \times DG \times N

 

深度可分离卷积(Depthwise Seperable Convolution)与Mobilenet_第1张图片 图1.1 卷积示意
深度可分离卷积(Depthwise Seperable Convolution)与Mobilenet_第2张图片 图1.2 计算量

 


 

 

二、深度可分离卷积(Depthwise Seperable Convolution)流程:

分两步完成,分别为Depthwise Conv 和 Pointwise Conv

1. Depthwise Conv:filtering stage

    输入为DF \times DF \times M, 过滤器为DK \times DK \times 1(个数为M),输出为DG \times DG \times M

    计算量为: DK^{2} \times 1 \times DG^{2} \times M

深度可分离卷积(Depthwise Seperable Convolution)与Mobilenet_第3张图片 图2.1 Depthwise Conv

 

 

2. Pointwise Conv:combination stage

               输入为DG \times DG \times M, 过滤器为1 \times 1\times M(个数为N),输出为DG \times DG \times N

               计算量为:1\times 1 \times M \times DG \times DG \times N

深度可分离卷积(Depthwise Seperable Convolution)与Mobilenet_第4张图片 图2.2 Pointwise Conv

 

 

总计算量为:DK^{2} \times DG^{2} \times M + M\times DG^{2}\times N

深度可分离卷积(Depthwise Seperable Convolution)与Mobilenet_第5张图片 图2.3 计算量

 


 

 

三、Depthwise Seperable Conv  和 Std.Conv 对比

1. 计算量对比

\frac{Depthwise Seperable Conv}{Std.Conv} = \frac{DK^{2} \times DG^{2} \times M + M \times DG^{2} \times N}{DK^{2} \times M \times DG^{2} \times N} = \frac{1}{N} + \frac{1}{DK^{2}}

深度可分离卷积(Depthwise Seperable Convolution)与Mobilenet_第6张图片 图3.1 计算量对比

 

 

2. Depthwise Seperable Conv 比Std.Conv 的参数、计算时间少;同时对同一个模型架构,精度略低一点;

3. Depthwise Seperable Conv 分两步完成卷积: Depthwise Conv 和 Pointwise Conv


 

 

四、两个参数再次缩小模型

相对于基准模型,mobilenet可以提供两个参数:width multiplier 和 resolution multiplier。

1. width multiplier(宽度乘子):更薄的模型,按比例减少通道数,即深度,该参数记为  ,其取值范围为(0,1]。那么输入与输出通道数将变成\alpha M 和\alpha N,计算量变为:DK^{2} \times DG^{2} \times \alpha M + \alpha M\times DG^{2}\times \alpha N; 结果是参数量减少,计算量也减少。

2. resolution multiplier(分辨率乘子):分辨率更低的模型,按比例降低图的大小,记为 \rho;例如输入特征图是224x224,可以减少为192x192;计算量为:DK^{2} \times (\rho DG)^{2} \times \alpha M + \alpha M\times (\rho DG)^{2}\times \alpha N;结果是参数量不变,计算量减少。

 

 

五、Mobilenet

采用深度可分离卷积,主要目的是降低模型参数量和计算量。

1. MobilenetV1特点:

    (1)采用深度可分离卷积,并且可调宽度乘子\alpha和分辨率乘子\rho

    (2)采用Batch Normalization

    (3)采用Relu6激活函数

 

2. MobilenetV1的问题:

    (1)没有利用残差块

    (2)Relu6激活函数的存在,导致效果不好

 

 

3. MobilenetV2特点:

   (1)增加Inverted residuals:通常的residuals block是先1*1的Conv layer,减少通道数下来,再3*3 Conv layer,最后经过一个1*1 的Conv layer,将通道数再“扩张”回去。即先“压缩”,最后“扩张”回去。

           而 inverted residuals就是 先“扩张”,最后“压缩”,Depth-wise convolution之前多了一个1*1的“扩张”层,目的是为了提升通道数,获得更多特征;

    (2)Linear bottlenecks:为了避免Relu对特征的破坏,在residual block的Eltwise sum之前的那个 1*1 Conv 不再采用Relu,而采用Linear,目的是防止Relu破坏特征。

 

(完)

 

参考:https://www.youtube.com/watch?v=T7o3xvJLuHk&t=639s

你可能感兴趣的:(卷积)