原先模型小型化工作的焦点,放在模型尺度上。
- 卷积核分解,使用1×N 和N×1的卷积核代替N×N的卷积核
- 使用bottleneck 结构,以SqueezeNet为代表
- 以低精度浮点数保存
- 冗余卷积核剪枝以及哈夫曼编码
depthwiseseparable convolutions的本质是冗余信息更少的稀疏化表达。在此基础上给出了高效模型设计的两个选择:宽度因子(width multiplier)和分辨率因子(resolutionmultiplier);通过权衡大小、延迟时间以及精度,来构建规模更小、速度更快的MobileNet。
网络结构
Deep-wise卷积
MobileNet使用了一种称之为deep-wise的卷积方式来替代原有的传统3D卷积,减少了卷积核的冗余表达。
使用deep-wise方式的卷积核,我们会首先使用一组二维的卷积核,也就是卷积核的通道数为1,每次只处理一个输入通道的,这一组二维卷积核的数量是和输入通道数相同的。
在使用逐个通道卷积处理之后,再使用3D的1*1卷积核来处理之前输出的特征图,将最终输出通道数变为一个指定的数量.
网络
左边为传统的卷积网络 ,右边为mobilenet网络
deep-wise的卷积和后面的1x1卷积被当成了两个独立的模块,都在输出结果的部分加入了Batch Normalization和非线性激活单元。
训练细节
deep-wise卷积核含有的参数较少,最好使用较小的weight decay或者不使用weightdecay。