Xception论文笔记


Xception

CVPR Xception: Deep Learning with Depthwise Separable Convolutions

摘要

我们提出了一个Inception模块的操作,该操作是常规卷积和深度可分离卷积操作之间的中间步骤(深度卷积之后是逐点卷积)。因此,深度可分离卷积可以理解为具有最大tower的Inception模块。这一发现使我们提出了一种受Inception启发的新颖的深度卷积神经网络体系结构,其中Inception模块已被深度可分离卷积替代。

我们展示了这种被称为Xception的架构,在ImageNet数据集(Inception V3专为该数据集设计)上略胜于Inception V3,在包含3.5亿张图像和17,000个类别的较大图像分类数据集上,其性能明显优于Inception V3。由于Xception体系结构具有与Inception V3相同数量的参数,因此性能的提高并不是由于参数量的增加,而是由于模型参数的更有效使用。

引言

此时,出现了一种新的网络,即由Szegedy等人介绍的Inception体系结构, 在2014年叫做GoogLeNet(Inception V1),后来又改进为Inception V2、Inception V3,以及最近的Inception-ResNet。Inception本身的灵感来自早期的Network-In-Network体系结构。

尽管Inception模块在概念上与卷积相似(它们是卷积特征提取器),但从经验上看,它们似乎能够以较少的参数学习更丰富的表示形式。 它们是如何工作的,它们与常规卷积有何不同? Inception之后会有哪些设计策略?

The Inception hypothesis

卷积层尝试学习三维空间中的滤波器,具有2个空间维度(宽度和高度)和一个通道维度;因此,单个卷积核的任务是同时映射跨通道相关性和空间相关性。Inception模块背后的这个想法是通过显式地将其纳入一系列独立查看跨通道相关性和空间相关性的操作,使这个过程更容易、更有效。

更准确地说,典型的Inception模块首先通过一组1x1卷积查看跨通道相关性,将输入数据映射到比原始输入空间小的3或4个独立空间。然后通过常规3x3或5x5卷积将这些相关性映射到这些更小的3D空间中。这一点如图1所示。实际上,Inception背后的基本假设是,跨通道相关性和空间相关性被充分解耦,最好不共同映射它们。

注:(这个过程的一个变体是独立地观察宽度方面的相关性和高度上的相关性。这是由InceptionV3中发现的一些模块实现的,它们交替进行7x1和1x7卷积。这种**空间可分离卷积 **spatial的使用在图像处理中有着悠久的历史,至少从2012年开始(可能更早)就已经在一些卷积神经网络的实现中使用。)

这个初始模块可以重新表述为一个大的1x1卷积,然后是空间卷积,它将在输出通道的不重叠段上操作(图3)

这种观察自然会引起一个问题:分区中的分组数(及其大小)会产生什么影响? 做出比Inception假设强得多的假设,并假设跨通道相关性和空间相关性可以完全分开映射,是否合理?

Inception的极端形式基本与深度可分离卷积相同,深度可分离卷积,在深度学习框架(如TensorFlow和Keras)中通常称为“可分离卷积”,它包含深度卷积,即在输入的每个通道上独立执行的空间卷积,然后是逐点卷积,即1x1卷积,将通过深度卷积输出的通道投影到新的通道空间上。请勿将其与空间可分离卷积spatially separable convolution混淆,空间可分离卷积在图像处理社区中通常也称为“可分离卷积”。

Inception模块的“极端”版本和深度可分离卷积之间的两个细微区别是:

  • 操作的顺序:通常实现的深度可分离卷积(例如在张量流中)首先执行通道级空间卷积,然后执行1x1卷积,而Inception首先执行1x1卷积。
  • 第一次操作后是否存在非线性。在Inception中,这两个操作加入了ReLU保证非线性,但是深度可分离卷积通常不需要ReLU操作

我们认为第一个区别并不重要,特别是因为这些操作应该在堆叠设置中使用。第二个差异可能很重要,我们在实验部分进行它(特别是见图10)。我们还注意到,位于常规Inception模块和深度可分离卷积之间的Inception模块的其他中间形式也是可能的:实际上,规则卷积和深度可分离卷积之间有一个离散谱( discrete spectrum ),由用于执行空间卷积的独立 channel-space段的数量参数化。在这个频谱的一个极端,常规卷积(前面是1x1卷积)对应于单段通道情况;深度可分离卷积对应于另一个极端,每个通道有一个段;感觉模块位于之间,将几百个通道划分为3或4个段。这种中间模块的特性似乎尚未被探索过。

我们还注意到,位于常规感觉模块和深度可分离卷积之间的感觉模块的其他中间公式也是可能的:在这个频谱的一个极端,有一个规则的卷积(前面是一个1x1的卷积),对应于单段的情况;

