《Xception: Deep Learning with Depthwise Separable Convolutios》笔记
来源:互联网 发布:科怀莱昂纳德体测数据 编辑:程序博客网 时间:2024/06/03 13:57
- 介绍
- Inception假设
- 卷积和separable卷积之间的连续
- Xception结构
- 实验评估
- 优化方法配置
- 正则化
- 训练工具
- 和Inception V3对比
- 分类对比
- 模型大小和速度
- residual connections影响
- pointwise卷积后中间激活的影响
- 介绍
介绍
文章链接。
常规卷积网络是CONV->POOL形式。通过CONV学习特征,通过POOL下采样,使网络在不同尺度空间都能提取特征。
Inception结构最初在GoogLeNet出现(Inception V1),随后有了Inception V2、Inception V3和Inception-ResNet。
Inception-style的结构有很多版本,下面是Inception V3版本中的结构:
Inception模型,是由连续多个Inception结构组成,就行VGG-style网络一样,由连续多个卷积组成。
Inception模型和卷积在概念上类似,都是卷积提取特征;但是Inception结构参数更少,提取的特征更加丰富。Inception结构工作原理是什么,和常规卷积有什么不同?Inception之后,设计网络的侧脸又是什么?
Inception假设
一个卷积层的卷积核是三个维度的,空间上width和height,还有一个channel维度。因此一个卷积层,既考虑映射cross-channel相关性,又考虑spatial相关性。
Inception背后的思想是通过分开独立处理cross-channel和spatial的相关性,使得处理过程更加简单高效。准确来说,Inception结构首先通过1x1卷积“看”cross-channel相关性,把输入映射到3或4个分开的空间(小于原输入空间),之后通过3x3或5x5卷积再映射到更小的3维空间,如上图所示。实际上,Inception基本的假设就是通过解耦和cross-channel和spatial相关性。
是否可以进一步假设cross-channel和spatial之间的相关性可以完全分开处理?
卷积和separable卷积之间的连续
基于上面进一步假设,有了“extreme”笨笨的Inception结构:
上面这种结构,几乎等同于depthwise separable卷积。depthwise separable卷积又叫做“separable卷积”,是通过处理每一个channel上的空间卷积,之后再经过pointwise卷积(例如1x1卷积),在一个新的channel空间得到输出。
“extreme”版本的Inception和depthwise separable卷积两点主要不同:
操作顺序:depthwise separable卷积首先channel-wise spatial卷积,之后1x1卷积;而Inception首先1x1卷积。
第一个操作后是否有非线性。Inception中,第一步和第二部操作都有非线性(ReLU);而depthwise separable卷积后面通常没有非线性操作。
上面两点不同种,第一点不同不太重要,第二点不同比较重要。
输入的每一个channel空间(width和height)对应一个“频谱”。1x1卷积把这些“频谱”合成一个;而depthwise separable卷积对每一个“频谱”做卷积。Inception结构把几百个channel分成3或4个。
基于以上观察,可以把Inception结构替换为depthwise separable卷积。
Xception结构
基于cross-channel和spatial相关性可以完全解耦和,作者提出一个新的卷积网络结构。这个假设是基于Inception结构的强假设,名字叫做“Extreme Inception”,简称“Xception”。结构如下:
Xception有36个卷积层,包含14个模块,线性Residual connection在这14个模块中。在图像分类中,最后一层是逻辑回归;可以在逻辑回归前面一层加上全连接层。
实验评估
对比Xception和Inception V3,因为它们两个参数个数接近。对比它们在图片分类上的效果。数据集一个是单标签的ImageNet,另一个是多标签的JFT。
优化方法配置
On ImageNet:
– Optimizer: SGD
– Momentum: 0.9
– Initial learning rate: 0.045
– Learning rate decay: decay of rate 0.94 every 2 epochsOn JFT:
– Optimizer: RMSprop
– Momentum: 0.9
– Initial learning rate: 0.001
– Learning rate decay: decay of rate 0.9 every 3,000,000 samples
正则化
Weight decay
Inception V3使用L2正则化,weight decay rate为4e-5(在ImageNet上tune得到的)。Xception使用1e-5。Dropout
在逻辑回归前加上dropout层,dropout rate为0.5.Auxiliary loss tower
Inception V3包含一个可选的auxiliary tower,在反向传播时当做正则化机制。为了简化,Xception没有包含。
训练工具
使用TensorFlow,60块NVIDIA K80 GPUs。
ImageNet使用同步梯度下降,训练了3天。
JFT使用异步梯度下降,训练了近一个月,并没有完全收敛。
和Inception V3对比
分类对比
ImageNet,使用validation set。Single model, single crop。
JFT对比,使用模型为迭代30,000,000次的模型:
Xception架构在JFT数据集性能提升明显高于在ImageNet数据集。可能是因为Inception V3设计时专注于ImageNet。
模型大小和速度
使用K80 GPU,同步梯度下降。
两个模型参数个数类似。Xception速度稍慢于Inception V3。未来需要在depthwise卷积上做些优化。
residual connections影响
Residual connection对收敛速度和精度都有帮助。需要注意,两者训练时都是用同一配置,对于不使用residual connection,调优配置可能得到更好的效果。
pointwise卷积后中间激活的影响
在depthwise和pointwise卷积之间使用不同激活函数
上面结果,不使用非线性激活性能好于使用非线性激活。这和《Rethinking the inception architecture for computer vision》结论相反。这可能和特征空间深度相关:对于深的特征空间(Inception中的),非线性有帮助;对于浅的(例如depthwise卷积,1-channel特征空间)反而有负面作用。
- 《Xception: Deep Learning with Depthwise Separable Convolutios》笔记
- Xception Deep Learning with Depthwise Separable Couvolutions
- [Paper note] Xception: Deep Learning with Depthwise Separable Convolutions
- Xception: Deep Learning with Depthwise Separable Convolutions个人理解
- 轻量化网络:Xception Deep Learning with Depthwise Separable Convolutions
- Inception系列4_Xception: Deep Learning with Depthwise Separable Convolutions
- NLP with Deep Learning Lecture 2 笔记
- Deep Learning with Torch
- deep learning with R
- 【deep learning学习笔记】Recommending music on Spotify with deep learning
- Stanford CS224n: Natural Language Processing with Deep Learning 课程笔记
- Learning Deep Binary Descriptor with Multi-Quantization 阅读笔记
- 【Deep Learning】笔记:Tips for deep learning
- Deep Learning algorithms with TensorFlow
- Deep learning笔记
- Deep Learning笔记1
- deep learning 学习笔记
- Bengio <Deep Learning> 笔记
- netty学习笔记(2)_tcp拆包/粘包问题
- DP经典应用(五)硬币问题
- Rigidbody
- Spring框架学习(3):spring属性配置的细节
- jQuery学习笔记之DOM节点操作
- 《Xception: Deep Learning with Depthwise Separable Convolutios》笔记
- 2017年蓝桥杯——小题总结
- 即时搜索的input和propertychange方法的优点
- 2017回顾过往(分享近期读的几本书)
- 自定义--随机数(4位)
- 文章标题
- LeetCode 344. Reverse String
- jsp禁止中文输入
- ipvs负载均衡(四)推荐个原理网站