MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

本文提出了MobileNets的模型,有助于减少inference的时间,使得其可以在移动端开展运行。最重要的算法为depthwise separable convolutions,是将传统的卷积算法分解为了两步,可以减少卷积的时间复杂度和实际的运行时间。同时为了在移动端更加灵活地应用,文章提出了两个全局的超参数用来权衡latency和accuracy。

相比于其他的将CNN移植到移动端的方法,MobileNets的关注点不在于压缩整个模型,而是更注重对于Latency的优化。

1 MobileNet Architecture

1.1 Depthwise Separable Convolution

基本思想是将传统卷积拆分成两步:depthwise convolution和pointwise convolution(1×1的卷积)。

首先depthwise convolution,对于每一张input channel施加一个filter;然后使用1×1的pointwise convolution将得到的depthwise convolution的output组合起来。所以,现在我们可以将传统卷积视为一个两层的卷积网络,一层做depthwise convolution,一层做pointwise convolution。

下面来分析一下两种卷积方式的时间复杂度,假设input有M个channel,每个kernel size是Dk×Dk,在卷积之后得到的是N个channel的output,每个feature map是Df×Df。

Standard convolution

总体需要的计算量为:D_K\times{D_K}\times{M}\times{N}\times{D_F}\times{D_F}

Depthwise convolution & pointwise convolution

第一步是depthwise convolution,具体的做法是每一个input channel只用一个filter,得到M个Df×Df的feature map。所以总共需要的计算量为:D_K\times{D_K}\times{M}\times{D_F}\times{D_F}

第二步是pointwise convolution,使用N个1×1×M的kernel将上一步的结果合并,得到N个Df×Df的feature map。所以总共需要的计算量为:M\times{N}\times{D_F}\times{D_F}

故最终的计算量为D_K\times{D_K}\times{M}\times{D_F}\times{D_F}+M\times{N}\times{D_F}\times{D_F}

减少的计算量的比例为:\frac{D_K\times{D_K}\times{M}\times{D_F}\times{D_F}+M\times{N}\times{D_F}\times{D_F}}{D_K\times{D_K}\times{M}\times{N}\times{D_F}\times{D_F}}=\frac{1}{N}+\frac{1}{D_K^2},其中MobileNets使用的是3×3的filter,所以最终可以提升8~9倍的performance。

MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications_第1张图片

2.2 Networkarchitecture and training

第一层为full convolution,其他的都是按照2.2中的分解的卷积进行操作的。

每一层(除了最后的soft-max)都进行了Batchnorm和ReLU的操作。

MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications_第2张图片

详细的架构如下:

MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications_第3张图片

最训练的时候使用了RMSprop和asynchronous gradient descent。

几乎没有使用regularization和data augmentation,因为小model的overfitting问题不大。

在depthwise convolution层没有使用weight decay,因为参数太少了。

2.3 Width multiplier: thinner models

这里引入了一个关乎模型大小的超参数α,用来调节每一层input的channel数量。每一层的channel数量就是αM。

所以最终的计算量为:D_K\times{D_K}\times{\alpha M}\times{D_F}\times{D_F}+\alpha M\times{\alpha N}\times{D_F}\times{D_F}

2.4 Resolution multiplier: reduced representations

通过这个超参数ρ来调节input image的resolution。

所以最终的计算量为:D_K\times{D_K}\times{\alpha M}\times{\rho D_F}\times{\rho D_F}+\alpha M\times{\alpha N}\times{\rho D_F}\times{\rho D_F}

3 Experiment

MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications_第4张图片

 

你可能感兴趣的:(machine,learning,CNN,ML论文,mobile,DL)