深度学习之基础模型-Xception
来源:互联网 发布:流星网络电视下载安装 编辑:程序博客网 时间:2024/06/01 13:28
We present an interpretation of Inception modules in convolutional neural networks as being an intermediate step in-between regular convolution and the depth wise separable convolution operation(a depth wise convolution followed by a point wise convolution).
思想
基于Inception系列网络结构的基础上,结合depthwise separable convolution
- 假设:
- 卷积在3个维度上进行学习,因此卷积需要既要考虑空间相关性,又要考虑channel相关性:
- spatial dimensions(width and height)
- channel dimension
- corss-channel correlations和spatial correlations是充分解耦合的,没有必要将他们叠加在一起
注:关于空间width和height解耦合可以参考Inception V3论文
- 卷积在3个维度上进行学习,因此卷积需要既要考虑空间相关性,又要考虑channel相关性:
思想:将Inception modul拆分成一系列操作,独立处理spatial-correlations和cross-channel correlations,网络处理起来更加简单有效
- 首先通过‘1x1’卷积,将输入数据拆分cross-channel相关性,拆分成3或者4组独立的空间
- 然后,通过‘3x3’或者‘5x5’卷积核映射到更小的空间上去
Q:为什么Inception module可以用depthwise separable convolution替代?
首先,对于原始的Inception模块,如Inception V3,结构如下:
模块中,基本上先通过一系列1x1卷积降维,然后再通过3x3卷积提取特征。如果我们将上述结构再进行简化,可以得到如下简化结构:
从上图中我们可以看出,1x1卷积将输入数据的channel维度上进行了拆解,再输送到空间卷积3x3,改写成下图:
可以考虑一种更加极端的情况:3x3卷积在1x1卷积后的每一个通道上运行,则有:
我们可以从上图上,看到该模块将输入数据在channel维度上进行解耦合,该模块称之为‘extreme’version of Inception module,这个思想和depthwise separable convolution非常相似。
- 操作顺序不同:
- depth wise separable convolutions:先进行channel-wise 空间卷积,然后1x1卷积进行融合
- Inception:先进行1x1卷积,然后进行channel-wise空间卷积
- 非线性激励函数:
- depthwise separable convolution:两个操作之间没有激励函数
- Inception:两个操作之间,添加了ReLU非线性激励
但是,作者介绍说,上述两个不同点中,第一个并不是太重要,原因在与整个结构模型是Inception模块不断叠加的,从而改变一下结构中的模块划分顺序,两者基本上就等价了。而对于第二点就比较重要了。基本上,整个网络结构就是把Inception module换成了depthwise separable convlution,但是里面的深层次含义却很重要。
网络结构
整个网络结构,不仅借鉴了depthwise separable convolution的思想,也结合了ResNet的思想,最后作者也比较了ResNet在其中的作用。结构如下:
说明:
- 整个网络结构具有14个模块,36个卷积
- 残差连接
- 最后采用logistic regression
效果分析
- 实验参数:
注:ImageNet数据集为单标签,JFT数据集为多标签
- 正则化
注:使用tensorflow, 60块NVIDIA K80显卡
实验1:
与InceptionV3对比
参数个数
注:两者在参数个数和速度上相差不大- ImageNet上的精度
注:Xception的效果最好 - 收敛速度
注:Xception收敛速度更快
实验2:
full-connected layer的影响
- 在JFT上的效果
- with fully-connected layers
- without fully-connected layers
注:相比较与ImageNet数据集,Xception在JFT数据集上的效果更加明显
实验3:
残差连接的作用
- 带有残差连接的网络不仅收敛更加快,效果也更加好
注:作者对这种对比结果也提出了质疑,这种效果仅针对这个特殊的网络结构
实验4:
激活函数的作用:在depthwise与pointwise之间使用不同的激活函数
- 不带激活函数的网络结构,效果更好
注:和《InceptionV3》中的结论相反,可能和特征空间的深度有关- 网络特征比较深的时候,非线性激活有帮助
- 网络结构比较浅的时候,非线性激活反而有害
参考文献
https://arxiv.org/pdf/1610.02357.pdf
http://blog.csdn.net/KangRoger/article/details/69929915
https://www.leiphone.com/news/201708/KGJYBHXPwsRYMhWw.html
http://blog.csdn.net/tangzy_/article/details/53672620
- 深度学习之基础模型-Xception
- 深度学习之基础模型---AlexNet
- 深度学习之基础模型-NIN
- 深度学习之基础模型-VGG
- 深度学习之基础模型—resNet
- 深度学习之基础模型-Inception-V3
- 深度学习之基础模型-mobileNet
- 深度学习之基础模型-FractalNet
- 深度学习之基础模型-ShuffleNet
- 深度学习之基础模型-DenseNet
- 深度学习之基础模型-PolyNet
- 深度学习之基础模型-SEP-Nets
- 深度学习之基础模型-总结
- CVPR 2017精彩论文解读:Xception深度可分离卷积模型
- 深度学习之基础模型—InceptionV1(GoogLeNet)
- 深度学习之基础模型-Inception-V2(BN)
- 深度学习之LeNet模型
- 深度学习之AlexNet模型
- tp5分页去除重复值
- Ubuntu上交叉编译valgrind for Android 4.4的过程与注意事项
- 【C++】去除排序数组中重复的元素
- appium+python学习笔记之使用HTMLTestRunner.py生成测试报告
- Sublime Text3 3143 注册码,亲测可用!
- 深度学习之基础模型-Xception
- 微信小程序在开发工具预览的圆角模糊效果在ios手机中不能使用
- JAVA集合(容器)类知识点汇总
- HTTP协议进阶之缓存
- 如何利用C++的time头文件获取系统时间
- Android 下载文件通知栏显示进度条
- Minimum Transport Cost HDU
- Python 多线程复习
- Java 关于含有继承类的成员初始化过程讲解