目录

  • 说明
  • 贡献
  • 动机
  • 方法
  • 实验
  • 所用模型
  • 实验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的精确度,它贪婪地一次删除一个节点/过滤器,以最大限度地减少训练损失,从而突出其有效性。

贡献

  1. 提出的DropNet,是一种带重新初始化权重的迭代节点/滤波器剪枝方法,它迭代地删除所有训练样本(无论是分层的还是全局的)激活后平均值最低的节点/滤波器,从而降低了网络复杂度。
  2. 与几个基准指标相比,DropNet在广泛的场景中实现了有较好的鲁棒性。DropNet实现了与Oracle类似的性能,后者一次贪婪地删除一个节点/滤波器,以最大限度地减少训练损失。
  3. DropNet不需要特殊的权重和偏差初始化(与(Frankle&Carbin,2018)不同)。在随后的实验中表明,剪枝模型的随机初始化将与原始初始化一样好。这意味着可以使用现成的机器学习库和硬件轻松部署DropNet删减的体系结构。

动机

节点的预期绝对值:使用节点在所有训练样本DropNet: Reducing Neural Network Complexity via Iterative Pruning(论文阅读)_迭代上的期望绝对值来评估其重要性。对于网络中所有DropNet: Reducing Neural Network Complexity via Iterative Pruning(论文阅读)_迭代_02个节点,我们具有其期望绝对值为
DropNet: Reducing Neural Network Complexity via Iterative Pruning(论文阅读)_迭代_03
滤波器的预期绝对值:中DropNet: Reducing Neural Network Complexity via Iterative Pruning(论文阅读)_实例分析_04是所有训练样本DropNet: Reducing Neural Network Complexity via Iterative Pruning(论文阅读)_迭代上的滤波器DropNet: Reducing Neural Network Complexity via Iterative Pruning(论文阅读)_实例分析_06的所产生激活值(一个通道的fearture map)期望绝对值。
DropNet: Reducing Neural Network Complexity via Iterative Pruning(论文阅读)_权重_07

  1. 因为当DropNet: Reducing Neural Network Complexity via Iterative Pruning(论文阅读)_迭代_08时候,激活值比较小,所以这个node的功能相当于没有启动。所以激活值较小的可以删去,影响不大。
  2. 在反向传播过程中,输入权重带着比较低的期望绝对值将被更新的很小,这意味着该节点对从输入中学习的适应性较差,与移除适应性较强的节点相比,移除这些适应性较差的节点对分类精度的影响更小。

方法

DropNet使用以下度量应用算法:以所有训练样本的平均激活值(分层或全局)为度量标准,在每个训练周期结束后,使用该度量对每个节点/过滤器进行重要性打分,并丢弃最不重要的节点/滤波器。

DropNet: Reducing Neural Network Complexity via Iterative Pruning(论文阅读)_权重_09


DropNet: Reducing Neural Network Complexity via Iterative Pruning(论文阅读)_实例分析_10

实验

一些说明:
minimum:修剪P比例的最低激活值部分(全局)。
maxmum:最大标准是与最小作比较(全局)。
random:随机剪枝一部分节点(全局)。
minimum layermaximum layerrandom layer, 它们逐层修剪p比例的节点/滤波器。

所用模型

DropNet: Reducing Neural Network Complexity via Iterative Pruning(论文阅读)_迭代_11

实验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

评估:当删除比例少于一半时候minimumminimum layer都比较有竞争力,当删除比例再增加,minimum layer效果更好。同时表明,对于更大的卷积模型(如模型C),全局剪枝方法(minimum)可能不如分层剪枝方法(minimum laye)具有竞争力。

实验4 CNN - CIFAR-10: ResNet18/VGG19

DropNet: Reducing Neural Network Complexity via Iterative Pruning(论文阅读)_权重_12


评价:对于较大的模型,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

评价:总体而言,每个训练周期删除较大比例DropNet: Reducing Neural Network Complexity via Iterative Pruning(论文阅读)_迭代_13的节点/滤波器会导致较差的性能。结果还表明,在某些条件下,通过采用较大的DropNet: Reducing Neural Network Complexity via Iterative Pruning(论文阅读)_迭代_13可以更快地迭代算法1。但还需要做进一步的试验来确定最优修剪比例DropNet: Reducing Neural Network Complexity via Iterative Pruning(论文阅读)_迭代_13,但DropNet: Reducing Neural Network Complexity via Iterative Pruning(论文阅读)_实例分析_16似乎是有竞争力的。