1. 概述
在这篇文章中给出了新的模型压缩方法:Dynamic Network Surgery。该方法有别于传统的贪心方法,论文中说将连接剪接恰当地融入到整个过程中,以避免不正确的剪接,使其成为一个持续的网络维护。经过实验证明,该方法是有效的,在网络LeNet-5与AlexNet上分别实现了108倍与17.7倍的压缩,而且没有精度损失。
目前开源代码给出的说明显示该方法对于可以运用在卷积与全连接中,并且具有良好的加测效果,在现有网络的基础上进行修改也很方便,只需要替换为“CConvolution”和“CInnerProduct”。代码地址:Dynamic-Network-Surgery
在这篇文章中通过持续的网络维护来切断冗余连接,我们称之为Dynamic Network Surgery。这个方法中有关键的两个步骤:pruning和splicing。pruning的含义自然就是剪除网络中的一些不重要的连接了;但是要是失误剪除掉了网络中一些重要的连接,对网络精度造成了比较大的影响,那么对其的补救步骤就是splicing,恢复这些被错误删除的重要连接。
下图中的左图展示的是本文方法的逻辑结构,右边的其它论文中的方法,可以仔细比较一下两则的区别,可以发现左边在网络发生变化对精度产生影响的时候,反馈更迅速,需要的训练次数更少。
2. Dynamic Network Surgery
在文章中将DNN的模型表示为 { W k : 0 ≤ k ≤ C } \{W_k:0\le k \le C\} { Wk:0≤k≤C}, W k W_k Wk是第 k