Xception: Deep Learning with Depthwise Separable Convolutions论文笔记

摘要:

这篇论文主要讲了如何从传统的卷积演化到深度可分离卷积,并提出了Xception架构。

一、从传统卷积到深度可分离卷积:

传统的卷积一系列卷积串行堆叠在一起,用来提取特征,这样做的好处是能让特征图不同的通道上空间关系建立联系,因为每个输出的通道都是由输入特征图上所有通道上空间信息的融合,典型的网络架构比如VGG,如下:

Xception: Deep Learning with Depthwise Separable Convolutions论文笔记_第1张图片

后来,Inception想让特征图中的通道部分解耦,即将互相独立的信息分别放入不同的特征图,这样可以降低过拟合,于是当特征图输入的时候,就使用了不同的卷积核来提取特征,输出几个相互独立的特征图,这样每个特征图提取到的特征都是不同的,且是解耦的,如下图:

Xception: Deep Learning with Depthwise Separable Convolutions论文笔记_第2张图片

上图中虽然每个分支使用了不同数量的卷积数量,但也仅仅是数量上的不同而已,其出发点是让不同的分支提取不同的特征,可以简化如下图及其等价图:

Xception: Deep Learning with Depthwise Separable Convolutions论文笔记_第3张图片

Xception: Deep Learning with Depthwise Separable Convolutions论文笔记_第4张图片

 

上面这幅图和传统的卷积在架构上仅仅是输出特征图的分支不一样,传统的是一个,而这里是三个,即Inception假定输入特征图中所有通道信息可以解耦成三部分。那么,如果这个假设更强一些,假定输入的特征图上所有的通道信息都是解耦的,,就得到了深度可分离卷积,如下图:

Xception: Deep Learning with Depthwise Separable Convolutions论文笔记_第5张图片

上面就是深度可分离卷积,即先在每个通道上进行3\times3卷积 操作(传统卷积是同时做,然后加起来得到一个通道),得到一个通道,然后用1\times1卷积将这些通道进行融合,得到输出特征图,这篇论文是从通道信息解耦的角度写的,并没有推导其计算效率及参数量,事实上这种深度可分离卷积的参数量仅为传统卷积的\frac{1}{9},(以3\times3卷积为例),现在多用于计算能力不强的嵌入式设备,因为计算速度非常快,比如MobileNet和ShuffleNet等,但是,效果没有传统卷积那么好,论文里面给出的差距都不太,我在实际用的时候,效果相差还是蛮大的。

二、Xception

Xception就是使用深度可分离卷积和跨层连接堆叠起来的一个网络,总共36个卷积层,分为14个模块,除了第一个模块和最后一个模块,其他模块都带有跨层连接。其参数量和InceptionV3一样,我猜是为了和InceptionV3对比性能,即参数量一样,但是效果好,证明效果的提升不是来自于模型参数量的增加,而是更合理的设计,结构图如下:

Xception: Deep Learning with Depthwise Separable Convolutions论文笔记_第6张图片

 三、实验结果

Xception: Deep Learning with Depthwise Separable Convolutions论文笔记_第7张图片

Xception: Deep Learning with Depthwise Separable Convolutions论文笔记_第8张图片

 

Xception: Deep Learning with Depthwise Separable Convolutions论文笔记_第9张图片

你可能感兴趣的:(目标分类)