基于深度学习的图像识别模型发展 (7)

基于深度学习的图像识别模型发展

Xception

Xception 是 Google 继 Inception 后提出的对 Inception-v3 的另一种改进。

作者认为,通道之间的相关性 与 空间相关性 最好要分开处理。采用 Separable Convolution(极致的 Inception 模块)来替换原来 Inception-v3中的卷积操作。

在 Inception 中,特征可以通过 1×1卷积,3×3卷积,5×5 卷积,pooling 等进行提取,Inception 结构将特征类型的选择留给网络自己训练,也就是将一个输入同时输给几种提取特征方式,然后做 concat 。Inception-v3的结构图如下:

基于深度学习的图像识别模型发展

 

对 Inception-v3 进行简化,去除 Inception-v3 中的 avg pool 后,输入的下一步操作就都是 1×1卷积:

基于深度学习的图像识别模型发展

 

提取 1×11×11×1 卷积的公共部分:

基于深度学习的图像识别模型发展

Xception(极致的 Inception):先进行普通卷积操作,再对 1×11×11×1 卷积后的每个channel分别进行 3×33×33×3 卷积操作,最后将结果 concat:

基于深度学习的图像识别模型发展

深度可分离卷积 Depthwise Separable Convolution

 传统的卷积实现过程---->Depthwise Separable Convolution 的实现过程:

基于深度学习的图像识别模型发展

--->

基于深度学习的图像识别模型发展

Depthwise Separable Convolution 与 极致的 Inception 区别:

极致的 Inception:

第一步:普通 1×11×11×1 卷积。

第二步:对 1×11×11×1 卷积结果的每个 channel,分别进行 3×33×33×3 卷积操作,并将结果 concat。

Depthwise Separable Convolution:

第一步:Depthwise 卷积,对输入的每个channel,分别进行 3×33×33×3 卷积操作,并将结果 concat。

第二步:Pointwise 卷积,对 Depthwise 卷积中的 concat 结果,进行 1×11×11×1 卷积操作。

两种操作的循序不一致:Inception 先进行 1×11×11×1 卷积,再进行 3×33×33×3 卷积;Depthwise Separable Convolution 先进行 3×33×33×3 卷积,再进行 1×11×11×1 卷积。(作者认为这个差异并没有大的影响)

作者发现,在“极致的 Inception”模块中,用于学习空间相关性的 3×33×33×3 的卷积,和用于学习通道间相关性的 1×11×11×1 卷积之间,不使用非线性激活函数时,收敛过程更快、准确率更高:

DenseNet

现在我们有三种方式来处理不同卷积层之间的特征图:

Standard Connectivity

Residual/Skip Connectivity

Densenet: Dense Connectivity

基于深度学习的图像识别模型发展

标准连接

基于深度学习的图像识别模型发展

Residual/Skip 连接

基于深度学习的图像识别模型发展

 

DenseNet:密集连接性

  DenseNet的思想是某一层的输入是其前面每一层的输出,即将不同层得到的特征图进行融合作为某一层的输入,这样CNN的每一层就可以得到前面不同层提取的特征(浅层位置等基础信息,深层语义信息),这样网络的表达能力会更好。图示如下:

  如果仅仅如之前那么设计的话,很容易出现梯度爆炸,所以:用之前提到的1∗11*11∗1卷积!bottleneck降维

下图是Dense Blocks的结构图,在每个Dense Blocks内部,每层的feature map的大小是一致的(方便特征融合),不同Dense Blocks之间有Pooling层用于减小feature map的大小。

总结

基础框架:Lenet、Alexnet、VGG、Prelu

Inception系列(网络):从Inception v1 到v4 以及Inception-Resnet系列

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwygfg.html