Xception:深度学习超越 Inception
导 读
本文介绍了一种新型卷积神经网络架构Xception,该架构以Inception模型为基础,用深度可分离卷积取代了 Inception 的模块。作者将 Inception 模块设计为标准卷积和深度可分离卷积之间的中间步骤,从而实现了更高效的设计。与现有架构相比,无需增加模型参数数量即可获得更好的性能,从而更有效地利用了计算资源。
有需要的朋友关注公众号【小Z的科研日常】,获取更多内容。
01、背景
卷积神经网络 (CNN) 的发展经历了各种架构创新,旨在提高效率和准确性。早期架构(如LeNet和AlexNet)确立了 CNN 设计的基本原则,主要堆叠卷积层和池化层以提取分层特征。后期架构(如VGG-16)增加了深度,表明更深的网络可以显著提高性能。然而,这些早期网络以单片方式处理特征图,在单个卷积操作中共同捕获空间和跨通道相关性,这限制了参数效率。

图 1. Inception V3 的典型 Inception 模块
为了解决这些低效率问题,Inception 网络引入了一种分解卷积方法,将计算构建为并行分支,分别捕获不同抽象级别。Inception假设在 Inception V1 中提出,后来在 Inception V2 和 V3 中得到完善,该假设表明跨通道相关性和空间相关性应分开处理,而不是联合处理。
如图 1所示,典型的 Inception 模块首先应用1×1 卷积来降低维数并捕获跨通道依赖性,然后在转换后的特征图上应用空间卷积(例如 3×3 或 5×5)。这种设计降低了计算成本,同时提高了特征提取效率。

图 2. 简化的 Inception 模块

图 3.简化的 Inception 模块的严格等效重构
然而,如图 2所示,一个简化的 Inception 模块只使用一个滤波器尺寸(例如 3×3),没有平均池化分支,可以看作是向深度可分离卷积迈出的一步。进一步重新表述这个模块,如图 3所示,可以发现它可以被解释为一个大的 1×1 卷积,后面跟着非重叠通道段上的独立空间卷积。这自然引发了一个问题:
是否有可能完全分离卷积层中的跨通道和空间相关性?

图 4. Inception 模块的一个极端版本,其中 1×1 卷积的每个输出通道都有一个空间卷积
这个问题引出了标准卷积和深度可分离卷积之间的连续体概念,如图 4所示。在这个范围的一端,标准卷积作为单一变换运行,同时学习空间和跨通道相关性。Inception 模块表示一个中间阶段,将特征图分成几组,然后分别处理它们。在这个范围的最末端,深度可分离卷积更进一步,完全分离空间和跨通道处理步骤。此操作由深度卷积和随后的逐点(1×1)卷积组成,在早期工作中已被探索过,但尚未系统地用作 CNN 的唯一构建块。
02、方法

图 5. 整个 Xception 架构。在这里,输入数据首先经过 Entry 流,然后经过重复八次的 Middle 流,最后通过 Exit 流。作者在每一层之后都添加了一个批量标准化层
Xception 架构完全由深度可分离卷积层组成,并添加了残差连接以改善梯度流。本文的主要假设是特征图中的跨通道相关性和空间相关性可以完全解耦。这导致模型在概念上与 Inception 相似,但实现起来要简单得多。该架构由36 个卷积层组成,分为三个主要部分:入口流、中间流和出口流。与 Inception 模型不同,Xception 不需要其模块内的多个并行分支,从而更容易实现,同时保持高效率。整个结构如图5所示。
深度可分离卷积:
Xception 的核心组件是深度可分离卷积,它包含两个步骤:
1.深度卷积:对每个通道独立应用空间卷积。
2.逐点卷积(1×1):跨通道结合深度卷积的输出。
这与传统卷积不同,传统卷积同时在空间和通道维度上应用一组3D 滤波器。通过分解这些操作,深度可分离卷积可以降低计算复杂度和参数数量,同时保持表达能力。
残差连接
为了增强梯度传播并防止更深层网络的性能下降,Xception 在其深度可分离卷积层周围加入了残差连接(第一个和最后一个模块除外)。实证结果证实,残差连接对于更快的收敛和更高的最终准确率都至关重要。
不存在中间非线性
与在通道卷积和空间卷积之间应用ReLU 激活的传统 Inception 模块不同,Xception 省略了此步骤。本文表明,此时包含非线性实际上可能会损害性能,这可能是由于深度可分离卷积中的信息丢失。
03、实验
数据集
作者对两个图像分类任务进行了比较:一个是众所周知的ImageNet 数据集上的1000 类单标签分类任务,另一个是大规模JFT 数据集上的17,000 类多标签分类任务。此外,他们还考虑了FastEval14k数据集,该数据集由来自约6,000 个类别的14,000张带有密集注释的图像组成。
模型设置
优化器
-
ImageNet:动量为 0.9 的随机梯度下降 (SGD)。
-
JFT: RMSprop,动量为 0.9。
学习率
-
ImageNet: 0.045(每 2 个时期衰减 0.94)。
-
JFT: 0.001(每 3M 个样本衰减 0.9)。
权重衰减: Xception 为 0.00001(而 Inception V3 为 4e-5)。
Dropout:在最终分类层之前为 0.5(仅适用于 ImageNet)。
比较模型
Xception 与具有相似数量参数的Inception-V3进行了比较。此外,还提供了VGG-16和ResNet-152的结果作为参考基线。
评估指标
-
Top-1 和 Top-5 准确度(ImageNet):测量 ImageNet 验证集上的分类准确度。
-
平均精度(MAP@100,JFT):评估模型在多标签分类上的性能,优先考虑社交媒体图像中的频繁标签。
结果
分类性能

