深度神经网络剪枝:基于线性区域的策略与实验
1. 基于线性区域的剪枝策略
为了在限制要修剪的参数总数的情况下最大化线性区域的数量,我们设计了一种网络剪枝策略。对于反映整体剪枝程度的全局密度 $p$,如果不进行均匀剪枝,我们可以为每一层 $l$ 选择一个密度 $p_l$,其中一些层的密度高于 $p$,一些层的密度低于 $p$。
以修剪两个隐藏层且不修剪与输出层的连接为例,这种情况在实验中被采用。当修剪两层时,相关维度包括输入大小 $n_0$ 以及层宽度 $n_1$ 和 $n_2$。在典型设置 $n_0 > n_1 = n_2$ 下,两个权重矩阵的最大秩受行数限制($W^1$ 的行数为 $n_1$,$W^2$ 的行数为 $n_2$)。不过,$W^1$ 中更多的列意味着,如果 $p_1 = p_2$,我们预计 $W^1$ 的秩会更大。而通过从 $W^1$ 多修剪一些来保留 $W^2$ 中更多的非零元素,可能会改变 $W^2$ 的概率,同时对 $W^1$ 的影响较小。
初步实验发现:
- 从参数更多的层进行更多的剪枝,在最大化线性区域上限方面更具优势。
- 上限可以用二次函数合理近似。
因此,我们除了使用两层的均匀密度 $p$ 外,还使用从两层中尽可能多地进行剪枝的极端情况(如 $p_1$ 和 $p_2$)来插值上限。如果插值的局部最大值不是从参数更多的层进行更多剪枝,我们会从 $p$ 到 $p_l$ 均匀采样密度,以找到能最大程度提高上限的密度 $p_l$。
2. 子空间中线性区域的计数
基于神经元的激活和非激活状态来表征线性区域,我们可以使用混合整数线性规划(MILP)公式来计算训练好的网络所定
超级会员免费看
订阅专栏 解锁全文
764

被折叠的 条评论
为什么被折叠?



