深度可分离网络--》depthwise separable convolution

前言:这里只是对比一下深度可分离网络和标准网络的区别。

传统的标准卷积,这是一步完成的。



深度可分离网络--》depthwise separable convolution_第1张图片

                           D_{k}*D_{k}*M                                 D_{f}*D_{f}*{\color{Red} M*N}                  D{}'_{g}*D{}'_{g}*N                     

图一(左)代表宽度和高度为D_{k},通道数为M的特征图,通过N个宽度和高度为D_{f}的卷积核进行特征提取,这里的卷积核的通道都为M,最后得到D{}'_{g}*D{}'_{g}*N的特征图。

这里生成的D{}'_{g}*D{}'_{g}*M*N要把通道为M的特征图进行合并,既每一个D{}'_{g}*D{}'_{g}*M最后合并为一个D{}'_{g}*D{}'_{g}*1的特征图,所以最后得到的是D{}'_{g}*D{}'_{g}*N

深度可分离网络--》depthwise separable convolution_第2张图片

                                                              D{}'_{g}*D{}'_{g}*M                                         D_{g}*D_{g}*1

参数计算:D_{k}*D_{k}*M*N*D_{f}*D_{f}



深度可分离卷积:这是分两步计算的

传统上是直接使用NM通道的卷积核进行特征提取,再进行组合,这里可以假设每个M通道的卷积核提取一种特征。

深度可分离是就使用一个M通道的卷积核进行卷积,得到M通道的特征图,再使用N个1*1的M维卷积核进行特征组合,相当于对一种卷积核卷积得到的特征进行N种不同的组合,得到N个特征的表达。(这里看似会大大降低精确度,其实本来传统上的N个M维卷积核也是随机生成的数字进行卷积计算,所以得到的特征到底和一个卷积核卷积计算的特征的N种不同组合谁更好,真的不好说,但是实验结果是差的不多)。可是参数的数量减少了很多。

深度可分离卷积有两步计算:

  1. 使用一个M维的卷积核进行卷积
  2. 进行组合
深度可分离网络--》depthwise separable convolution_第3张图片 使用一个M维的卷积核进行卷积

                                    D_{k}*D_{k}*M                                 D_{f}*D_{f}*{\color{Red} M*1}                  D{}'_{g}*D{}'_{g}*{\color{Red} M}                      

 

深度可分离网络--》depthwise separable convolution_第4张图片

                                                               D{}'_{g}*D{}'_{g}*{\color{Red} M}           1*1*M*N          D_{g}*D_{g}*N

参数计算:D_{k}*D_{k}*M*D_{f}*D_{f} + D_{f}*D_{f}*M*N


对比:\frac{D_{k}*D_{k}*M*D_{f}*D_{f} + D_{f}*D_{f}*M*N} {D_{k}*D_{k}*M*N*D_{f}*D_{f}} = \frac{1}{N} + \frac{1}{D_{k}^{2}}

D_{k} = 3时,大约参数量节省了8~9倍。

第一种:N个具有M个channels进行组合,得到N个特征

第二种:一个特征进行N种线性组合,得到N个特征


以下是网络种的结构图

深度可分离网络--》depthwise separable convolution_第5张图片

你可能感兴趣的:(物体检测,深度可分离网络,depthwise,separable,network,MobileNetV1)