作者丨崔权
学校丨早稻田大学硕士生
研究方向丨深度学习,计算机视觉
知乎专栏丨サイ桑的炼丹炉
前言
最近读了 Xception [1] 和 DeepLab V3+ [2] 的论文,觉得有必要总结一下这个网络里用到的思想,学习的过程不能只是一个学习网络结构这么简单的过程,网络设计背后的思想其实是最重要的但是也是最容易被忽略的一点。
Xception (Extreme Inception)
卷积层的学习方式
在一层卷积中我们尝试训练的是一个 3-D 的 kernel,kernel 有两个 spatial dimension,H 和 W,一个 channel dimension,也就是 C。
这样一来,一个 kernel 就需要同时学习 spatial correlations 和 cross-channel correlations,我把这里理解为,spatial correlations 学习的是某个特征在空间中的分布,cross-channel correlations 学习的是这些不同特征的组合方式。
Inception的理念
首先通过一系列的 1x1 卷积来学习 cross-channel correlations,同时将输入的维度降下来;再通过常规的 3x3 和 5x5 卷积来学习 spatial correlations。这样一来,两个卷积模块分工明确。Inception V3 中的 module 如下图。
Inception的假设
corss-channels correlations 和 spatial correlations 是分开学习的,而不是在某一个操作中共同学习的。
Inception到Xception的转变
首先考虑一个简版的 Inception module,拿掉所有的 pooling,并且只用一层 3x3 的卷积来提取 spatial correlations,如 Figure2。