【MobileNet】移动端深度学习网络MobileNet详解

阅读论文MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Application,对移动端深度学习网络MobileNet记录了一些笔记。原文链接:论文链接

一. 背景

为了提高准确度,网络越来越大,越来越复杂,可是移动端无法支持这样大的网络。所以移动端需要减小网络,但是还能保证速度和准确度不下降太多。
有两种方法,一种是减小已有网络的规模,另外一种是重新训练一个小网络。
MobileNet就是重新训练的小网络,它引入了(Depthwise separable convolution)深度级可分离卷积,包括(Depthwise convolution)深度级卷积和(Pointwise convolution)点级卷积。相比VGG16,MobileNet的准确度稍微下降,但是优于GoogleNet。然而,从计算量和参数量上MobileNet具有绝对的优势。

二. 原理

Depthwise convolution和标准卷积不同,对于标准卷积:一个滤波器是用在所有的输入通道上(input channels),有几个通道,这个滤波器就有几个卷积核。一个滤波器能产生一个特征,也就是一个输出通道。滤波器的个数自定,那么输出通道数目就是不确定的。
而depthwise convolution针对每个输入通道采用不同的滤波器,因为只有一个通道,所以一个滤波器只有一个卷积核。一个滤波器仍然产生一个特征,也就是一个输出通道。滤波器的个数和输入通道个数相同,那么输出通道数目就和输入通道数目相同。所以说depthwise convolution是depth级别的操作。
而pointwise convolution其实就是普通的卷积,只不过采用大小为1x1的滤波器。

三. 计算

假定输入特征图大小是:在这里插入图片描述
而输出特征图大小是:在这里插入图片描述
其中DF是特征图的width和height,这是假定两者是相同的,而M指的是通道数(channels or depth)。这里也假定输出特征图大小与输入特征图大小(width and height)是一致的,但滤波器个数N自定。对于标准的卷积 ,其计算量将是:在这里插入图片描述
depthwise convolution计算量是:
在这里插入图片描述
而对于pointwise convolution其计算量为:在这里插入图片描述
所以depthwise separable convolution总计算量是:
在这里插入图片描述
可以比较depthwise separable convolution和标准卷积如下:
在这里插入图片描述
一般情况下N比较大,那么如果采用3x3卷积核的话,depthwise separable convolution相较标准卷积可以降低大约9倍的计算量。

四. 网络结构

【MobileNet】移动端深度学习网络MobileNet详解_第1张图片
【MobileNet】移动端深度学习网络MobileNet详解_第2张图片

五. 更小的模型

针对不同的应用场景,可以对MobileNet进行瘦身。这里引入了两个超参数:width multiplier和resolution multiplier。
第一个参数width multiplier主要是按比例减少通道数,该参数记为α,其取值范围为(0,1],那么输入与输出通道数将变成αM和αN,对于depthwise separable convolution,其计算量变为:
在这里插入图片描述
width multiplier会按大约平方的倍数降低计算量和参数量。
第二个参数resolution multiplier主要是按比例降低特征图的大小,记为ρ,其取值范围为(0,1],比如原来输入特征图是224x224,可以减少为192x192,加上resolution multiplier,depthwise separable convolution的计算量为:
在这里插入图片描述
要说明的是,resolution multiplier会按大约平方的倍数降低计算量,但是不降低参数量。

你可能感兴趣的:(会议论文详解,深度学习,计算机视觉,人工智能,卷积神经网络)