7组-MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

主要贡献

  1. 提出MobileNets模型,该模型使用depthwise separable卷积构建轻量级网络,可用于智能手机及嵌入式设备中

  2. 引入两个超参数,用于控制模型的性能及效率,在不同的应用场景可选取合适的超参数

  3. 在目标检测、图像细粒度分类、人脸属性分类和大尺度地理定位等任务中验证了该模型的有效性

研究背景及动机

近年来,卷积神经网络在图像识别、检测等领域取得了惊人的成功。从AlexNet到VGGNet再到ResNet,为了提高准确率,网络总体朝着更深更复杂的趋势发展。然而,在某些计算资源有限的应用场景,如智能手机、机器人、自动驾驶,处理速度同样重要。

目前,获取小型高效的神经网络的方法可以粗略地分为压缩现有训练好地网络和直接训练小网络这两类。

压缩类方法有参数量化、哈希、Huffman编码、蒸馏等。

直接训练类方法采用卷积分解等手段,使用小卷积的组合取代大卷积,从而设计出轻量级的小网络,如:

  • Flattened networks,将一个三维卷积分解成了三个一维的卷积

  • Factorized networks,减少输出通道和输入通道的连接数量

  • Xception network,使用depthwise separable卷积

  • Squeezenet,引入bottleneck,大量使用1x1和3x3的卷积

MobileNet

depthwise separable卷积

这是一种分解卷积的形式,它将标准卷积分解为depthwise卷积和pointwise卷积,即1×1卷积。depthwise卷积对每个输入通道应用单个滤波器,pointwise卷积组合输出的depthwise卷积。标准卷积同时进行滤波和组合,而depthwise separable卷积将其分成两层,一层用于滤波,一层用于组合。这种分解具有大幅度减少计算和模型大小的效果。

7组-MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications_第1张图片

上图比较了标准卷积和分离后的两个卷积,其中标准卷积的计算成本为

而depthwise separable卷积的计算成本为

两者之比为

7组-MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications_第2张图片

可以看出,输出通道数N和卷积尺寸Dk越大,计算成本节省越大。

网络结构和训练

7组-MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications_第3张图片

如上表所示,MobileNet共有28层,每个卷积层后均接着batchnorm和ReLU,使用步长为2的卷积取代maxpool进行下采样,在全连接层之前使用avgpool将特征图下采样到1x1大小,而不是像AlexNet一样直接展开,这大大减少了参数量。

7组-MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications_第4张图片

此外,通过对上述网络的进一步分析,注意到1x1卷积贡献了大部分参数量及加-乘次数。计算量不能简单地使用加-乘次数来衡量,这是因为卷积运算通常由高度优化的通用矩阵乘法(GEMM)实现,这种实现需要首先需要对输入在内存中进行重排,然后再进行GEMM,而1×1卷积不需要重排,可以直接使用GEMM来实现,因此占用大量加-乘次数的1x1卷积实际并不会增加太多计算量。

MobileNet使用RMSprop的优化策略。与训练大型模型不同,MobileNet使用较少的正则化和数据增强技术,这是因为小模型通常不会被过拟合所困扰。

Width Multiplier

虽然基础MobileNet架构已经很小而且计算很快,但特殊情况下可能要求模型更小更快。为了构造更小更快的模型,引入一个非常简单的参数α,称为Width Multiplier。α的作用是在每层均匀地减薄网络。对于给定的层和α,输入通道数由M变为αM ,输出通道数由N变为αN。

具有参数α的depthwise separable卷积的计算成本为

其中α∈(0, 1],典型取值为1, 0.75, 0.5和0.25。Width Multiplier使计算成本和参数数量大致减少α2,其可应用于任何模型结构,适当的权衡精度、模型大小和速度来产生新的较小模型。

Resolution Multiplier

用于降低神经网络计算成本的第二个超参数是Resolution Multiplier ρ,其将输入的图像分辨率变为原来的ρ倍。

加入参数α和参数ρ的depthwise separable卷积的计算成本为

其中ρ∈(0, 1],通常设置使得网络的输入分辨率为224, 192, 160或128。Resolution Multiplier使计算成本和参数数量减少ρ2

7组-MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications_第5张图片

上表分别展示了depthwise separable卷积、参数α和参数ρ对计算量及参数量缩减贡献的一个例子,可以看出缩减是十分明显的。

实验

ImageNet

7组-MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications_第6张图片

从上表可以看出,使用depthwise separable卷积与标准卷积相比,ImageNet上的识别精度仅降低1%,但大大减少了参数量和计算量。同时也可以看出两个超参数对精度、模型大小、计算量的影响。注意到,缩减层数产生的Shallow网络虽然同样减少了原网络的计算量和参数,但不如引入Width Multiplier的Narrow网络更有效,后者相比前者在更少的参数和少量的计算量增加下带来了3.1%的精度提升。

7组-MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications_第7张图片
7组-MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications_第8张图片

从上面两个图中可以粗略看出MobileNets中计算量、模型参数量对ImageNet识别精度的影响。在实际应用中,根据不同的需求,通过调节Width Multiplier和Resolution Multiplier权衡精度、模型大小和速度,训练最合适的模型。

细粒度识别

7组-MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications_第9张图片

在Stanford Dogs数据集上,MobileNet在大大减少计算量和参数量的情况下取得了state of the art的结果。

大尺度地理定位

PlaNet将确定拍摄照片的地点作为分类问题。该方法将地球划分为一个地理单元网格,用作目标类别,并使用卷积神经网络对数百万带有地理标记的照片进行训练。PlaNet够成功地定位各种各样的照片,并且远胜解决相同任务的Im2GPS。

7组-MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications_第10张图片

使用MobileNet取代原有Inception V3在相同的数据上重新训练PlaNet。如上表所示,相比原版PlaNet,MobileNet版本性能略有下降,但其仍大幅优于Im2GPS。

人脸属性分类

7组-MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications_第11张图片

使用蒸馏(在模型压缩中提到过)技术训练MobileNet用于人脸属性分类,结果很优秀。注意到在该任务中,mAP对大幅度的模型缩减表现得很有弹性,这也表明了合理的选择上述两个超参数可以在大幅提高效率的同时保证性能。

目标检测

7组-MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications_第12张图片

在MS COCO目标检测数据集上,使用MobileNet替换SSD、Faster-RCNN等通用目标检测框架中原有的网络。

人脸识别

7组-MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications_第13张图片

FaceNet是一个state of the art的人脸识别模型,使用蒸馏技术在FaceNet模型的指导下训练MobileNet。

总结

MobileNets是基于depthwise separable卷积设计出的一系列卷积神经网络,其能够在保证性能的情况下,大幅缩减模型大小和计算量。文中通过不同任务下的对比实验,已表明其有效性和普适性,能够胜任深度学习模型在智能手机等计算受限情况下的实际部署。

你可能感兴趣的:(7组-MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications)