翻译Xception:Deep Learning with Depthwise Separable Convolutions

Xception:Deep Learning with Depthwise Separable Convolutions

原始论文:CVPR 2017

Abstract

我们将卷积神经网络中的Inception模块解释为介于常规卷积和深度可分离卷积运算(深度卷积接点卷积)之间的中间步骤。在这种情况下,一个深度可分离卷积可以理解为一个具有最大数量塔的Inception模块。基于这一观察,我们提出了一种新颖的深度卷积神经网络架构,其灵感来自于Inception, Inception模块被深度可分卷积所取代。我们展示了这个被称为Xception的架构,它在ImageNet数据集上略微优于Inception V3 (Inception V3是为ImageNet数据集设计的),并且在一个包含3.5亿张图像和1.7万个类的更大的图像分类数据集上显著优于Inception V3。由于Xception架构与Inception V3具有相同数量的参数,所以性能的提高并不是由于容量的增加,而是由于更有效地使用了模型参数。

1、Introduction

近年来,卷积神经网络已经成为计算机视觉领域的主流算法,开发卷积神经网络的设计方法一直是一个备受关注的课题。卷积神经网络的历史是以LeNet-style模型的设计开始的[10],在这些模型中通过简单的堆积卷积来进行特征提取,并用最大池化操作来进行空间下采样。在2012年,这些想法被提炼为AlexNet架构[9],其中卷积运算在最大池操作之间重复多次,允许网络在每个空间尺度上学习更丰富的特征。接下来的趋势是使这种类型的网络越来越深,主要是由每年的ILSVRC竞赛驱动;首先是Zeiler和Fergus在2013年提出的[25],然后是2014年的VGG架构[18]。
在此节点上,一种新的网络架构出现了,Inception网络,由Szegedy等人在2014年[20]引入的GoogLeNet (Inception V1),后来精炼为InceptionV2[7]、InceptionV3[21],还有最近的Inception-ResNet[19]。Inception本身的灵感来自于早期的Network-in-Network架构[11]。自首次引入以来,Inception一直是ImageNet数据集[14]上性能最好的模型家族之一,同时在谷歌上内部使用的数据集上性能也很好,特别是JFT[5]。
Inception-style模型的基本构建块是Inception模块,它有几个不同的版本。在图1展示了Inception模块的规范形式,正如在Inception V3架构中所看到的那样。

图1

Inception模型可以理解为是这些模块的堆叠,这与早期的VGG类型的网络不同,VGG类型的网络是由简单的卷积层堆叠而成的。
虽然Inception模块在概念上类似于卷积(它们是卷积特征提取器),但从经验上看,它们似乎能够用更少的参数学习更丰富的表示。它们是如何工作的,与普通的卷积有什么不同?Inception之后的设计策略是什么?

1.1 The Inception hypothesis

卷积层尝试在具有2个空间维度(宽度和高度)和一个通道维度的3维空间中学习滤波器;因此,单个卷积核映射同时考虑跨通道相关性和空间相关性。
Inception模块背后的想法是通过显式地将其分解成一系列独立查看跨通道相关性和空间相关性的操作,使这个过程更容易和更有效。准确的说,典型的Inception模块首先通过1x1的卷积处理通道相关性,将输入数据映射到3或4个比原始输入空间小的独立空间中,然后通过常规的3x3或5x5卷积映射到这些更小的3D空间。这在图1展示了。实际上,Inception背后的基本假设是,跨通道相关性和空间相关性已充分解耦,因此最好不要联合映射它们。
考虑Inception模块的一个简化版本,只使用一种尺寸的卷积(如3x3),并且不包含平均池化塔(如图2)
在这里插入图片描述
这种Inception可以被重新表述为一个大的1x1卷积接着许多空间卷积,这些空间卷积在输出通道上的不重叠部分分别进行卷积操作(如图3)。
在这里插入图片描述
这种观察很自然地会想到一些问题:分区中的段数(及其大小)的影响是什么?是否可以进一步假设通道相关性和空间相关性可以完全独立地映射?

1.2 The continuum between convolutions and separable convolutions