在做了这些观察之后,我们建议通过用独立可分离卷积替换Iception模块,即建立深度可分离卷积栈的模型来改进Iception网络家族的架构。 TensorFlow中有效的深度卷积实现使得这能够实现。接下来,我们提出了一个基于此想法的卷积神经网络结构,其参数与IceptionV3相似,并在两个大规模图像分类任务中评估IceptionV3的性能。

先前的工作

依赖先前的一些工作:

  • 卷积神经网络[10,9,25],特别是VGG-16架构[18],它在几个方面与我们提出的架构模式相似。
  • 卷积神经网络[20,7,21,19]的初始Inception家族的网络架构,首先证实了将卷积分解成在通道上和空间上依次操作的多个分支的优势。
  • 我们提出的架构完全基于深度可分离卷积。虽然在神经网络中使用空间可分离卷积有很长的历史,至少可以追溯到2012年的[12](但可能更早),但深度卷积版本是最近才出现的。
  • 2013年,LorantSifre在谷歌Brain实习期间开发了深度可分离卷积,并在AlexNet中使用这些卷积获得了精度的小收益,收敛速度获得了大收益,以及模型大小的显著减少。
    • 这项关于深度可分离卷积的初步工作是受到Sifre和Mallat先前关于变换不变散射[16,15]的研究的启发
    • 随后,将深度可分离卷积作为InceptionV1和InceptionV2[20,7]的第一层。
    • 在谷歌中,AndrewHoward[6]引入了高效的Mobile模型,称为MobileNet,使用深度可分离卷积。
    • Jin等人。2014年,[8]和Wang等人。2016年,[24]还做了相关工作,旨在减少卷积使用可分离的卷积神经网络的大小和计算成本。由于在张量流框架中包含了一个有效的实现深度可分离卷积,使我们的工作成为可能
  • 由He等人引入的残差连接Residual connections。在[4]中,我们提出的架构广泛使用了它

The Xception architecture

我们提出了一种完全基于深度可分离卷积层的卷积神经网络结构。实际上,我们做了以下假设:卷积神经网络特征图中的跨Channel相关性和空间相关性的映射可以完全解耦。因为这个假设是Inception空间架构背后的假设的一个更强的版本,我们将我们提出的架构命名为Xception,它代表“极限盗梦空间”。

特点:

  • 36个卷积层,构成了网络特征提取的基础
  • 因为专门做图像分类,卷积层后面跟了一个logitic回归层
  • 可以选择地在逻辑回归层之前插入全连接层,这在实验评估部分进行了探讨(特别是见图7和图8)。36个卷积层构成了14个模块,除了第一个和最后一个模块外,所有这些模块周围都有残差连接。
  • 简而言之,Xception架构是一个具有残余连接的深度可分离卷积层的线性堆栈 linear stack。这使得体系结构非常容易定义和修改;使用Keras[2]或TensorFlow-Slim[17]等高级库只需要30到40行代码,就像VGG-16这样的体系结构一样,而像InceptionV2或V3,则要复杂得多。
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GPqcRK1i-1636274058671)(F:\研一\包含信息得文件\实习\论文\reource\轻量级网络\Inception及其变体\Xception架构.png)]

图5。Xception架构:数据首先通过Entry Flow,然后通过Middle Flow,重复8次,最后通过Exit Flow。请注意,所有的卷积层和单独的卷积层之后经过了BN[7](不包括在图中)。所有SeparableConvolution(可分离) 层使用的深度乘数为1(没有深度展开)。

实验评估

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

JFT数据集

JFT是一个大规模图像分类数据集的谷歌数据集,由Hinton等人首次引入。在[5]中,它包括超过3.5亿张高分辨率图像,上面标注了来自17000个类的标签。为了评估在JFT上训练的模型的性能,我们使用了一个辅助数据集,FastEval14k

  • FastEval14k是一个由14000张图像组成的数据集,包含来自大约6000个类的密集注释(平均每张图像有36.5个标签)。在这个数据集上,我们使用排名前100名的预测的 Mean Average Precision(MAP@100)来评估性能,并加权每个类对MAP@100的贡献,用一个分数来估计该类在社交媒体图像中有多常见(因此很重要)。这个评估程序旨在从社交媒体上获取经常出现的标签的性能,这对谷歌的production models至关重要。

优化配置

ImageNet和JFT采用了不同的优化配置:

ImageNetJFT
OptimizerSGDRMSprop
Momentum0.90.9
Initial learning rate0.0450.001
Learning rate decaydecay of rate 0.94 every 2decay of rate 0.9 every 3,000,000 samples

对于这两个数据集,Xception与InceptionV3都使用了完全相同的优化配置。注意,这个配置是在InceptionV3中优化为最佳性能的;我们没有尝试调整Xception盗梦空间的优化超参数。由于网络有不同的训练轮廓(图6),这可能是次优的,特别是在ImageNet数据集上,在它上使用的优化配置已经为盗梦空间V3进行了仔细的调整。

此外,所有模型在推理时都使用**Polyak averaging[13]**进行评估。

正则化配置

