1、背景
卷积神经网络在计算机视觉任务中已经无处不在,并且总体趋势是向着更深更复杂的网络发展以获得更高的精度,但是这些所造成的是模型尺寸越来越大,速度越来越慢,很难在现实世界中获得实时的运用。作者提出的MobileNet可以构建小尺寸、低延时的模型,可以实现运行在嵌入式的移动视觉任务中。论文方案主要体现在两个方面。一个是深度可分离卷积,一个是宽度缩放因子和分辨率缩放因子两个模型超参数。
2、深度可分离卷积
在MobileNet模型架构中核心部分就是深度可分离卷积。深度可分离卷积是将一个标准卷积分解成一个深度卷积层和一个1 * 1的卷积层(逐点卷积)。首先我们来看看标准卷积的功能是什么,对于一个输入,标准卷积的任务就是在一个步骤完成滤波并且合并输入特征图不同通道,产生一个新的输出特征图集合。而MobileNet的做法就是把这两个功能分开,用深度卷积完成滤波,逐点卷积完成通道数的合并。这样做的目的是在完成相同功能且不影响太多性能的同时,可以有效减少计算量与模型尺寸。接下来,我们通过一个示例来讲解一下。
对于一个输入特征图 F 尺寸为DF *DF * M,输出特征图G尺寸为DG *DG * N,其中DF 是输入特征图长(宽),M为通道数,DG 是输出特征图长(宽),N输出通道数。那么对于标准卷积卷积核K的尺寸就是Dk *Dk * M *N,Dk 是卷积核长宽。所以标准卷积对于这个操作的计算量是Dk *Dk * M * N * DF *DF 。为什么是这样呢,可以这么来理解,对于输入特征图来说,用每一个卷积核在一张特征图上计算量是 Dk *Dk * DF *DF ,那么对于M个通道来说就是 Dk *Dk * DF *DF *M,对于标准卷积来说是需要合并不同通道的,所以对于一个输出特征层的计算量是Dk *Dk * DF *DF<