导言:
MobileNet系列是轻量级网络的一个系列,共有三个版本,本文MobileNet v1提出了一种有效的网络架构和一组两个超参数,这些超参数允许模型构建者根据问题的约束条件为其应用选择合适尺寸的模型,以构建非常小的,低延迟的模型,这些模型可以轻松地与移动和嵌入式视觉应用的设计要求匹配。
01 Depthwise Separable Convolution
深度可分离卷积是将标准的卷积分解为深度卷积和1x1点卷积。深度卷积将单个滤波器应用于每个输入通道,点卷积将深度卷积的输出加权结合,这样的分解效果是大大减少了计算量和模型大小。
例如,给定一个DfxDfx M的feature map 生成一个Dfx Dfx N的feature map。
正常的卷积核(如图1)尺寸为Dk × Dk×M ×N。其计算量为 Dk· Dk· M · N ·DF ·DF。
深度可分离卷积中的深度卷积(如图2)的尺寸为Dk ×Dk ×M。这里M表示第M个卷积核(每个卷积核的通道数为1)用于第M个通道,其计算量为Dk· Dk· M ·Df· Df。点卷积(如图3)的尺寸为 1 x1 xM xN,其计算量为M · N ·Df ·Df。因此深度可分离卷积的计算量为 Dk· Dk· M · Df·Df + M·N· Df· Df 。
深度分离卷积与标准卷积的计算量的比值为
据此可知,MobileNet使用3x3深度可分离卷积能较少8-9倍的计算量,而精度只降低了一点点。具体如下:
02 Network Structure and Training
除了第一层是标准的卷积,最后添加了一层全连接层以外,其余部分是用深度可分离卷积构成的。除最后一层全连接层以外,每一层后都添加了BN和ReLU层。共有28层。
其完整的结构图如下:
1x1的点卷积占了计算量的94%,参数占了75%。除此之外参数量最大的是全连接层,不同类型的层的参数和计算量如下:
这种深度可分离卷积不只是减少了计算量这么简单。对于无结构的稀疏的矩阵,其计算量虽然比密集矩阵要少,但由于密集矩阵在底层是使用了通用矩阵乘法(gen