分享内容:
1.郭世晨:《XCeption and MobileNets》
2.乔子越:《Heterogeneous Graph Convolutional Network》
1. 《XCeption and MobileNets》
XCeption:Deep Learning with Depthwise Separable Convolutions
XCeption和Inception都是谷歌的工作。XCeption是对Inception的改进,是一种 Extreme Inception,因而得名 XCeption。
要介绍Xception的话,需要先从Inception讲起,Inception v3的结构图如下Figure1。当时提出Inception的初衷可以认为是:特征的提取和传递可以通过$1\times1$卷积,$3\times3$卷积,$5\times5$卷积 (或者两个$3\times3$卷积的叠加) ,pooling等,到底哪种才是最好的提取特征方式呢?Inception结构将这个疑问留给网络自己训练,也就是将一个输入同时输给这几种提取特征方式,然后做concat
在2016年底,Keras框架的创始人Francois Chollet提出了XCeption架构,它运用了Inception模组的核心思想,即,在模组内构建更多、更细的路径。XCeption遵循“跨通道的相关性”和“空间相关性”是完全可分离的,最好不要联合映射它们。首先,将Inception模组简化,如下图所示,Figure2其实等价于Figure3。
可见,其中有3组路径,包含了2种思想 (注意,网络运作方向是从下往上):
- 先由1$\times$1卷积负责处理通道间的混合。
- 再由3$\times$3卷积负责处理图像内部的空间结构。注意这里的3$\times$3卷积也会在通道间做混合。
而XCeption的想法是,引入更多的路径,甚至去让每个通道都拥有1条独立路径,如Figure4所示:
这时每个3$\times$3卷积核都独立运作在各自的通道中,不再负责在通道间混合。这无疑可节省大量参数量,提高运算速度。此时通道混合就完全由1$\times$1责。
深度可分卷积可以节省近90%左右的参数量:例如令输出通道数为64,输入通道数为128,忽略偏置。如采用普通的3$\times$3卷积层,参数量是$64\times128\times3\times3=73728$。如采用深度可分卷积,参数量是$64\times3\times3+64\times128\times1\times1=8768$,仅为之前的12%。
下图是在Imagenet上的比较:
在深度可分卷积的内部不包含非线性。如果我们加上非线性,只能加在外面,在内部的1$\times$1和3$\times$3卷积之间没有非线性,而此前的Inception模组中,1$\times$1卷积和3$\times$3卷积后都有非线性。经Francois Chollet的测试,深度可分卷积的效果更好,虽然它的非线性更少,这可能是因为在路径细分之后,过多的非线性会阻碍信息的流动。
MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
MobileNets是谷歌的工作,是为了移动和嵌入式设备而提出的高效模型,使用深度可分离卷积(depthwise separable convolutions, 即Xception变体结构)来构建轻量级深度神经网络,使得在CPU上也能达到理想的速度要求。
既然使用了XCeption,是如何变体的呢?XCeption是先执行1$\times$1卷积,再执行3$\times$3卷积,而MobileNet所采用的变体结构是先做单通道的Depthwise convolution,然后再做Pointwise convolution (1$\times$1卷积)。
如下图所示,下图a代表的是标准卷积核,b代表的是Depthwise convolution filter,c代表的是Pointwise convolution filter (1$\times$1卷积)。
假设输入的Feature Maps为$D_F \times D_F \times M$,输出的Feature Maps为$D_F \times D_F \times N$。
假设$D_K$是3,N为256,深度可分离卷积是标准卷积计算代价的十分之一左右,非常高效。
MobileNet的全部网络结构细节如下图所示,其中Conv代表卷积,Conv dw代表深度可分卷积,s代表步长,FC代表全连接层(为清晰起见,省略BN和RELU层),$K \times K \times A \times B$代表使用$K \times K $卷积核,输入为A个通道,输出为B个通道。
width multiplier
width multiplier主要是按比例减少整个网络的通道数,该参数记为$\alpha$,其取值范围为(0,1],$\alpha$等于1的时候就是标准的MobileNet,那么输入与输出通道数将变成$\alpha M$和$\alpha N$,所以计算量变为:
因为主要计算量在后一项,参数量大概减少了$\alpha$的平方倍。
resolution multiplier
参数resolution multiplier主要是按比例降低特征图的大小,记为$\rho$,比如原来输入特征图是224x224,可以减少为192x192,加上resolution multiplier,Depthwise separable convolution的计算量为:
要说明的是,resolution multiplier仅仅影响计算量,但是不改变参数量。如下图所示,Mult-Adds表示计算量,Parameters表示参数量。
精度结果比较
2.《Heterogeneous Graph Convolutional Network》