MobileNets,google 2017年的新作,论文原文《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》。
MobileNets是专为移动和嵌入式设备的视觉应用设计的高效模型。MobileNets基于流线型结构,使用深度可分离卷积(depthwise separable convolutions)来构建轻量级深度神经网络。
深度可分离卷积是将标准卷积分解为一个深度卷积(depthwise convolution)和一个逐点卷积(pointwise convolution)。
每一层深度卷积核逐点卷积之后都加上batchnorm层和ReLU层。
深度卷积是对每一个输入的channel做一个filter的卷积。逐点卷积是对深度卷积的输出做1 x 1的多filter的卷积。
假设输入的feature map的尺寸是 ,标准卷积核K的尺寸是
,其中
是卷积核的空间尺寸,M是输入channels数量, N是输出channels数量,则生成
(论文中注释说明假设输出的feature map和输入的feature map空间尺寸大小相同)大小的feature map,
是输出feature map的空间尺寸,N是输出通道数。
计算公式如下:
计算量是
而对于深度可分离卷积,其中深度卷积的尺寸是,计算如下:
计算量是
逐点卷积的尺寸是,因此整个深度可分离卷积的计算量是
与标准卷积相比,
通常深度可分离卷积的空间尺寸是3 x 3,因此与标准卷积相比可减少8~9倍的计算量。
MobileNets的密集大部分都集中在1×1卷积上。
为了控制模型的大小,引入了一个超参数:宽度因子α(width multiplier)。输入通道从M变为αM ,输出通道从N变为αN。则计算量变成
其中,
通常取1, 0.75, 0.5, 0.25。
另一个引入的超参数的分辨率因子ρ(resolution multiplier),其中
ρ一般是隐含设置的,使得输入网络的分辨率是224, 192, 160, 128。
最后总的计算量是
下面是一些实验结果。