深度可分离网络-Xception

注释

  • 本系列《论文翻译》仅代表个人观点
  • 目的提高英文阅读能力
  • 错误之处较多,欢迎读者修正,在此感谢

1. 摘要

  我们提出了一种关于inception的解释,其介于正常卷积网络和深度可分离卷积之间(先进行分离卷积然后进行点卷积)。就此而论,深度可分离卷积可以被视为inception最大质量的跨越。这项工作受到Inception的启发,将会成为一个新网络架构的基准,同时Inception的卷积网络也将被替代。我们将此网络命名为Xception,在ImageNet数据集上略微强于Inception V3,当在大数据集上明显的超过Inception V3。当Xception和Inception V3具有相同的参数,表现能力不会提高,但是效率会提升。

翻译太烂,自己都没看懂

2. 介绍

  今年来卷积神经网络作为计算机视觉的主要算法,同时开发设计他们的结构作为主要注意点。卷积神经网络的设计可以追溯到LeNet模型,进行简单的卷积堆叠提取特征和通过max-pooling对空间进行降采样。2012年,这种思想结构被提炼到AlexNet网络中,使用大量的max-pooling结构,对网络的每一层进行提取,获得大量的特征。由于ImageNet竞赛的驱动,随之而来的是网络越来越深的趋势。最著名的就是VGG网络等

  此时出现一种Inception新的架构,在2014年被发明称之为GoogLeNet,之后陆续提升精确的升级到了V2、V3等版本。自从Inception架构的提出,其成为在ImageNet等数据集上最好的网络系列之一。

  Inception系列是由Inception的基础模块构成,其中包括几个版本。如下图一所示为标准形式,同时也出现在Inception V3之中。这与早期的VGG网络有所不同,他是由渐渐的卷积网络堆叠而成。

  然而Inception的结构和基本卷积类似(卷积特征提取结构),从经验上来看,此结构可以通过很少的参数获得大量的特征。他们如何工作,和传统卷积有何区别?

3. Inception假设

  一个卷积层可以学习三维空间的滤波器权重,通过一个二维空间尺寸(长和宽)+一个通道空间。因此,一个单卷积核的任务可以同时映射跨通道的相关性和空间的相关性。

  Inception模型的背后想法是使过程更简单、更高效的分解一系列独立的夸通道相关性和夸空间相关性操作。更精确的说,典型的Inception结构首先通过1×1的卷积研究夸通道的相关性,映射输入数据到3-4个相互独立的空间,和输入类似,之后通过规则的3×3或5×5卷积将所有相关性映射进3D空间之中。事实上,Inception模块的假设是跨通道的相关性和空间相关性相关分离,而不是倾向于将他们联合。

  考虑一个简化版本的Inception模块,仅使用一种大小的卷积同时不包括pooling跳跃层。Inception模块可以被重新描述成一个大的1×1卷积+空间卷积,操作于输出通道没有重叠的段落。这个表达自然的出现以下几个问题:这个假设比之前的Inception的假设更合理吗?跨通道相关性和空间相关性可以完全分离吗?

4. 卷积和分离卷积之间的联系

  Inception模块是一个极其伟大的创作,其基于一个很强的假设,第一次使用1×1卷积去映射不同的通道,同时分离映射空间联系在每一个输出通道上。具体详见图4所示。我们注意到这个很强的模块和深度可分离卷积基本一致,模块被使用再2014年的网络中,自从被包含在TF框架之中就更受欢迎了。

  一个深度可分离卷积,在深度学习框架中通常被称为可分离卷积,其实有深度卷积组成,空间卷积相互独立的执行,随后是点卷积操作,通过深度卷积将输出映射到一个新的通道空间。这也是和空间卷积相区别,所以在图像处理领域通常称为深度可分离卷积

  Inception模块和深度可分离卷积模块有两个很小的区别:

  • 操作顺序不同:深度可分离卷积通常是先进行空间卷积之后再进行1×1卷积,而Inception则相反。
  • 是否纯在非线性连接。在Inception中,两个操作之后都要进行非线性的RELU操作,然而Xception通常没有非线性连接。

  我们认为第一个区别不是非常重要,尤其是因为这些操作被应用于一些堆叠操作。第二个区别非常重要,我们再实验部分进行了研究(详细见图10)

  我们注意到一些Inception的中间概述,位于标准Inception模块和深度可分离卷积之间。事实上,在正常卷积和可分离卷积之间存在一个可分离的范围,一些独立通道的分割进行参数化,用于执行空间卷积。正常卷积(1×1卷积)在一个极端的范围,用于联系单个段落的情况。可分离卷积作用于其他极端情况,每个通道的段落。Inception模块位于之间,分割几百个通道到3-4个段落。这些中间的属性似乎还未被探索。

  在进行这个讨论之后,我们建议使用深度可分离卷积替代Inception模块,通过堆叠可分离卷积模块的性能将在原始网络之上。通过TF中的可分离卷积工具进行实现。在下文中,我们提出一个基于以上探索的卷积网络架构,和Inception V3参数数量相等,同时在两个大型图像分类任务上进行对比表现。

