Xception

作者: zelda2333 | 来源:发表于2021-04-26 10:57 被阅读0次

    论文原文Xception: Deep Learning with Depthwise Separable Convolutions

    深度可分离卷积(Depthwise Separable Convolution)率先是由 Laurent Sifre在其博士论文《Rigid-Motion Scattering For Image Classification》中提出。经典的MobileNet系列算法便是采用深度可分离卷积作为其核心结构。

    Xception主要从Inception的角度出发,探讨了Inception和深度可分离卷积的关系,从一个全新的角度解释了深度可分离卷积。再结合残差网络,一个新的架构Xception应运而生。Xception取义自Extreme Inception,即Xception是一种极端的Inception,下面我们来看看它是怎样的一种极端法。

    Inception的核心思想是将channel分成若干个不同感受野大小的通道,除了能获得不同的感受野,Inception还能大幅的降低参数数量。

    Inception v3的结构图

    当时提出Inception的初衷可以认为是:特征的提取和传递可以通过1*1卷积,3*3卷积,5*5卷积,pooling等,到底哪种才是最好的提取特征方式呢?Inception结构将这个疑问留给网络自己训练,也就是将一个输入同时输给这几种提取特征方式,然后做concat。Inception v3和Inception v1(googleNet)对比主要是将5*5卷积换成两个3*3卷积层的叠加。

    于是从Inception v3联想到了一个简化的Inception结构,就是Figure 2。

    简化的Inception结构

    再将Figure2延伸,就有了Figure3(图2和图3是完全等价的),Figure3表示对于一个输入,先用一个统一的11卷积核卷积,然后连接3个33的卷积,这3个卷积操作只将前面11卷积结果中的一部分作为自己的输入(这里是将1/3channel作为每个33卷积的输入)。再从Figure3延伸就得到Figure4,也就是33卷积的个数和11卷积的输出channel个数一样,每个3*3卷积都是和1个输入chuannel做卷积。

    在搭建GoogLeNet网络时,我们一般采用堆叠Inception的形式,同理在搭建由Extreme Inception构成的网络的时候也是采用堆叠的方式,论文中将这种形式的网络结构叫做Xception。

    如果你看过深度可分离卷积的话你就会发现它和Xception几乎是等价的,区别之一就是先计算Pointwise卷积和先计算Depthwise的卷积的区别。

    在MobileNet v2中,我们指出bottleneck的最后一层 1*1 卷积核为线性激活时能够更有助于减少信息损耗,这也就是Xception和深度可分离卷积(准确说是MobileNet v2)的第二个不同点。

    Xception

    小结
    Xception的结构和MobileNet非常像,两个算法的提出时间近似,不存在谁抄袭谁的问题。他们从不同的角度揭示了深度可分离卷积的强大作用,MobileNet的思路是通过将普通 3*3 卷积拆分的形式来减少参数数量,而Xception是通过对Inception的充分解耦来完成的。

    参考链接:
    Xception详解
    Xception翻译

    相关文章

      网友评论

          本文标题:Xception

          本文链接:https://www.haomeiwen.com/subject/qojjrltx.html