轻量化模型主要围绕减少计算量,减少参数,降低实际运行时间,简化底层实现方式等这几个方面,提出了深度可分离卷积,分组卷积,可调超参数降低空间分辨率和减少通道数,新的激活函数等方法
深度可分离卷积
常规卷积
对于3x5x5的输入,如果想要得到4x3x3的feature map,那么卷积核的shape为3x3x3x4;
因此卷积层的参数数量即:卷积核W x 卷积核H x 输入通道数 x 输出通道数
计算量(padding=0时)即:卷积核W x 卷积核H x (图片W-卷积核W+1) x (图片H-卷积核H+1) x 输入通道数 x 输出通道数
如果进行填充:卷积核W x 卷积核H x (图片W-卷积核W+2P+1) x (图片H-卷积核H+2P+1) x 输入通道数 x 输出通道数):
深度可分离卷积
深度可分离卷积的核心思想在就于把普通卷积拆分为Depthwise+Pointwise两部分
Depthwise(Mobile Net V1)是分组卷积的极端表现,即“Group = Cin”,即输入的每一个通道都单独当做一个组来计算。
标准卷积:
分组卷积:
分组卷积使得计算量减少到原来的1/g,(g代表分的组数)
Pointwise作用是串联信息,当把卷积分组,虽然减少了计算量,但是不同分组之间并没有关联,不能共享信息,因此使用卷积核大小为(1,1)的普通卷积,在对上述分组卷积所得到结果进行一次卷积操作,这样就可以把原本不关联的信息串在一起整合起来。
Mobile Net V1的“分组Depthwise+串联Pointwise”的计算方式概览:
将普通卷积更换成深度可分离卷积计算量的对比
两个超参数
α:宽度乘数(Width Multiplier: Thinner Models)用于缩减模型的宽度
所有层通道数(channel)乘以α(四舍五入),模型大小和计算量都近似下降到原来的α2倍,α∈(0,1]
β:分辨率乘数(Resolution Multiplier: Reduced Representation)用于控制input image大小
输入层分辨率乘以β参数,等价于所有层的分辨率乘以β,模型大小不变,分辨率降为原来的β2,β∈(0,1],降低输入图像的分辨率
实验结果
- 深度可分离卷积 和 普通卷积 的对比
- 在ImageNet上分类实验的对比
可以看到在ImageNet上的准确率相比较VGG16虽然下降了接近1%,但是MobileNet的计算量只有VGG16的不到4%,参数量只有VGG16的3% - 细粒度图像分类实验的对比
- Large Scale Geolocalizaton(大规模地理定位)