4. 先验工作

  当前的工作很大程度上依赖先前的努力:

就是一些之前的网络架构,VGG、Inception-V1-V2-V3、ResNet等

5. Xception 架构

网络基础架构在图4所示,后面基本都是一些分析和前面说的一样。

作者所用网络如下图5所示,和Inception V3参数相同

6. 个人理解

  本文其实就两个观点,第一个是为什么Inception有作用。第二个是我们更进一步放大第一个问题。以下根据个人理解说明这两个问题。

  • 针对第一个问题为什么Inception有作用
说明 正常网络 Inception
输入 100×100×50 100×100×50
卷积 50×3×3×25 (block1)+(block2)+(block3)
参数 nums nums
输出 100×100×25 100×100×25

正常卷积所使用的的卷积大小完全相同==>看到的特征大小尺度)基本类似(相同)

Inception使用的卷积核不同==>看到的特征大小尺度)基本有差异(不相同)

正常卷积全部通道都使用,不存在夸空间问题(卷积只是考虑空间联系,未跨空间)

Inception使用一张图三个/四个不同的卷积处理,最后进行叠加,已经进行了跨空间。

  • 针对第二个问题优点继续放大

文中对两个优点进行讨论:

  1. 跨通道问题(文中已经说明这个优点对结果不明显,详细见原文1.2节)

  2. 在跨统计之后不接非线性RELU(文中说至关重要,详细见原文1.2节)

个人认为直接连接RELU破坏了跨空间之间的联系点,需要再进行卷积操作之后方可连接RELU。

第一个问题肯定是有作用的,只不过连接的太多可能作用不明显。

单词汇总

  • intermediate:中介

  • inspired by: 由。。。。启发(受到。。。鼓舞)

  • outperform:超过

  • emerged:出现,暴露

  • sub-sampling:次采样(下采样==upSampling)

  • what follow was:随之而来

  • At this point:此时

  • canonical:标准

  • This is a departure from:与。。。。不同

  • conceptually:概念(concept)

  • come afte:紧随

  • This idea behind:背后的想法

  • decouple:解耦合(couple夫妇)

  • reformulate:再叙述(formulate叙述)

  • segment:分割、段落、分段

  • cornerstone:基石、基础

  • continuum:连接(continue)

  • identical:统一

  • inclusion:包含(include)

  • perform independently:独立执行

  • projecting:突出

  • minor:微小

  • implement:执行

  • whereas:然而

  • presence:存在(present)

  • absence:缺陷、缺少(absent)

  • investigate:调查、研究

  • spectrum:范围、光谱

  • in what follows:在下文

  • present:当前、提出

