Xception 深度可分离卷积

François Chollet.Xception: Deep Learning with Depthwise Separable Convolutions, CVPR 2017.
https://arxiv.org/abs/1610.02357

主要特点

  • Xception: Extreme version of Inception
  • Xception是google继Inception后提出的对Inception v3的另一种改进,主要是采用深度可分离卷积(depthwise separable convolution)来替换原来Inception v3中的卷积操作。
  • 在基本不增加网络复杂度的前提下提高了模型的效果。但网络复杂度没有大幅降低。原因是作者加宽了网络 ,使得参数数量和Inception v3差不多。因此Xception主要目的不在于模型压缩,而是提高性能。

深度可分离卷积(depthwise separable convolution)

把一般的卷积分成两个步骤:原始的深度可分离卷积是沿深度卷积,然后接一个逐点卷积
1、沿深度卷积(depthwise convolution)是通道方式nxn空间卷积,假设在上图中,有5个通道,那么将有5个nxn个空间卷积。
2、逐点卷积( pointwise convolution )实际上是改变维度的1x1卷积
在这里插入图片描述

  • 一个卷积层尝试学习一个在3D空间中的滤波器,具有2个空间维度(宽度和高度)和1个通道维度;因此,单个卷积核的任务是同时映射跨通道相关和空间相关
  • Inception模块背后的这个想法是通过将其明确地分解为一系列独立查看跨通道相关性和空间相关性的操作,使这个过程更容易,更有效。更准确地说,典型的Inception模块首先通过一组1x1卷积查看跨通道相关性,将输入数据映射到小于原始输入空间的3或4个独立空间,然后通过常规的3x3或5x5卷积映射这些较小3D空间中的所有相关性

实际上, Inception背后的基本假设是跨通道相关性和空间相关性尽量解耦,最好不要将它们联合起来映射。
(In effect, the fundamental hypothesis behind Inception is that cross-channel correlations and spatial correlations are sufficiently decoupled that it is preferable not to map them jointly.)
而Xception做得就是让跨通道相关性和空间相关性充分解耦。

简化版的Inception(右图):去掉了pool层
在这里插入图片描述
简化版的Inception得到了下面的等效模型:
先经过1x1卷积,然后分别用三个3x3卷积分别处理1x1卷积 1/3 的输出通道
在这里插入图片描述
而一个极端的版本就是1x1卷积输出n个通道,就用n个3x3卷积分别处理每个通道
在这里插入图片描述

修改版的深度可分离卷积

作者使用修改版的深度可分离卷积于Xception中,
在这里插入图片描述

  • 修改的深度可分离卷积是首先是逐点卷积,然后接着沿深度卷积。
  • 这种修改的动机来自Inception-v3中的Inception模块,即在任何n x n个空间卷积(空间相关)之前首先完成1 x1卷积(通道相关)。这里n =3,因为在Inception-v3中使用了3x3空间卷积。

两个小的差异:

  • 1,操作顺序:如上所述,原始深度可分离卷积首先执行一个通道空间卷积,然后执行1x1卷积;而修改的深度可分离卷积首先执行1x1卷积,然后执行通道空间卷积。这被认为是不重要的,因为当它在堆叠使用时,在链接模块的开始和结束处仅出现小的差异。
  • 2,非线性的存在/不存在:在Inception中,两个操作之后都是ReLU非线性,但是深度可分离卷积通常在线性的情况下实现。在Xception中,修改的深度可分离卷积,没有中间的 ReLU引起的非线性。

在这里插入图片描述

  • 在左图中,滤波器同时考虑空间维度(每个2x2彩色正方形)和交叉通道或"深度"维度(四个正方形的堆叠) .在图像的输入层,这相当于一个卷积滤波器同时在所有三个RGB通道上观察 2x2像素块。(空间维度:一个卷积核对应一个特征图,通道(深度)维度:多个卷积核对应多个通道)
  • 在Inception,开始略微分开两者,使用1x1卷积将原始输入映射到几个单独的较小输入空间中,并且从每个输入空间中使用不同类型的滤波器来转换那些较小的3D数据块.
  • Xception更进一步。它分别映射每个输出通道的空间相关性,然后执行1x1深度卷积以捕获通道相关性。
Xception与一般的卷积滤波器区别是:一般的卷积滤波器同时观察多个通道(空间和通道同时完成),而Xception先完成空间映射,再用1x1进行通道相关性。

Xception架构

  • 作者提出了一种完全基于深度可分离卷积层的卷积神经网络架构。
  • 实际上,作者做出以下假设:卷积神经网络的特征图中的跨通道相关性和空间相关性的映射可以完全解耦。因为这个假设是Inception架构背后的假设的更强版本,所以将提出的架构 Xception命名为"Extreme Inception"

在这里插入图片描述

性能分析

精度对比

在lmageNet上, Xception的准确率相比Inception V3有一定的提升,并比ResNet-152或VGG-16有较多提升。
在这里插入图片描述

收敛速度对比

在lmageNet和JFT上的训练过程都显示, Xception在最终准确率更高的同时,收敛过程也比Inception V3更快。
在这里插入图片描述

参数个数对比

和Inception V3相比, Xception的参数量有所下降,而训练时的迭代速度也没有明显变慢。
在这里插入图片描述
在Xception中加入的类似ResNet的残差连接机制也显著加快了Xception的收敛过程并获得了显著更高的准确率.
在这里插入图片描述

  • 值得注意的是,在Xception中,用于学习通道间相关性的1x1的卷积和用于学习空间相关性的3x3的卷积之间, 不加入任何非线性单元相比于加入ReLU或ELU激活函数将会带来更快的收敛过程和更高的准确率。
  • 对于浅层结构(例如,深度可分离卷积的1通道深度特征空间) ,非线性激活可能由于信息丢失而变得有害。
    在这里插入图片描述
    在这里插入图片描述
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值