目录
- 说明
- 贡献
- 动机
- 方法
- 实验
- 所用模型
- 实验1 MLP - MNIST
- 实验2 CNN - MNIST
- 实验3 CNN - CIFAR-10: Model C
- 实验4 CNN - CIFAR-10: ResNet18/VGG19
- 实验5 实例分析 - Oracle Comparison
- 实验6 实例分析-Random Initialization
- 实验7 实例分析:Percentage of nodes/filters to Drop
说明
现代深度神经网络需要大量的计算时间和计算能力来训练和部署,这限制了它们在边缘设备上的应用。受彩票假设(Frankle&Carbin,2018)中迭代权重剪枝的启发,我们提出了一种迭代剪枝方法DropNet
,它通过剪枝节点/滤波器来降低网络复杂度。DropNet迭代地删除所有训练样本中具有最低平均postactivation value
的节点/滤波器。经验上,我们表明DropNet在不同的场景中都是稳定的,包括使用MNIST和CIFAR数据集的MLP和CNN。实验表明,高达90%的节点/滤波器可以被移除,而不会有任何明显的精度损失。即使在重新初始化权重和偏差的情况下,最终修剪后的网络也表现良好。DropNet还具有类似于Oracle的精确度,它贪婪地一次删除一个节点/过滤器,以最大限度地减少训练损失,从而突出其有效性。
贡献
- 提出的
DropNet
,是一种带重新初始化权重的迭代节点/滤波器剪枝方法,它迭代地删除所有训练样本(无论是分层的还是全局的)激活后平均值最低的节点/滤波器,从而降低了网络复杂度。 - 与几个基准指标相比,
DropNet
在广泛的场景中实现了有较好的鲁棒性。DropNet
实现了与Oracle
类似的性能,后者一次贪婪地删除一个节点/滤波器,以最大限度地减少训练损失。 -
DropNet
不需要特殊的权重和偏差初始化(与(Frankle&Carbin,2018)不同)。在随后的实验中表明,剪枝模型的随机初始化将与原始初始化一样好。这意味着可以使用现成的机器学习库和硬件轻松部署DropNet删减的体系结构。
动机
节点的预期绝对值:使用节点在所有训练样本上的期望绝对值来评估其重要性。对于网络中所有个节点,我们具有其期望绝对值为
滤波器的预期绝对值:中是所有训练样本上的滤波器的所产生激活值(一个通道的fearture map)期望绝对值。
- 因为当时候,激活值比较小,所以这个node的功能相当于没有启动。所以激活值较小的可以删去,影响不大。
- 在反向传播过程中,输入权重带着比较低的期望绝对值将被更新的很小,这意味着该节点对从输入中学习的适应性较差,与移除适应性较强的节点相比,移除这些适应性较差的节点对分类精度的影响更小。
方法
DropNet
使用以下度量应用算法:以所有训练样本的平均激活值(分层或全局)为度量标准,在每个训练周期结束后,使用该度量对每个节点/过滤器进行重要性打分,并丢弃最不重要的节点/滤波器。
实验
一些说明:minimum
:修剪P比例的最低激活值部分(全局)。maxmum
:最大标准是与最小作比较(全局)。random
:随机剪枝一部分节点(全局)。minimum layer
, maximum layer
和random layer
, 它们逐层修剪p比例的节点/滤波器。
所用模型
实验1 MLP - MNIST
使用网络:
- Model A: FC40 - FC40
- Model A: FC20 - FC40
- Model A: FC40 - FC20
评估:对于隐藏层具有相等数量的神经元,选择minimum layer
效果更好;不等时,minimum
更具有竞争力。
实验2 CNN - MNIST
使用的网络:
- Model B: Conv64 - Conv64
- Model B: Conv32 - Conv64
- Model B: Conv64 - Conv32
评估:与全连接层结果一致,对于卷积层具有相等数量的滤波器,选择minimum layer
效果更好;不相等时,minimum
具有竞争力。
实验3 CNN - CIFAR-10: Model C
使用的网络:
- Model B: Model C: Conv64 - Conv64 - Conv128 - Conv128
- Model B: Model C: Conv128 - Conv128 - Conv256 - Conv256
评估:当删除比例少于一半时候minimum
和minimum layer
都比较有竞争力,当删除比例再增加,minimum layer
效果更好。同时表明,对于更大的卷积模型(如模型C),全局剪枝方法(minimum)可能不如分层剪枝方法(minimum laye)具有竞争力。
实验4 CNN - CIFAR-10: ResNet18/VGG19
评价:对于较大的模型,minimum layer
最具竞争力,逐层度量的性能优于全局度量。这表明对于较大的模型,层之间可能存在显著的统计差异,从而跨层比较幅度可能不是修剪节点/过滤器的好方法。
事实证明,minimum
几乎与ResNet18的minimum layer
效果相当,但是VGG19的性能比随机度量要差。这表明ResNet18中的跳跃连接有助于减轻全局度量的一些缺陷。有趣的是,minimum
往往会完全删除一些跳过连接,这表明某些跳过连接是不必要的。这意味着使用最小度量的DropNet能够自行自动识别这些冗余连接。总体而言,使用DropNet,我们可以在不显著影响模型精度的情况下将过滤器数量减少80%或更多,从而突出了其在降低网络复杂性方面的有效性,即使在较大的模型中也是如此。
实验5 实例分析 - Oracle Comparison
本实验作者对对比的对象是oracle
,作者将oracle
定义为在每次迭代算法时贪婪地从所有剩余的节点/过滤器中删除一个节点/过滤器的算法,从而使总体训练损失最小化。
使用的网络:
- Model A: FC20 - FC20
- Model B: Conv20 - Conv20
评价:结果表明,总体来说,最小度量即使与oracle
相比也是有竞争力的。这表明最小度量确实是具有竞争力的标准,删除节点/滤波器。此外基于算法的时间复杂度oracle
相比更低。
实验6 实例分析-Random Initialization
目的:探究权重和偏差的开始初始化重要吗?
使用的网络:
- Model A: FC20 - FC20
- Model B: Conv64 - Conv64
- Model C: Conv64 - Conv64 - Conv128 - Conv128
评价:结果说明,对于DropNet来说,重要的只是最终的修剪后的网络架构,而不是网络的初始权重和偏差。
实验7 实例分析:Percentage of nodes/filters to Drop
目的:谈及是否可以一次删除更多节点/过滤器,以减少训练周期数,并在不影响精度的情况下更快地修剪模型。
使用的网络:
- Model A: FC20 - FC20
- Model B: Conv64 - Conv64
- Model C: Conv64 - Conv64 - Conv128 - Conv128
评价:总体而言,每个训练周期删除较大比例的节点/滤波器会导致较差的性能。结果还表明,在某些条件下,通过采用较大的可以更快地迭代算法1。但还需要做进一步的试验来确定最优修剪比例,但似乎是有竞争力的。