图 6. ImageNet 上的分类性能比较
在ImageNet和JFT数据集上,我们将 Xception 的性能与 Inception V3、ResNet-152 和 VGG-16 进行了比较。这些实验的目的是确定用深度可分离卷积替换 Inception 模块是否可以在保持相似参数效率的同时提高性能。
如图 6所示,在ImageNet上, Xception 的Top-1 准确率达到 79.0%,略高于Inception V3(78.2%),并且优于ResNet-152(77.0%)和VGG-16(71.5%)。同样,Xception 的Top-5 准确率达到 94.5% ,而Inception V3 的准确率仅为94.1% 。这些改进表明,深度可分离卷积可以作为Inception 模块的有效替代方案,而不会增加模型复杂度。

图 7. JFT 上的分类性能比较

图 8. ImageNet 上的训练概况

图 9. JFT 上的训练概况,无全连接层
如图 7所示,在JFT 数据集上, Xception相较于 Inception V3显示出显著的改进,尤其是在多标签分类任务中。使用FastEval14k 基准,Xception在具有全连接层的情况下实现6.78 MAP@100 ,在没有全连接层的情况下实现6.70 MAP@100 ,而 Inception V3 分别为 6.50 和 6.36。这4.3% 的相对改进表明深度可分离卷积有助于更好地利用参数和提取特征,尤其是在大规模分类问题中。
训练曲线如图 8(ImageNet)和图 9(没有全连接层的 JFT)所示,突显了 Xception 在整个训练过程中相较于 Inception V3 的稳步改进。
参数量和速度

图 10. 参数量和训练速度比较
Xception 背后的核心动机之一是在不增加模型大小的情况下实现性能提升。如图 10所示,Xception 有2285 万个参数,略少于Inception V3(2362 万个)。这证实了观察到的准确率提升不是由于模型容量的增加,而是由于更有效地使用了参数。
然而,Xception 的训练速度略慢,如图 10所示,Xception在 ImageNet 上每秒处理28 步,而Inception V3 每秒处理 31 步。这可能是由于 TensorFlow 中当前的深度卷积实现尚未完全优化。作者指出,在框架层面进一步的工程优化最终可以使 Xception比 Inception V3 更快。
残差连接的影响

图 11. 有和没有残差连接的训练概况
作者还进行了一项消融研究,以量化Xception 架构中残差连接的好处。图 11显示了没有残差连接的 Xception 模型的训练进度。
根据结果概况,残差连接显然对于帮助收敛至关重要,无论是在速度还是最终分类性能方面。然而,作者强调,这种无残差的 Xception 架构也优于其他比较模型。
逐点卷积后中间激活的影响

图 12. 可分离卷积层的深度和逐点操作之间具有不同激活的训练概况
另一项消融研究探讨了在深度卷积和逐点卷积之间添加非线性函数(ReLU 或 ELU)是否会提高模型性能。如图 12所示,结果表明,删除中间激活函数可加快收敛速度并提高最终准确率。其中,这一发现与Inception 模型的先前假设相矛盾,在 Inception 模型中,中间激活函数被认为是有益的。
作者假设特征空间的深度会影响非线性的实用性— — 对于较深的特征空间(如在 Inception 模块中所见),激活函数可能会有所帮助,但对于较浅的特征空间(如在深度可分离卷积中),它可能会导致信息丢失。
这一观察进一步支持了以下观点:深度可分离卷积应该与标准卷积区别对待,需要独特的设计选择来最大限度地提高效率。
04、总结
本文介绍的Xception模型是一种简化但功能强大的 CNN 架构,它用深度可分离卷积取代了 Inception 模块。通过分解卷积运算并利用残差连接,Xception在 ImageNet 上实现了比 Inception V3更高的准确率,并在大规模 JFT 数据集上取得了显著的改进。这些改进是在不增加模型参数数量的情况下实现的,这表明计算资源的利用效率更高。结果表明,深度可分离卷积可能成为未来深度学习架构的基本组成部分。
参考:Chollet F. Xception: Deep learning with depthwise separable convolutions[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 1251-1258.
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)