基于这个进一步的假设,存在一个Inception模块的极端版本,首先使用一个1x1卷积来映射跨通道的相关性,然后将分别映射每个输出通道的空间相关性。这在图4展示了
在这里插入图片描述
我们注意到,Inception模块的这种极端形式几乎与深度可分离卷积相同,这种操作早在2014年[15]就已经被用于神经网络设计中,并且自从2016年它被包含在TensorFlow框架[1]中之后变得更加流行。
深度可分离卷积,在诸如TensorFlow和Keras等深度学习框架中通常称为“可分离卷积”,由深度卷积即在每个输入通道上独立执行的空间卷积,然后是逐点卷积,即1x1卷积,将深度卷积输出的通道投射到新的通道空间。不要将它与空间可分卷积混淆,在图像处理领域中也通常称为“可分卷积”。
Inception模块的极端版本和深度可分离卷积间两个极小的区别是:
1、操作顺序:通常实现的深度可分卷积(例如在TensorFlow中)首先执行沿信道的空间卷积,然后执行1x1卷积,而Inception首先执行1x1卷积。
2、第一次操作后非线性的存在与否。在Inception中,1x1卷积和空间卷积后面都接着ReLU非线性,然而深度可分卷积通常在空间卷积后没有ReLU非线性激活,只在最后的1x1卷积后有ReLU非线性。

我们认为第一个区别是不重要的,主要是因为这些操作是用于堆叠的设置。第二个差异可能很重要,我们将在实验部分对此进行研究(详见图10)。

我们还注意到,在普通Inception模块和深度可分卷积之间的Inception模块的其他中间公式也有可能:实际上,在常规卷积与深度可分离卷积之间有一个离散谱,该离散谱由独立信道空间段的数量参数化,用于空间卷积。在这个频谱的一个极端,一个常规卷积(之前是一个1x1卷积)对应于单段情况;深度可分卷积对应于另一个极端,即每个信道有一个段;Inception模块位于两者之间,将数百个通道分成3或4个段。这些中间模块的属性似乎还没有被研究过。
经过这些观察,我们想到或许可以用深度可分离卷积替换Inception模块来改进Inception系列架构,即通过堆叠深度可分离卷积来实现。这是通过tensorflow中有效的深度卷积实现的,接下来,我们基于这一思想提出了一个卷积神经网络,其参数量与InceptionV3差不多,并且我们在两个大规模数据集上比较了本文模型与InceptionV3的表现。

2 Prior

目前的工作在很大程度上依赖于以下领域的之前成果:
1)卷积神经网络[10,9,25],尤其是VGG-16架构[18],在某些方面VGG-16余我们提出的架构原理上很相似
2)卷积神经网络的Inception家族[20,7,21,19],它将卷积分解为在通道上和空间上一次操作的多个分支,并展示了其有效性
3)深度分离卷积是我们提出该架构的基础。在神经网络中使用空间分离卷积已经有很长的历史了,至少可以追溯到2012年[12](但是可能更早),深度版本是最近的。Laurent Sifre在2013年谷歌Brain实习期间开发了深度可分卷积,并将其用于AlexNet中,获得了较小的精度提升和较大的收敛速度提升,并显著减小了模型尺寸。在ICLR 2014年[23]会议上,他的工作概述首次公布于众。详细的实验结果见Sifre的论文6.2节[15]。这项关于深度可分卷积的初步工作受到了Sifre和Mallat之前关于变换不变散射的研究的启发[16,15]。后来,用深度可分的卷积作为Inception V1和Inception V2的第一层[20,7]。在谷歌中,Andrew Howard[6]引入了使用深度可分卷积的高效移动模型MobileNets。Jin等人在2014年的[8]和Wang等人在2016年的[24]也做了相关的工作,旨在使用可分卷积来降低卷积神经网络的大小和计算成本。此外,由于在TensorFlow框架[1]中包含了深度可分卷积的有效实现,我们的工作是可能的。
4)残差连接,由He等人提出[4],我们的体系结构中广泛使用。

3 The Xception architecture

我们提出了一个完全基于深度可分卷积层的卷积神经网络结构。实际中,我们做了如下假设:卷积神经网络特征图中的跨通道相关性和空间相关性的映射可以被完全解藕。由于这个假设是Inception架构的假设的增强版,因此我们将提出的架构命名为Xception,代表“极端Inception”。
图5给出了网络规范的完整描述,Inception结构具有36个卷积层,构成了网络的特征提取基础。在我们的实验评估中,我们将专门研究图像分类,因此我们的卷积基之后将有一个逻辑回归层。也可以选择在logistic回归层之前插入全连接层,这在实验评估部分中进行讨论(具体参见图7和图8)。这36个卷积层被构造成14个模块,除了第一个模块和最后一个模块外,所有模块周围都有线性残差连接。
简单的说,Xception架构是由具有残差连接的深度分离卷积层线性堆叠而成的,这使得架构可以非常简单的去定义和修改;使用Keras[2]或TensorFlow-Slim[17]这样的高级库只需要30到40行代码,不像VGG-16[18]这样的架构,更不像Inception V2或V3这样的架构,它们的定义要复杂得多。在MIT许可下,一个使用Keras和TensorFlow实现的Xception的已经开源了,它是Keras应用程序模块的一部分。

