前言:本笔记作为自己学习的记录,主要关注的机器学习的算法如何在工业上落地实现研究。
移动端常见的网络结构模型
- MobileNet v1、MobileNet v2、MobileNet + SSD、MobileNet + FSDD
- GoogLeNet v1、GoogleLeNet v2、GoogleLeNet v3
- YOLO
- SqueezeNet
- ResNet 34、ResNet 32
- AlexNet
- ShuffleNet v2
上述模型不一定当前最好的移植到移动端模型,但是大部分都能够比较有效。
这里需要介绍的模型是SqueezeNet
SqueezeNet
作为轻量级模型的代表,是由伯克利和斯坦福的研究院在ICLR 2017的发表的工作。该模型中使用大量的1×1卷积,卷积核大小为1的卷积主要的用途是降维,保证了模型在一层的计算量远远小于3×3的卷积计算。也使得下一层的输入通道数大大减少, 在一定程度上也使得参数量减少。
MobileNet
相对于SqueezeNet而言,MobileNet采用卷积的可乘性,将我们的N×N的卷积拆分为N×1和1×N作为替换。在V2版本中加入了1×1卷积进行降维计算,主要思想来源于ResNet。
模型压缩
- 模型体积压缩(运算量降低)
例子:将训练好的模型进行32位 float转化为8位 int类型(可以删去模型中的反向传递的过程减少计算量) - 剪枝
对于模型中多层的节点相连,每个节点相连后形成了边,对于边权重小的可以进行删减。 - 二值神经网络
移动深度学习模型性能指标
- 计算效率(减少计算量过程中的循环结构)
- 耗电量
- 并行计算
- 卷积性能优化