摘要
- 开始时,剪枝作为一种模型压缩的方法被开发出来,后来发现有防止过拟合的作用。
- 定义剪枝不稳定(pruning instability):即剪枝后测试精度的下降。
-
本文探究剪枝对于模型泛化能力的影响,发现结论1:随着剪枝不稳定(pruning instability)的增加,泛化能力有所提高。 PS:或者说泛化能力与剪枝稳定性呈反比。
-
对结论1做出了解释:剪枝相当于向模型注入噪声 。
其实剪枝也是模型训练的一种后处理方式,而改善模型训练的方法之一就是增加噪声,只不过以前我们增加噪声是随机增加(其实剪枝算法也有随机的),但如果将剪枝也看做是注入噪声的方式,那么剪枝就是一种准则添加噪声的方法
-
更少的剪枝稳定性获得了更为平坦的模型(less pruning stability leads to more model flatness)。(我也许翻译的不对)
Introduction
-
模型泛化界:增加参数不会导致模型的过拟合
其实我感觉如果你用一个resnet110 去训练 cifar10 那么必然过拟合,也不知道他们是什么意思。
-
剪枝界: 减少参数可以减少过拟合。那么到底谁说的对?
这个倒是没有什么根据,完全是人们观察到的现象
-
我们提供了这个问题的答案,阐明了一个正则化机制的剪枝分离了其对参数计数的影响。(We provide an answer to this question by illuminating a regularization mechanism in pruning separate from its effect on parameter counts.)
这句话倒是没有理解,各位大佬帮帮忙
-
instability 的定义:即剪枝后测试精度的下降。而 stability 则是剪枝界的首要目标,然而我们发现:剪枝的 stability 和模型的泛化性能呈现出负相关。(we find that pruning stability is negatively correlated with the final level of generalization attained by the pruned model.)
就是说如果我们剪枝的后的高精度和模型的泛化性能无法兼得
-
此外,我们发现就算减去最大的权重,导致了测试的精度下降(stability 下降),但模型的泛化性能却没有改变。
这倒是一个比较好的点,因为一般的剪枝论文都关注精度下降,而没有关注模型的泛化性能。不过他这个泛化性能 是指什么呢?
-
得出结论:影响模型泛化性能的不是参数量的减少,而是 stability.
-
实验:让被剪的参数,在 finetune 之后回到网络中,泛化性能仍旧存在。所以 结论2 :剪枝提升泛化能力的关键是在于参数的永久性移除
这个实验令人震惊,但是有点匪夷所思。
-
Adam 算法比 SGD 算要好一些