Xception: DeepLearning with Depthwise Separable Convolutions2017Google【论文理解】

前言

Google对之前的 Inception module 进行改进,使用 depthwise separable (深度可分离卷积)替代。新的网络结构称为 Xception,新的网络在参数量上跟Inception V3差不多,但是在ImageNet上的分类准确率要比Inception V3高一点,在The JFT dataset(350百万的图像,17000类别)上要比Inception V3优秀很多。

ImageNet:
在这里插入图片描述
JFT :
在这里插入图片描述

Inception module 分析

首先从不同的角度理解一下卷积操作: 一个卷积层的任务应该是学习在3D空间中的特征,其中3D为【width, height, channel 】。那么一个卷积核的任务也是同时学习不同CHANNEL的关系和图像空间【 width, hight 】的关系。 理解如下图所示:在这里插入图片描述
卷积核同时学习结合不同通道之间的信息和单个卷积图上的空间信息。
为了让这个过程更加的明显和有效,我们可以将学习不同通道之间的信息和学习特征图空间信息分开来进行。简单的实现,首先使用11的卷积学习不同channel之间的关系,使用3到4个分支进行,分别将特征映射到不同的空间中,再分别使用3或者5的卷积。如下图常规的Inception module(Inception V3):在这里插入图片描述
实际上,Inception背后的基本假设是,跨渠道相关性和空间相关性得到充分解耦,最好不要将它们联合起来。
考虑一种简单的情况,只是用一种大小的卷积如3
3,不包含池化,如下图:
在这里插入图片描述
这种结果简单的如下图所示:
在这里插入图片描述
一种极端版本的Inception module,如下图:
在这里插入图片描述
可以观察到这种方式与可分离卷积的模式是等价的!!
再复习一下可分离卷积操作:
两种卷积核:
在这里插入图片描述
假设输入为3通道即 M = 3 M=3 ,要求输出为5通道,即 N = 5 N=5 ,则mobilenet中的深度可分离卷积操作如下:
在这里插入图片描述
不同点主要有亮点:

  1. mobilenet中的过程与 Iception中的过程正好相反。Iception中先进行1*1的卷积操作。
  2. 在 iception中两个操作之后都有Relu而,mobilenet中没有Relu。(重要)
    使用depthwise separable convolutions替换掉Inception modules,诞生Xception!!

Xception的结构设计

一共有36个卷积层,如下图:
在这里插入图片描述
FC层是一个可选择项。

有关1*1卷积之后的激活层

在这里插入图片描述
发现,不添加Relu相比加了要好一点。相关原因现在也只不过是些猜测。

猜你喜欢

转载自blog.csdn.net/m0_37477175/article/details/84236744