本篇是keras库作者的文章,对Inception结构进行了改进:用Depth-wise seperable convolution替换了Inception单元中的1×1卷积和3×3卷积。
Motivation
文章指出,Inception单元背后的假设是跨Channel和跨空间的相关性可以充分解耦,类似的还有长度和高度方向上的卷积结构(在Inception-v3里的3×3卷积被1×3和3×1卷积替代)。
进一步的,Xception基于更强的假设:跨channel和跨空间的相关性完全解耦。这也是Depthwise Separable Convolution所建模的理念。
一个简化的Inception单元:
等价于:
将channel推向极端,即每个channel都由独立的3×3卷积处理:
这样就得到了Depthwise Separable Convolution。
Architectrue
简单讲,Xception是线性堆叠的Depthwise Separable卷积,附加了Skip-connection。
NetScope Vis请参见这里,源文件位于awesome_cnn。
Experiments
本文的实验部分并没有像其他论文那样集成一个在ImageNet上SOTA的结果,而是以Inception-v3为基线,对比了参数数量和性能,认为提升正来自于更合理的参数利用。文章还对比了Residual的作用,在Xception网络中,Skip-connection不仅能提高训练速度,还能增强模型的性能。
Concolusion
本文贡献主要对Inception单元的解读和引入Depthwise Seperable Convolution。更多对于Depthwise Seperable Convolution的描述,请参考MobileNets的笔记。