mobilenet-v1

论文地址:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
这是第一版的mobilenet,它是一个轻量级的网络,既可以保证accurate掉点不严重,又可以保证高速,是可以在CPU上或者其他嵌入式设备上实施运行的模型。这篇论文引入了两个全局超参数来权衡时延和accurate。
常规缩小模型的操作:depthwise separable convolutions;卷积层提速;模型压缩:量化,哈希,剪枝,哈夫曼编码;模型蒸馏。

Mobilenet Architecture

depthwise separable filters

Depthwise Separable Convolution
把常规conv分解:depthwise conv+1×1(pointwise conv)
depthwise conv是放在输入经过的第一层的单卷积核,随后是1×1,来连接depthwise conv的输出。他把常规的conv分成了两步,他减小了模型规模,降低了运算量
mobilenet-v1
假设feature map的大小为DFD_{F}×DFD_{F}×M
标准卷积的运算:DFD_{F}×DFD_{F}×M×DKD_{K}×DKD_{K}×N
mobilenet-v1
depthwise conv输出特征为:(DGD_{G}DGD_{G},M)
计算量为:DFD_{F}×DFD_{F}×M×DKD_{K}×DKD_{K}
pointwise conv输出特征为:(DGD_{G}DGD_{G},N)
计算量为:DFD_{F}×DFD_{F}×M×N
计算量一共减少:
mobilenet-v1

Network Structure and Training

Mobilenet除了第一层用来完整的卷积核之外,其他使用的都是depthwise separable conv。他的每个卷积操作后面都加了BN和Relu,他的结构如下:
mobilenet-v1
他的下采样用在了每一个block的第一层卷积里。
mobilenet-v1
模型几乎将所有的密集运算放到1×1 卷积上,占用了95%的计算时间,这可以使用general matrix multiply (GEMM) functions优化。这部分也占了75%的参数:
mobilenet-v1
Mobilenet在tensorflow上用了RMSprop,但是没有用其他正则化方式和数据增强,因为小型网络面临的问题是欠拟合。同时权重衰减和L2正则没有啥作用,因为参数真的太少了

Width Multiplier: Thinner Models

如何让运行速度进一步加快:引入宽度因子αα。他可以让网络变瘦。他让每个输入层的channel变为αMαM,输出的channel变成αNαN。所以最后的运算量变为:DF×DF×αM×DK×DK+DF×DF×αM×αND_{F}×D_{F}× αM×D_{K}×D_{K}+D_{F}×D_{F}×αM ×αN,他使计算量减少了α2α ^2

αα取[0,1],一般来说取1,0.75,0.5,0.25

Resolution Multiplier: Reduced Representation

第二个超参数分辨率因子ρρ,他用于控制输入和每一层的大小,他是输入的分辨率。引入ρραα之后的计算量为:ρDF×ρDF×αM×DK×DK+ρDF×ρDF×αM×αNρD_{F}×ρD_{F}× αM×D_{K}×D_{K}+ρD_{F}×ρD_{F}×αM ×αN
mobilenet-v1

Experiments

为了进一步缩小模型,可将MobileNet中的5层14×14×512 14×14×51214×14×512的深度可分离卷积去除

mobilenet-v1
table 5 相同参数和计算量下,精度衰减了3%。(中间的深度卷积用于过滤作用,参数量少,冗余度相比于大量的逐点卷积应该是少很多的)
mobilenet-v1
mobilenet-v1
交叉验证计算量对精度影响
图4显示了16个交叉的模型在ImageNet上的表现,宽度因子取值为α∈{1,0.75,0.5,0.25}分辨率取值为{224,192,160,128} 。当模型越来越小时,精度可近似看成对数跳跃形式的。
mobilenet-v1
交叉验证参数量对精度影响
图5显示了16个交叉的模型在ImageNet上的表现,宽度因子取值为α∈{1,0.75,0.5,0.25} ,分辨率取值为{224,192,160,128} 。
mobilenet-v1
mobilenet-v1
mobilenet-v1
mobilenet-v1
mobilenet-v1
mobilenet-v1