【论文学习记录】Xception: Deep Learning with Depthwise Separable Convolutions

版权声明:本文为博主原创文章,未经作者允许请勿转载。 https://blog.csdn.net/heiheiya https://blog.csdn.net/heiheiya/article/details/88688047

Xception网络是Google与2017年发表的新的网络结构,是对Inception V3的进一步改进,也是现在用的比较多的基础网络了。论文原文《Xception: Deep Learning with Depthwise Separable Convolutions》。

一个标准的Inception V3模块的结构如下:

再能够简化一下:

然后如果先对输入统一做1x1的conv,然后再划分不同的channels做3x3的conv,那么就变成:

极端情况下,对1x1 conv的channels不可再分了,即对每个channel做3x3的conv:

这种情况就等同于depthwise separable convolution。不同的只是:

1. 顺序不同:depthwise separable convolution是先做channel-wise spatial convolution在再做1x1的conv,而Xception是相反的。

2. Xception每个操作的后面都跟了ReLU非线性激活,而depthwise separable convolution是没有的。

一个完整的Xception网络结构如下:

由36个卷积层组成网络的特征提取基础,36个卷积层被分成14个模块,除第一个和最后一个外,模块间有线性残差连接。 

作者比较的Xception和Inception V3,因为二者具有相同量级的参数量,它们在性能上的表现不同不是受网络容量的影响。作者在两个数据集上做了实验:1000类别的单标签数据集ImageNet和17000类别的多标签数据集JFT。

在这两个数据集上用了不同的优化配置:

ImageNet:

-Optimizer:SGD

-Momentum:0.9

-Initial learning rate:0.045

-Learning rate decay:decay of rate 0.94 every 2 epochs

JFT:

-Optimizer:RMSprop

-Momentum:0.9

-Initial learning rate:0.001

-Learning rate decay:decay of rate 0.9 every 3,000,000samples

这些配置是在Inception V3上调整的最好性能,没有对Xception做超参数的调整优化。

Weight decay:Inception V3使用L2 regularization,weight decay rate=4e-5,但是这个值会造成Xception陷入局部优化,因此设为1e-5。

Dropout:在ImageNet数据集上二者都在逻辑回归层之前使用0.5的 dropout rate,在JFT数据集上不使用dropout。

 

猜你喜欢

转载自blog.csdn.net/heiheiya/article/details/88688047