《论文翻译》Xception的更多相关文章

  1. 深度学习论文翻译解析(六):MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Appliications

    论文标题:MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Appliications 论文作者:Andrew ...

  2. 深度学习论文翻译解析(十七):MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

    论文标题:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 论文作者:Andrew ...

  3. 深度学习论文翻译解析(十八):MobileNetV2: Inverted Residuals and Linear Bottlenecks

    论文标题:MobileNetV2: Inverted Residuals and Linear Bottlenecks 论文作者:Mark Sandler Andrew Howard Menglong ...

  4. 深度学习论文翻译解析(十九):Searching for MobileNetV3

    论文标题:Searching for MobileNetV3 论文作者:Andrew Howard, Mark Sandler, Grace Chu, Liang-Chieh Chen, Bo Che ...

  5. [原创]Faster R-CNN论文翻译

    Faster R-CNN论文翻译   Faster R-CNN是互怼完了的好基友一起合作出来的巅峰之作,本文翻译的比例比较小,主要因为本paper是前述paper的一个简单改进,方法清晰,想法自然.什 ...

  6. R-CNN论文翻译

    R-CNN论文翻译 Rich feature hierarchies for accurate object detection and semantic segmentation 用于精确物体定位和 ...

  7. SSD: Single Shot MultiBoxDetector英文论文翻译

    SSD英文论文翻译 SSD: Single Shot MultiBoxDetector 2017.12.08    摘要:我们提出了一种使用单个深层神经网络检测图像中对象的方法.我们的方法,名为SSD ...

  8. R-FCN论文翻译

    R-FCN论文翻译 R-FCN: Object Detection viaRegion-based Fully Convolutional Networks 2018.2.6   论文地址:R-FCN ...

  9. 深度学习论文翻译解析(四):Faster R-CNN: Down the rabbit hole of modern object detection

    论文标题:Faster R-CNN: Down the rabbit hole of modern object detection 论文作者:Zhi Tian , Weilin Huang, Ton ...

随机推荐

  1. DO、VO、DTO 区别

    DTO:数据传输对象,主要用于外部接口参数传递封装,接口与接口进行传递使用. VO:视图对象,主要用于给前端返回页面参数使用. DO:数据对象,主要用于数据库层传递. DTO转DO:接口接收参数将参数 ...

  2. sqlserver2008+日志收缩sql语句命令

    USE[master] GO ALTER DATABASE 数据库 SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE 数据库 SET RECOVER ...

  3. 解读生命密码的基本手段 ——DNA测序技术的前世今生

    解读生命密码的基本手段 ——DNA测序技术的前世今生 任鲁风  于军 (中国科学院基因组科学及信息重点实验室,北京基因组研究所) DNA(脱氧核糖核酸)和RNA(核糖核酸)是生命体的两种最基本组成物质 ...

  4. 数据结构之队列(queue)

    队列介绍 1.队列是一个有序列表,可以用数组或是链表来实现. 2.遵循先入先出的原则.即:先存入队列的数据,要先取出.后存入的要后取出. 应用场景 比如某某银行叫号系统: 数组模拟队列 队列本身是有序 ...

  5. jquery sortable的拖动方法示例详解1

    转自:https://www.jb51.net/article/45803.htm 所有的事件回调函数都有两个参数:event和ui,浏览器自有event对象,和经过封装的ui对象 ui.helper ...

  6. 6.JUC之ReentrantReadWriteLock

    一.概述: Java纪年1.5年,ReentrantReadWriteLock诞生于JUC,此后,国人一般称它为读写锁.人如其名,他就是一个可重入锁,同时他还是一个读写锁 a)跟ReentrantLo ...

  7. pandas(四)

    合并  merge,concat,join pd.merge(df1,df2,on=‘列名’,how='') df1.join(df2,how='outer',on='') pd.concat([df ...

  8. Android笔记(二十三) Android中的ProgressBar(进度条)

    圆形进度条和水平进度条 进度条也是UI界面一种非常实用的组件,通常用于向用户显示某个耗时操作完成的百分比,进度条可以动态的显示进度,避免长时间的执行某个耗时操作时,让用户感觉程序失去了相应,从而更好的 ...

  9. 【OF框架】在Visual Studio中启用Docker支持,编译生成,并在容器运行项目

    准备 本地已经安装Docker 一.添加Docker支持 第一步:查看本地Docker服务状态 第二步:项目添加Docker支持 第三步:选择Linux容器 第四步:点击启动 第五步:确认Docker ...

  10. OAuth2在微服务架构中的应用

    首先是为什么要在微服务场景使用OAuth2,这是因为使用了OAuth2后,就能向第三方系统提供授权. 其次是如何使用,见下图: 在微服务架构中使用OAuth2,有几个问题需要我们思考: 1. toke ...