Xception网络——深度可分离卷积

论文:Xception: Deep Learning with Depthwise Separable Convolutions
论文链接:https://arxiv.org/abs/1610.02357

算法详解:

1.本质:

Xception是Google针对Inception_v3提出的一种改进,采用深度可分离卷积(depthwise separable convolution)替换Inception_v3中的卷积操作。

2.Inception_v3:

Inception_v3网络结构如下图所示,其算法核心是:特征的提取和传递可以通过1x1卷积,3x3卷积,5x5卷积,pooling等,到底哪种才是最好的提取特征方式呢?Inception结构将这个疑问留给网络自己训练,将一个输入同时输给这几种提取特征方式,然后做concat。Inception_v3和 Inception _ v1对比主要是将5x5卷积换成两个3x3卷积层的叠加。
Xception网络——深度可分离卷积_第1张图片
对图1简化就得到了下面的结构:
Xception网络——深度可分离卷积_第2张图片
再将图2延伸,就得到图3。先统一对输入做1x1的卷积,再将1x1卷积结果中的一部分作为各自的输入.
Xception网络——深度可分离卷积_第3张图片
最后3x3卷积数目与1x1卷积一致时,即可得到图4.

3.Xception:

Xception主要采用depthwise separable convolution,其原理如下:在卷积过程中,利用M个卷积核先对M个特征图进行卷积,不求和,最后再利用N个1x1卷积对生成的M个结果进行正常卷积,求和,生成N个结果。如下图:
Xception网络——深度可分离卷积_第4张图片
上图的Xception与图4的区别在于:

  • 顺序不一致:depthwise separable convolution先进行一个channel-wise的spatial convolution,然后是1x1的卷积。而在图4中是先进行1x1的卷积,再进行channel-wise的spatial convolution,最后concat
  • 在图4中,每个操作后都有一个ReLU的非线性激活,但是在depthwise separable convolution中没有

Xception网络——深度可分离卷积_第5张图片
图5是Xception的结构图。其中sparsableConv就是depthwise separable convolution。另外,每个小块的连接采用的是residule connection(图中的加号),而不是原Inception中的concat

4.实验结果:

Table1表示几种网络结构在ImageNet上的对比:
Xception网络——深度可分离卷积_第6张图片
5.总结:

Xception作为Inception v3的改进,主要是在Inception v3的基础上引入了depthwise separable convolution,在基本不增加网络复杂度的前提下提高了模型的效果。

你可能感兴趣的:(CV)