Xception
Last updated
Last updated
Xception: Deep Learning with Depthwise Separable Convolutions
我们将卷积神经网络中的Inception模块解释为常规卷积和深度可分卷积操作之间的中间步骤(深度可分离卷积后跟逐点卷积)。在这种情况下,深度分离卷积可以理解为具有最大数量塔的Inception模块。这一观察结果提出了一种新颖的深度卷积神经网络体系结构,其灵感来自于Inception,其中Inception模块已被深度可分离卷积所取代。我们展示了这个被称为Xception的体系结构,在ImageNet数据集(设计版本为V3)上略微优于Inception V3,并且在包含3.5亿个图像和17,000个类的更大图像分类数据集上显着优于Inception V3。由于Inception体系结构与Inception V3具有相同数量的参数,因此性能增益不是增加容量,而是更有效地使用模型参数。
卷积层试图学习3D空间中的滤波器,具有2个空间维度(宽度和高度)和通道维度; 因此,单个卷积核的任务是同时映射跨通道相关和空间相关。Inception模块背后的这个想法是通过将其明确地分解为一系列独立查看跨通道相关性和空间相关性的操作来使这个过程更容易和更有效。更准确地说,典型的Inception模块首先通过一组1x1卷积来查看跨通道相关性,将输入数据映射到3或4个小于原始输入空间的独立空间中,然后通过规则的3×3或5×5卷积将所有相关性映射到这些较小的3D空间中,如图1。Inception背后的基本假设是跨渠道相关性和空间相关性充分解耦,最好不要联合映射它们。
做一个比初始假设强得多的假设,并假设跨通道相关性和空间相关性可以完全分开,这合理吗?基于这个更强的假设,Inception模块的“极端”版本将首先使用1x1卷积来映射跨通道相关,然后将分别映射每个输出通道的空间相关性。 如图4所示。
在深度学习框架(例如TensorFlow和Keras)中通常称为“可分离卷积”的深度可分卷积包括在深度卷积中,即。 在输入的每个信道上独立地执行空间卷积,然后是pointwise卷积,即 1x1卷积,将通过深度卷积输出的通道投影到新的通道空间。这不能与空间可分离的卷积混淆,后者在图像处理社区中通常也称为“可分离卷积”。
和Inception模块的“极端”版本和深度可分的卷积之间的两个细微差别是:
操作的顺序:通常实现的深度可分对比(例如在TensorFlow中)执行第一个通道空间卷积,然后执行1x1卷积,而Inception首先执行1x1卷积。
第一次操作后是否存在非线性。 在Inception中,两个操作之后都是ReLU非线性,然而,深度可分离的卷积通常在没有非线性的情况下实现。
在进行了这些观察之后,我们建议通过用深度可分离的卷积替换初始模块,即通过构建最佳深度可分离卷积的模型,可以改进Inception体系。
我们提出了一种完全基于深度可分离卷积层的卷积神经网络体系结构。实际上,我们提出以下假设:卷积神经网络的特征映射中的跨通道相关性和空间相关性的映射可以完全解耦。 因为这个假设是Inception体系结构背后假设的一个更强大的版本,所以我们将我们提出的Xception命名为“Extreme Inception”。
Xception体系结构具有36个卷积层,形成网络的特征提取基础。 在我们的实验评估中,我们将分别研究图像分类,因此我们的卷积基数将跟随逻辑回归层。可选地,可以在逻辑回归层之前插入完全连接的层,这在实验评估部分中进行了探索(特别参见图7和8)。36个卷积层被构造成14个模块,除了第一个和最后一个模块之外,它们都具有线性残差连接。