目录
原文链接:
Xception: Deep Learning with Depthwise Separable Convolutions
发表时间:2017年
来源:CVPR
作者:François Chollet
简介:
本文提出了一种叫做xception的架构,该架构受Inception的启发,其中Inception模块被深度可分离卷积代替。Xception架构与Inception V3具有相同的参数量,性能却显著优于Inception V3。
网络结构改进:
- Xception 受Inception的启发,是对 Inception-v3 的另一种改进。
- 作者做出假设:卷积神经网络特征映射中交叉通道相关性和空间相关性的映射可以完全解耦。所以采用可分离卷积来替换原来 Inception-v3中的卷积操作。
(1)典型的Inception模块(Inception V3)中,输入同时经过几个不同的特征提取结构进行特征提取,然后再做concat
(2)一个简化的Inception模块(除去Avg Pool结构)
(3)简化的Inception模块的严格等价重新配置
(4)Inception模块的“极致”版本,1x1卷积的每个输出通道具有一个空间卷积,即Xception
- Xception与深度可分离卷积的区别
(1)操作顺序不同:通常实现的深度可分卷积执行第一个通道空间卷积,然后执行1x1卷积,而Inception首先执行1x1卷积。
(2)第一次操作后是否存在非线性:在Xception中,两个操作之后都有深度方向的ReLU非线性,而深度可分离卷积通常在没有非线性的情况下实现。
作者认为第一个区别并不重要,特别是因为这些操作旨在用于堆叠设置。第二个区别可能很重要。
Xception架构:
数据首先通过入口流,然后通过重复8次的中间流,最后通过出口流。请注意,所有的卷积和SeparableConvolution图层都遵循批量归一化BN(未包含在图中)
结论:
(1)Xception 在 ImageNet 上,比 Inception-v3 的准确率稍高, 同时参数量有所下降
(2)在 Xception 中加入的类似 ResNet 的残差连接机制显著加快了Xception的收敛过程并获得了显著更高的准确率。
(3)在可分离卷积层的深度运算和逐点运算之间没有任何非线性会导致更快的收敛和更好的性能