MobileNetV1《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》

在MobileNet之前,提升模型推理效率常用的方法是模型压缩(量化、剪枝等)和知识蒸馏(Teacher-Student网络)。

核心概念:

深度可分离卷积(deep-wise separable convolution):深度可分离卷积将标准卷积操作分解为一个深度卷积(deepwise convolution)和一个1x1的卷积(pointwise convolution).对于深度卷积(deepwise convolution),对于每个输入通道使用一个卷积核,也就是采用分组卷积的方式,分组卷积参考pytorch卷积操作nn.Conv中的groups参数用法解释。然后使用1x1的卷积将上一步分组卷积得到的结果进行combine。

假设输入的特征图feature_map大小为[H, W, M],深度可分离卷积第一步使用M组KxKx1的卷积核对每个输入通道in_channel进行卷积,卷积输出结果特征图feature_map大小为[H, W, M],然后使用N个1x1xM的卷积核进行卷积操作,输出的特征图大小为[H, W, N]。深度可分离卷积的目的是减少卷积操作的参数量和计算量,从而提升运算速度。深度可分离卷积表示如下图:

MobileNetV1《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》

 备注:上图中的(N,H,W,N)中,第一个N表示batch_size,最后一个N表示深度可分离卷积第二步1x1之后的输出通道数。

MobileNetV1《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》

 MobileNetV1《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》

标准卷积与深度可分离卷积结构对比:

MobileNetV1《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》

MobileNetV1网络结构(共28层卷积层):

MobileNetV1《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》

 MobileNetV1参数量个计算量分布:

MobileNetV1《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》

模型容量(capacity)缩放参数:

       Width宽度缩放(控制channel数):MobileNetV1中引入超参数MobileNetV1《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》来控制网络宽度width(每层卷积的输出通道数),假设引入这个参数之前的输出通道数为C,则引入之后的输出通道数为MobileNetV1《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》。引入MobileNetV1《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》参数之后深度可分离卷积的浮点数计算量为: 

MobileNetV1《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》

        Resolution分辨率缩放(控制输入分辨率大小): MobileNetV1中引入超参数MobileNetV1《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》来控制网络的输入图像分辨率大小。引入MobileNetV1《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》参数之后深度可分离卷积的浮点数计算量为: 

MobileNetV1《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》

备注:对于2D卷积网络常见的模型缩放参数包括输入分辨率resolution、width(卷积输出通道数)、depth(网络的层数)、bottleneck(参见X3D模型缩放参数),具体可以参考EfficientNet网络模型。对于3D卷积网络常见的模型缩放参数包括时间分辨率resolution、width(卷积输出通道数)、depth(网络的层数)、bottleneck(参见X3D模型缩放参数)、输入时间维度大小,具体可以参考X3D网络模型。

标准卷积、深度可分离卷积、分辨率缩放、width缩放模型参数和计算量比对:

MobileNetV1《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》

上一篇:Safe and efficient off-policy reinforcement learning(Retrace)


下一篇:ECO: Efficient Convolutional Network for Online Video Understanding