Xception来源论文《Xception: Deep Learning with Depthwise Separable Convolutions》读后总结

Xception来源论文《Xception: Deep Learning with Depthwise Separable Convolutions》读后总结)

  • 前言
  • 文章主要内容与贡献
    • 设计了 Xception 网络
    • 探究了不同数据集对网络的影响
    • 探究了点(pointwise)卷积后非线性激活函数对深度网络的影响

前言

这是一些对于论文《Deep Learning with Depthwise Separable Convolutions》的简单的读后总结,首先先奉上该文章的下载超链接:Xception

这篇文章是由Google公司的Francois Chollet完成的,其探究了不同于寻常深度卷积神经网络的结构,并将其和众多优秀的网络在ImageNet数据集和JFT数据集上进行了对比。

文章主要内容与贡献

该文章的贡献为:

  1. 设计了 Xception 网络;
  2. 探究了不同数据集对网络的影响;
  3. 探究了点(pointwise)卷积后非线性激活函数对深度网络的影响。

设计了 Xception 网络

Xception 模块是由Inception模块改进而来的,其拥有比Inception-v3更好的效果。首先回顾一下Inception-v3模块,如下图所示:
Xception来源论文《Xception: Deep Learning with Depthwise Separable Convolutions》读后总结_第1张图片
下图是简化版的Inception模块的结构图:
Xception来源论文《Xception: Deep Learning with Depthwise Separable Convolutions》读后总结_第2张图片

简化的版本中均变为了先 1 × 1 1\times1 1×1的卷积再 3 × 3 3\times3 3×3的卷积,总体看上去比Inception-v3要简洁了许多。

上述的简化版的Inception模块可以被等效为:
Xception来源论文《Xception: Deep Learning with Depthwise Separable Convolutions》读后总结_第3张图片
上述模块将三个 1 × 1 1\times1 1×1卷积合成为了一个 1 × 1 1\times1 1×1卷积,由此作者还提出了一个极端情况下的简化Inception模块,如下所示:
Xception来源论文《Xception: Deep Learning with Depthwise Separable Convolutions》读后总结_第4张图片

Xception是一种完全基于深度可分卷积层的卷积神经网络体系结构。作者假设:卷积神经网络特征映射中的交叉通道相关性和空间相关性的映射可以完全解耦。以下是Xception的整体结构:
Xception来源论文《Xception: Deep Learning with Depthwise Separable Convolutions》读后总结_第5张图片
上图中,数据首先通过入口流,然后通过中间流重复八次,最后通过出口流。所有卷积层和分离卷积层后面是批处理规范化。所有分离卷积层使用的深度乘数为1(无深度展开)。该网络融合了Inception和ResNet,使得其深度有36层时还能有更好的效果。

探究了不同数据集对网络的影响

这篇文章不仅使用了ImageNet数据集,还使用了更大的JFT数据集,通过对不同数据集的比较,验证Xception的优异性能。
以下是实验结果,首先是ImageNet数据集上的实验:
Xception来源论文《Xception: Deep Learning with Depthwise Separable Convolutions》读后总结_第6张图片
由上可知,Xception在ImageNet上是由于其它比较算法的,但对Inception-v3的优势并不明显。

接下来是在JFT数据集上单裁剪单模型的实验,此处仅有Inception-v3和Xception,有趣的是该实验做了没有全连接层和有全连接层的实验:
Xception来源论文《Xception: Deep Learning with Depthwise Separable Convolutions》读后总结_第7张图片
由上可知,不管有无全连接层,Xception都较大幅度的优于Inception-v3,且对于这两个网络,有全连接层都优于无全连接层。

接下来是Xception和Inception-v3在ImageNet数据集上的比较:
Xception来源论文《Xception: Deep Learning with Depthwise Separable Convolutions》读后总结_第8张图片
由上可知,随着迭代次数增加,Xception的准确度增加得比Inception更快更好。

下图是Xception和Inception-v3在JFT数据集上的比较,此处是无全连接层时的实验:
Xception来源论文《Xception: Deep Learning with Depthwise Separable Convolutions》读后总结_第9张图片
由上可知,JFT数据集上的收敛没有ImageNet数据集平滑,同样的,Xception的准确度增加得比Inception更快更好,且Xception的优势更大。

下图是Xception和Inception-v3在JFT数据集上的比较,此处是有全连接层时的实验:
Xception来源论文《Xception: Deep Learning with Depthwise Separable Convolutions》读后总结_第10张图片
由上可知,JFT数据集上的收敛没有ImageNet数据集平滑,同样的,Xception的准确度增加得比Inception更快更好,且Xception的优势更大。

下图是在ImageNet数据集上有无残差网络设计的Xception的比较图:
Xception来源论文《Xception: Deep Learning with Depthwise Separable Convolutions》读后总结_第11张图片
可以轻松的发现,残差网络的思想对于Xception至关重要。

作者强调的一点是,Xception和Inception-v3的参数数量基本相同,如下表所示:
Xception来源论文《Xception: Deep Learning with Depthwise Separable Convolutions》读后总结_第12张图片
因此选用Inception-v3来与Xception作比较可以验证,Xception优于Inception-v3不是因为Xception的参数更多,而是因为Xception的网络结构和设计优于Inception-v3。

探究了点(pointwise)卷积后非线性激活函数对深度网络的影响

下图是有无激活函数对Xception的准确率的影响:
Xception来源论文《Xception: Deep Learning with Depthwise Separable Convolutions》读后总结_第13张图片
由图可知,点卷积后没有激活函数时的效果最好,ELU其次,ReLU最差,作者分析这是因为在深的网络中,ELU和ReLU导致信息丢失过多,从而使得网络性能下降。

你可能感兴趣的:(深度学习,神经网络,卷积神经网络,deep,learning,Xception)