4 Experimental evaluation

我们选择将Xception与Inception V3架构进行比较,是因为它们的尺度相似:Xception和Inception V3具有几乎相同数量的参数(表3),因此任何性能差异都不能归咎于网络容量的差异。我们在两个数据集上进行了我们的实验,一个是著名的imageNet数据集(1000类单标签分类),另一个是大规模的JFT数据集(17000类多标签分类)

4.1 The JFT dataset

JFT是谷歌内部一个用于大规模图像分类的数据集,由Hinton等人首先在[5]中引入,它包含超过3.5亿张高分辨率图像,包含17000个类别。为了评估在JFT上训练的模型的性能,我们使用了一个辅助数据集FastEval14k。
FastEval14k是一个包含14000个密集标注图像的数据集,包含大约6000个类(平均每个图像有36.5个标签)。在这个数据集上,我们使用前100名预测的平均精度来评估性能(MAP@100),并对每个类对MAP@100的贡献进行加权,用一个分数来估计这个类在社交媒体图像中的常见程度(因此也很重要)。这个评估过程旨在从社交媒体上获取频繁出现的标签的性能,这对谷歌的生产模型至关重要。

4.2 Optimization configuration

ImageNet和JFT使用了不同的优化配置:
–在ImageNet中:
  --Optimazer:SGD
  --Momentum:0.9
  --Initial learning rate:0.045
  --Learning rate decay:每两个epoch下降为0.94
–在JFT中:
  --Optimazer:RMSprop[22]
  --Momentum:0.9
  --Initial learning rate:0.001
  --Learning rate decay:每30000000个样本下降为0.9
对于这两个数据集,Xception和Inception V3使用了完全相同的优化配置。请注意,这个配置在Inception V3中被调到了最佳性能;我们没有尝试为Xception调整优化超参数。由于网络具有不同的训练配置文件(图6),这可能不是最优的,特别是在ImageNet数据集上,在那里使用的优化配置已经为Inception V3进行了仔细的调优。
此外,所有模型在推断时都使用Polyak平均[13]进行评估。

4.3 Regularization configuration

**权重衰减:**Inception V3模型使用了4e-5的权重衰减率(L2正规化),这是为ImageNet的性能而精心调整的。我们发现这个速率对于Xception是相当不佳的,因此在Xception中设为1e−5。我们没有对最优权值衰减率进行广泛的搜索。在ImageNet实验和JFT实验中使用了相同的重量衰减率。
**Dropout:**对于ImageNet实验,两个模型在逻辑回归层之前都包含一个丢失率为0.5的dropout层。在JFT实验中,由于数据集规模大,使得在任何合理的时间内都不太可能发生过拟合,因此没有使用Dropout。
**Auxiliary loss tower:**Inception V3架构可以有选择地包括一个辅助塔,它在网络的早期反向传播分类丢失,作为一个额外的正则化机制。为简单起见,我们选择不在任何模型中包含这个辅助塔。

4.4 Training infrastructure

所有网络使用TensorFlow框架[1]实现,每个网络使用60个NVIDIA K80 gpu进行训练,在ImageNet实验中,我们采用了数据并行化和同步梯度下降的方法来获得最佳的分类性能,而在JFT中,我们采用了异步梯度下降的方法来加快训练速度。ImageNet实验各耗时约3天,而JFT实验各耗时1个多月。JFT模型没有被训练到完全收敛的程度,每次实验都需要三个多月的时间。
在这里插入图片描述

4.5 Comparison with Inception V3

4.5.1 分类表现

所有的评估都使用单一的输入图像和单一的模型运行。ImageNet的结果是在验证集上而不是在测试集上报告的(即在ILSVRC 2012的验证集上的非黑名单图像上)。JFT结果是在3000万次迭代(一个月的训练)后报告的,而不是在完全收敛之后。结果如表1、表2、图6、图7、图8所示。在JFT上,我们测试了不包含任何全连接层的网络,以及在逻辑回归层之前包含两个4096个单元的全连接层的网络。

在ImageNet上,Xception比Inception V3稍好一些。在JFT上,Xception在FastEval14k MAP@100度量标准上相比Inception有4.3%的改进。我们还注意到,Xception优于He等人所报告的ImageNet在ResNet-50, ResNet-101和ResNet-152[4]上的结果。
与ImageNet数据集相比,Xception架构在JFT数据集上显示出了更大的性能改进。我们认为这可能是由于Inception V3是专门为ImageNet开发的,因此可能是被设计的非常适合这个特定的任务。另一方面,两个架构都没有为JFT进行调优。在ImageNet上搜索更好的Xception超参数(特别是优化参数和正则化参数)可能会带来显著的额外改进。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.5.2 Size and speed

在这里插入图片描述
我们比较了InceptionV3和Xception的参数量和速度。这个比较是在ImageNet上进行的(1000类别,没有全连接层),在60块 K80 GPUs上进行同步梯度下降训练,在表3中展示了参数量和平均每秒训练的步数。两种架构的大小基本相同(差距在3.5%以内),Xception稍微慢一些。我们期望在不久的将来,深度卷积操作级别的工程优化可以使Xception比Inception V3更快。两种体系结构的参数数量几乎相同,这一事实表明,ImageNet和JFT上的改进并不是来自于增加的容量,而是来自于更有效地使用模型参数。

4.6 Effect of the residual connections

为了定量的分析Xception中残差连接的收益,我们在ImageNet上测试了一个修改版的Xception,它不包含任何残差连接。结果如图9所示。无论在速度还是最终的分类性能方面,残差连接对于帮助收敛都是非常重要的。然而,我们将注意到,用与残差模型相同的优化配置对非残差模型进行基准测试可能是苛刻的,而且更好的优化配置可能产生更具竞争力的结果。
在这里插入图片描述
另外,我们注意到这个结果仅仅显示了残差连接对于这个特定架构的重要性,并且残差连接对于构建深度可分卷积堆叠的模型来说是完全没有必要的。在没有残差连接的vggstyle模型中,当所有的卷积层都被替换为深度可分的卷积我们也获得了很好的结果(深度乘子为1),在等参数计数下的情况下,在JFT上的表现优于Inception V3。

4.7 Effect of an intermediate activation after pointwise convolutions

我们之前提到过,深度可分卷积和Inception模块相比,深度可分卷积本身在深度操作和点操作之间不包括非线性激活。在目前报道的实验中,还没有发现这种非线性现象。因此我们也通过实验测试了ReLU或ELU[3]作为中间非线性的结果。在ImageNet上的结果如图10所示,结果表明,没有任何非线性时会导致更快的收敛和更好的最终性能。
在这里插入图片描述
这是一个值得注意的发现,因为Szegedy等在[21]中讨论Inception时报道了相反的结论。可能空间卷积的中间特征空间深度的应用对于非线性的效果至关重要:对于深度特征空间(如Inceprion模块)非线性是有帮助的,但是对于浅层网络(如深度分离卷积的一通道深度特征空间)非线性是有伤害的,可能是因为信息的损失。

5 Future directions

我们在前面已经注意到常规卷积和深度可分卷积之间存在一个离散谱,该离散谱由用于执行空间卷积的独立信道空间段的数量来参数化。Inception是这个图谱内的一点。在我们的实验评估中,我们展示了一个Inception模块的极端形式,深度可分离卷积,可能比常规Inception模块有优势。然而,没有理由认为深度可分卷积是最优的。可能是频谱上的中间点,位于常规Inception模块和深度可分卷积之间,拥有进一步的优势。这个问题留待以后研究。

6 Conclusions

我们展示了卷积和深度可分卷积在离散谱的两个极端,Inception模块是两者之间的一个中间点。基于这一观察,我们提出用深度可分卷积代替Inception模块,用于神经计算机视觉架构。我们提出了一个基于这种思想的新架构,名为Xception,它的参数计数与Inception V3类似。与Inception V3相比,Xception在ImageNet数据集上显示了较小的分类性能提升,但是在JFT数据集上显示了大的提升。我们期望深度可分卷积在未来能够成为卷积神经网络架构设计的基石,因为它们提供了与Inception模块类似的特性,并且与常规卷积层一样易于使用。

References

