轻量级深度学习网络(五):详解轻量级网络Xception

 一、简介

Xception并不是真正意义上的轻量化模型,只是其借鉴depth-wise convolution,而depth-wise convolution又是上述几个轻量化模型的关键点,所以在此一并介绍,其思想非常值得借鉴。

Xception是Google提出的,arXiv 的V1 于2016年10月公开。论文标题:
《Xception: Deep Learning with Depthwise Separable Convolutions 》

命名
Xception是基于Inception-V3的,而X表示Extreme,为什么是Extreme呢?因为Xception做了一个加强的假设,这个假设就是:
we make the following hypothesis: that the mapping of cross-channels correlations and spatial correlations in the feature maps of convolutional neural networks can be entirely decoupled

二、创新点

借鉴(非采用)depth-wise convolution 改进Inception V3

既然是改进了Inception v3,那就得提一提关于inception的一下假设(思想)了。
“the fundamental hypothesis behind Inception is that cross-channel correlations and spatial correlations are sufficiently decoupled that it is preferable not to map them jointly”
简单理解就是说,卷积的时候要将通道的卷积与空间的卷积进行分离,这样会比较好。(没有理论证明,只有实验证明,就当它是定理,接受就好了,现在大多数神经网络的论文都这样。

既然是在Inception V3上进行改进的,那么Xception是如何一步一步的从Inception V3演变而来。

下图1 是Inception module,图2是作者简化了的 inception module(就是只保留1*1的那条“路”,如果带着avg pool,后面怎么进一步假设嘛~~~)

这里写图片描述


 

这里写图片描述

假设出一个简化版inception module之后,再进一步假设,把第一部分的3个1*1卷积核统一起来,变成一个1*1的,后面的3个3*3的分别“负责”一部分通道,如图3所示; 最后提出“extreme” version of an Inception ,module Xception登场,, 先用1*1卷积核对各通道之间(cross-channel)进行卷积,如图4所示,
 

这里写图片描述

这里写图片描述

作者说了,这种卷积方式和depth-wise convolution 几乎一样。Depth-wise convolution 较早用于网络设计是来自:Rigid-Motion Scatteringfor Image Classification,但是具体是哪一年提出,不得而知;至少2012年就有相关研究,再比如说AlexNet,由于内存原因,AlexNet分成两组卷积 ;想深入了解Depth-wise convolution的可以查阅本论文2.Prior work,里面有详细介绍。

Xception是借鉴Rigid-Motion Scatteringfor Image Classification 的Depth-wise convolution,是因为Xception与原版的Depth-wise convolution有两个不同之处

第一个:原版Depth-wise convolution,先逐通道卷积,再1*1卷积; 而Xception是反过来,先1*1卷积,再逐通道卷积;
第二个:原版Depth-wise convolution的两个卷积之间是不带激活函数的,而Xception在经过1*1卷积之后会带上一个Relu的非线性激活函数;

这里写图片描述

Xception 结构如上图所示,共计36层分为Entry flow; Middle flow; Exit flow;
Entry flow 包含 8个conv;Middle flow 包含 3*8 =24个conv;Exit flow包含4个conv,所以Xception共计36层

文中Xception实验部分是非常详细的,实现细节可参见论文。

这里写图片描述

三、Xception小结

Xception是基于Inception-V3,并结合了depth-wise convolution,这样做的好处是提高网络效率,以及在同等参数量的情况下,在大规模数据集上,效果要优于Inception-V3。这也提供了另外一种“轻量化”的思路:在硬件资源给定的情况下,尽可能的增加网络效率和性能,也可以理解为充分利用硬件资源。

猜你喜欢

转载自blog.csdn.net/chenyuping333/article/details/81624573
今日推荐