Weight decay:InceptionV3模型的权重衰减(L2正则化)速率为4e−5的,该速率已经根据在ImageNet上的性能进行了仔细的调整。我们发现这个速率对于Xception来说 相当次优quite suboptimal,(不是最优的),而取了1e−5。我们没有对最优的权重衰减率进行广泛的搜索。ImageNet实验和JFT实验都使用了相同的权重衰减率

dropout:对于ImageNet实验,两个模型在逻辑回归层(logistic regression layer)之前都包含一个rate 0.5的dropout层。对于JFT实验,论文没有采用dropout层,因为数据集的体积较大,这使得在任何合理的时间内都不太可能进行过拟合。

辅助损失函数塔(Auxiliary loss tower):InceptionV3架构可选地包括一个辅助函数塔,它在网络中早期反向传播分类损失,作为一个额外的正则化机制。为简单起见,我们选择不在任何模型中包含这个辅助塔。

训练设施(培训基础设施)

所有网络都使用tenorflow框架[1]实现,每个框架在60个NVIDIA K80 GPUs上进行训练。在ImageNet实验中,我们使用具有同步梯度下降的数据并行性来实现最佳的分类性能,而对于JFT,我们使用异步梯度下降,以加快训练速度。ImageNet实验每个大约需要3天,而JFT实验每个需要超过一个月。JFT模型没有被训练到完全收敛,每次实验需要三个月的时间。

Inception V3的比较

  • 在ImageNet数据集上 Xception表现略优(marginally better)

  • 在JFT上, Xception在 FastEval14k MAP@100指标下相对提高了4.3%

原因:

  1. 我们认为这可能是由于Inception V3是专注于ImageNet开发的,因此可能通过设计过拟合来适合这个特定的任务。
  2. 在ImageNet数据集上,Xception有可能可以通过搜索超参数来获得更好的性能提升

这两种架构具有几乎相同数量的参数,这表明在ImageNet和JFT上看到的改进并不是来自增加的容量,而是来自对模型参数的更有效的使用。

残差连接对于这个特定体系结构的重要性,并且对于构建具有分层可分离卷积堆栈的模型,残差连接不是必要的。我们还在没有残余模块的VGG型的模型中获得了良好的结果,其中所有卷积层都被深度可分离卷积(深度乘数为1)所取代,在平均参数计数(equal parameter count)下优于JFT上的InceptionV3。

在逐点卷积后中间激活函数的影响

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9QT1xsNP-1636274058676)(F:\研一\包含信息得文件\实习\论文\reource\轻量级网络\Inception及其变体\深度可分离卷积层中激活函数的影响.png)]

在分离卷积层中的深度卷积和逐点卷积操作之间不同激活函数的训练曲线变化情况。

我们很早就提到了类比Inception模块和深度可分离卷积模块,我们可以发现深度可分离卷积应该潜在的包含一种非线性,这种非线性存在于深度卷积和逐点卷积操作中。如图10,并表明没有任何非线性(the absence of any non-linearity )会导致更快的收敛和更好的最终性能(我的理解是ReLU函数使得网络非线性,但是这种非线性降低了网络的收敛速度和最终的性能)

在应用Spatial卷积后,中间特征空间的深度(注:有可能值得是深度卷积的深度乘数)对非线性作用效果大小只管重要,对于深层特征空间,这种非线性是有帮助的。但是对于窄的特征空间(比如深度可分离卷积的1通道深度空间),这可能是有害的,可能是因为信息丢失的原因

未来方向

我们之前注意到在正则卷积和深度可分离卷积之间存在一个离散谱(discrete spectrum),由用于执行空间卷积的独立信道空间段的数量参数化。Inception模块是这个频谱上的一点。我们在我们的经验评估中表明,Inception模块的极端形式,即深度可分离卷积,可能比常规的Inception模块有优势。然而,没有理由相信深度可分离卷积一定是最优的。这可能是光谱 spectrum上的中间点,位于常规的Inception模块和深度可分离卷积之间,具有进一步的优势。这个问题留待进一步调查。(大概意思是讲有可能存在一种介于深度可分离卷积和常规的Inception常规模块之间模块,这个模块的效率是最优的)

结论

我们展示了卷积和深度可分离卷积如何位于离散谱(discrete spectrum)的两个极端,Inception模块是两者之间的中间点。这一观察结果导致我们提出用神经计算机视觉架构中的深度可分离卷积来替换Inception模块。基于这个想法,我们提出了一种新的架构,名为Xception,它与InceptionV3具有相似的参数计数。与Inception V3相比,Xception在ImageNet数据集上的分类性能有较小的提高,在JFT数据集上有较大的提高。我们期望深度可分离的卷积在未来成为卷积神经网络体系结构设计的基石,因为它们提供了与Inception模块相似的特性,但与规则卷积层一样容易使用。

相关名词

名词
recipe方法
cross-channel correlations跨通道相关性
spatial correlations空间相关性

参考

[论文笔记] Xception

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值