[1] M. Abadi, A. Agarwal, P. Barham, E. Brevdo, Z. Chen,C. Citro, G. S. Corrado, A. Davis, J. Dean, M. Devin, S. Ghemawat, I. Goodfellow, A. Harp, G. Irving, M. Isard, Y. Jia,R. Jozefowicz, L. Kaiser, M. Kudlur, J. Levenberg, D. Man´e,R. Monga, S. Moore, D. Murray, C. Olah, M. Schuster,J. Shlens, B. Steiner, I. Sutskever, K. Talwar, P. Tucker, V. Vanhoucke, V. Vasudevan, F. Vi´egas, O. Vinyals, P. Warden,M. Wattenberg, M. Wicke, Y. Yu, and X. Zheng. TensorFlow: Large-scale machine learning on heterogeneous systems, 2015. Software available from tensorflow.org.

[2] F. Chollet. Keras. https://github.com/fchollet/keras, 2015.

[3] D.-A. Clevert, T. Unterthiner, and S. Hochreiter. Fast and accurate deep network learning by exponential linear units (elus). arXiv preprint arXiv:1511.07289, 2015.

[4] K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. arXiv preprint arXiv:1512.03385, 2015.

[5] G. Hinton, O. Vinyals, and J. Dean. Distilling the knowledge in a neural network, 2015.

[6] A. Howard. Mobilenets: Efficient convolutional neural networks for mobile vision applications. Forthcoming.

[7] S. Ioffe and C. Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. In Proceedings of The 32nd International Conference on Machine Learning, pages 448–456, 2015.

[8] J. Jin, A. Dundar, and E. Culurciello. Flattened convolutional neural networks for feedforward acceleration. arXiv preprint arXiv:1412.5474, 2014.

[9] A. Krizhevsky, I. Sutskever, and G. E. Hinton. Imagenet classification with deep convolutional neural networks. In Advances in neural information processing systems, pages 1097–1105, 2012.

[10] Y. LeCun, L. Jackel, L. Bottou, C. Cortes, J. S. Denker,H. Drucker, I. Guyon, U. Muller, E. Sackinger, P. Simard, et al. Learning algorithms for classification: A comparison on handwritten digit recognition. Neural networks: the statistical mechanics perspective, 261:276, 1995.

[11] M. Lin, Q. Chen, and S. Yan. Network in network. arXiv preprint arXiv:1312.4400, 2013.

[12] F. Mamalet and C. Garcia. Simplifying ConvNets for Fast Learning. In International Conference on Artificial Neural Networks (ICANN 2012), pages 58–65. Springer, 2012.

[13] B. T. Polyak and A. B. Juditsky. Acceleration of stochastic approximation by averaging. SIAM J. Control Optim., 30(4):838–855, July 1992.

[14] O. Russakovsky, J. Deng, H. Su, J. Krause, S. Satheesh, S. Ma,Z. Huang, A. Karpathy, A. Khosla, M. Bernstein, et al. Imagenet large scale visual recognition challenge. 2014.

[15] L. Sifre. Rigid-motion scattering for image classification, 2014. Ph.D. thesis.

[16] L. Sifre and S. Mallat. Rotation, scaling and deformation invariant scattering for texture discrimination. In 2013 IEEE Conference on Computer Vision and Pattern Recognition, Portland, OR, USA, June 23-28, 2013, pages 1233–1240, 2013.

[17] N. Silberman and S. Guadarrama. Tf-slim, 2016.

[18] K. Simonyan and A. Zisserman. Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556, 2014.

[19] C. Szegedy, S. Ioffe, and V. Vanhoucke. Inception-v4, inception-resnet and the impact of residual connections on learning. arXiv preprint arXiv:1602.07261, 2016.

[20] C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov,D. Erhan, V. Vanhoucke, and A. Rabinovich. Going deeper with convolutions. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 1–9, 2015.

[21] C. Szegedy, V. Vanhoucke, S. Ioffe, J. Shlens, and Z. Wojna.Rethinking the inception architecture for computer vision. arXiv preprint arXiv:1512.00567, 2015.

[22] T. Tieleman and G. Hinton. Divide the gradient by a running average of its recent magnitude. COURSERA: Neural Networks for Machine Learning, 4, 2012. Accessed: 201511-05.

[23] V. Vanhoucke. Learning visual representations at scale. ICLR, 2014.

[24] M. Wang, B. Liu, and H. Foroosh. Factorized convolutional neural networks. arXiv preprint arXiv:1608.04337, 2016.

[25] M. D. Zeiler and R. Fergus. Visualizing and understanding convolutional networks. In Computer Vision–ECCV 2014, pages 818–833. Springer, 2014.

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值