论文地址:Xception
github:Xception
介绍这篇论文呢,还是先回顾一下之前的Inception网络
VGG等传统的网络通过堆叠简单的33卷积实现特征提取,还有用11卷积 5*5的,但是用哪种大小的卷积是最好的并不清楚,Inception结构就把这些不同大小的卷积核都放进去,让网络自己去训练决定,也就是将一个输入同时输给这几种提取特征方式,然后做concat,这样还有一个直观的好处,可以学到不同尺度的信息,同时相对于VGG等网络来说用更少的参数和更少的计算开销可以学习到更丰富的特征表示。
Xception: Deep Learning with Depthwise Separable Convolutios简单理解

通常,在一组特征图上进行卷积需要三维的卷积核,也即卷积核需要同时学习空间上的相关性和通道间的相关性。将这两种相关性显式地分离开来,是Inception模块的思想之一:Inception模块首先使用11的卷积核将特征图的各个通道映射到一个新的空间,在这一过程中学习通道间的相关性;再通过常规的33或5*5的卷积核进行卷积,以同时学习空间上的相关性和通道间的相关性。

但此时,通道间的相关性和空间相关性仍旧没有完全分离,也即33或55的卷积核仍然是多通道输入的,那么是否可以假设它们可以被完全分离?显然,当所有33或55的卷积都作用在只有一个通道的特征图上时,通道间的相关性和空间上的相关性即达到了完全分离的效果。
上图说明:
考虑一个Inception模块的简化版本,只使用一种规格的卷积(例如3×3),并且不含平均池化。
Xception: Deep Learning with Depthwise Separable Convolutios简单理解
这个Inception模块可以转换成1×1卷积,然后在输出通道不重复的区块进行空间卷积。
Xception: Deep Learning with Depthwise Separable Convolutios简单理解
这个观察自然地提出一个问题:在分割中区块数量的效用(以及规模)?如果假设跨区域相关性和空间相关性完全分开绘制,会不会比Inception假设更合理?
一个Inception模块极端的版本就基于上述问题的假设,首先使用1×1卷积绘制跨通道相关性,然后独立的绘制每个输出通道的空间相关性。
Xception: Deep Learning with Depthwise Separable Convolutios简单理解
此时每个3*3的卷积即作用于仅包含一个通道的特征图上,作者称之为“Extream Inception”模块,这就是Xception的基本模块。
这种Inception模块的极端版本与depthwise separable convolution几乎相同,该操作早在2014年就被用于神经网络设计,在2016年被纳入TensorFlow框架后变得更为流行。

深度可分卷积,普遍称做“可分卷积”在深度学习框架中例如TensorFlow和Keras,包含深度卷积,即在输入的每个通道独立执行空间卷积,然后进行逐点卷积,即1×1卷积,将深度卷积的通道输出映射到新的通道空间
Inception模块的极端版本和深度可分卷积的两个不同有:

-操作顺序:深度可分卷积一般(例如在TensorFlow中)先进行通道的空间卷积,然后进行1×1卷积,而Inception首先进行1×1卷积。

-上个操作后是否进行非线性操作:Inception中两个操作后都使用ReLU进行非线性**,而深度可分卷积不使用。

我们认为第一个区别并不重要,因为这些操作会被堆叠起来,第二个区别在实验中对结果有所影响。
Xception: Deep Learning with Depthwise Separable Convolutios简单理解

相关文章: