深度学习网络压缩简单介绍
我课题组做基于深度学习的图像处理主要分两条线:
- 基于深度学习的目标检测
- 网络压缩
我的方向是网络压缩,为了以后方便展开,下边先简要介绍几种网络压缩的方式,:
1 网络修剪
网络修剪,采用当网络权重非常小的时候(小于某个设定的阈值),把它置0,就像二值网络一般;然后屏蔽被设置为0的权重更新,继续进行训练;以此循环,每隔训练几轮过后,继续进行修剪。
2 权重共享
对于每一层的参数,我们进行k-means聚类,进行量化,对于归属于同一个聚类中心的权重,采用共享一个权重,进行重新训练.需要注意的是这个权重共享并不是层之间的权重共享,这是对于每一层的单独共享
3 增加L2权重
增加L2权重可以让更多的权重,靠近0,这样每次修剪的比例大大增加。
3 从结构上,简化网络计算
这些需自己阅读比较多相关文献,才能设计出合理,速度更快的网络,比如引入fire module、NIN、除全连接层等一些设计思想,这边不进行具体详述。