Xception Deep Learning with Depthwise Separable Couvolutions

来源:互联网 发布:淘宝杜蕾斯授权店 编辑:程序博客网 时间:2024/06/05 12:39

Xception 是Google 的the state of art CNN based model。结合了inception和Resnet 的优点并加以改进。


1.Inception

Inception的提出的基本思想是将cross-channel correlations和spatial correlations分开进行。什么意思呢?可以先了解下背景知识:知乎:在 Caffe 中如何计算卷积?答案见贾神和beanfrog的回答。

                    

CNN中的卷积原理是先卷积第1个feature map,得到一个temp map 1,这是spatial correlations,也就是在一个2D的卷积。再卷积第2...N个feature map,得到temp map 2...N。再把所有temp map相加,得到一个输出的feature map,这是cross-channel correlations,结合spatial correlations就是3D的卷积了。Inception module认为同时计算2种correlation不够效率和很复杂,所以把两种correlation的计算分开。具体做法是先进行1*1的3D 卷积,在此基础上进行3*3 的3D卷积。1*1的卷积并没有提取二维空间的信息,所以map的是cross-channel correlations。而在这之后进行3*3的卷积map的是spatial correlations。所以2种correlations的提取一定程度上是分开进行了。


除此之外,Inception module还使模型的参数大大降低。比如,对于一组32*32*256的feature map,用3*3的卷积核卷积,希望输出是96 channel,则需要的权重数是256*3*3*96。假如先用1*1的卷积核将channel数降维至128,在进行3*3的卷积,则需要256*1*1*128+128*3*3*96,少了三分之一的参数。


另外,《Going deeper》那篇文章是从计算资源和网络的稀疏性来解释Inception的优点。将网络做大是CNN发展的一个趋势,但有限的计算资源跟不上模型的增大。其中计算资源没能有效利用的一个原因是存在稀疏的数据。于是文章在思考一件事情,如何将网络中稀疏的结构用稠密的成分代替。原文:

The main idea of the Inception architecture is based on finding out how an optimal local sparsestructure in a convolutional vision network can be approximated and covered by readily availabledense components 。另外,还有一句,

The vast literature on sparse matrixcomputations (e.g. [3]) suggests that clustering sparse matrices into relatively dense submatricestends to give state of the art practical performance for sparse matrix multiplication 。 自行感受下哈。从稀疏性的角度我也没理解很透。有大神有见解在评论补充下。所以Inception将传统CNN中卷积层的一个scale的卷积分解成多个scale的卷积,1*1+3*3+5*5等等。大概这样子做能降低数据的稀疏性。


2. Separable convolution

基于inception,xception提出了Separable convolution。假如说inception提取了feature map的width-wise 和height-wise的correlation,那么Separable convolution则是关注depth-wise层面。depth即是channel。如下图,传统的CNN卷积层,3*3的卷积核对所有channel都做卷积,但是Separable convolution则把channel维分成几段。每段由不同的卷积核处理。这就是所谓的Separable。


3.Xception

Xception则是多个Separable convolution的block叠加,再加上Resnet的residual connection。在Imagenet上,Xception比Inception V3高了一个点。更多的结果自己看论文吧。





0 0
原创粉丝点击