Learning both Weights and Connections for Efficient Neural Networks
Abstract
- 目的:减少存储量和计算量,使网络更适合在移动设备上运行
- 方法:简单地说是只学习重要的连接,修剪冗余的连接减少模型参数
- 步骤:train,学习哪些连接是重要的
prune,剪去不重要的连接
retrain,finetune剩下的连接的参数
prune和retrain可以反复迭代进行 - 结果:AlexNet减少模型参数量61million->6.7million,没有精度损失
VGG-16减少模型参数量138million->10.3million,没有精度损失
Related Work
- 8-bit integer (vs 32-bit floating point) activations,用8位int型的activation代替32位float
- 量化(Deep Compress论文中介绍的)和剪枝可以同时使用,以获得进一步收益
- Network in Network和GoogleNet模型中使用了global average pooling代替FC层来减少参数,但在使用ImageNet的参数时,需要另外增加一个线性层。(这是在网络结构方面寻求参数缩减)
- HashNet,和prune结合可能会得到更好的效果
Idea
- 首先训练整个网络,目的是找出哪些是重要的连接;接着设置一个threshold,pruning掉low-weight的连接(小于该threshold就remo