Advertisement

[论文阅读]Dynamic Network Surgery for Efficient DNNs

阅读量:

文章目录

  • 引言

  • 摘要

  • 1、引言部分

  • 2、动态网络手术

    • 2.1 记号说明
    • 2.2 剪裁与缝合
    • 2.3 参数重要性分析
    • 2.4 加速收敛性提升
  • 3、Experimental Results

      • 3.1 Well-Known Networks
      • 3.2 XOR Problem
      • 3.3 MNIST Data Set
      • 3.4 ImageNet and AlexNet
    • 4、Conclusion

    • 总结


前言

复制代码
    论文名:Dynamic Network Surgery for Efficient DNNs
    论文作者:Yiwen Guo et.al.
    机构:Intel Labs China(英特尔中国实验室)
    期刊/会议名:NIPS 2016
    本文作者:XMU_MIAO
    日期:2020/12/6

摘要

深度学习已经变成一种提高机器智能的常见技术。可是,大部分现存深度模型结构异常复杂,使得它们难以在部署在计算能力受限的移动平台。
本文中,提出一种名为 dyanmic\,\,network\,\,surgery网络压缩方法,其通过动态剪枝显著减少网络复杂度。不同于之前的基于贪心的剪枝策略(直接选绝对值小的某些权值剪枝),我们将splicing(拼接,对某些剪枝后的权值进行恢复)操作融入到整个剪枝过程中以防止不正确的剪枝,并使其成为一种连续的网络维护。
实验证明了该方法的有效性。在没有精度损失的情况下,所提方法可以有效地压缩\textbf{LeNet-5}\textbf{AlexNet}中的参数,分别压缩到原来的108倍和17.7倍,这证明了它比最近的剪枝方法相比有很大的优势。

1、Introduction

零代价网络压缩通过去除冗余参数并重新训练模型,在不牺牲模型性能的前提下实现了模型体积的缩减,并如图1(b)所示给出了具体结果

在这里插入图片描述

因为神经网络隐藏层内部的复杂性,在执行剪枝操作后各参数的重要性可能发生显著的变化。这种变化可能导致两个问题:(1)无法挽回的网络结构破坏。被剪枝掉的参数无法恢复其重要性,在不当剪枝的情况下会导致模型精度的重大损失;(2)提高效率受到影响。迭代剪枝过程包含了retrain等操作步骤,在实际应用中会增加计算负担从而降低整体训练速度。

本文探讨上述问题。我们提出了一种通过持续的网络维护方式来消除多余的连接,并将其命名为动态网络手术(Dynamic Network Surgery)。其中包含两个核心操作:裁剪与缝合。在裁剪阶段中(或者称为pruning阶段),会对模型参数进行优化处理以减少模型体积;然而,在不当的裁剪或过度裁剪的情况下可能会导致精度下降。在缝合阶段中(或者称为splicing阶段),一旦发现某些被修剪后的权重仍然重要,则可以在任何时候恢复或保留这些权值。这两个阶段共同构成整个训练流程,并将模型权重动态划分为两组:重要权重和非重要权重。

2、Dynamic Network Surgery

2.1 Notations

可以将一个深度神经网络进行权重矩阵的编码表示为\{W_{k}:0\le k \le C\}其中W_{k}代表第k层的权重矩阵参数集剪枝操作后对应的权重矩阵集合被编码为\{W_k,T_k:0\le k \le C\}其中T_k代表二值掩码矩阵其取值分别为0和1分别对应于被剪枝和保留的权重系数

2.2 Pruning & Splicing

评估权重的重要性具有显著难度;当某一个权重被剪枝后,则网络中各权重的重要程度可能会发生相应变化;由此可见,在训练过程中持续维护网络结构是一种更为合理的选择;例如,在第k层网络中我们通过优化以下问题来对网络进行剪枝:

其中L(*)代表网络的损失函数计算方式,在h_{k}(*)的作用下用于评估某个权重参数的重要性指标值。该优化问题可通过随机梯度下降法得以解决。由于基于区分函数能确定地得出对应的特征表达式,在实际应用中我们只需要关注权重参数的变化情况即可完成模型训练任务。通过以下公式可对权重参数进行调整:

其中L(*)代表网络的损失函数计算方式,在h_{k}(*)的作用下用于评估某个权重参数的重要性指标值(此处重要性指标值定义为1,否则定义为0)。该优化问题可通过随机梯度下降法得以解决。由于基于区分函数能确定地得出对应的特征表达式(此处特征表达式的计算依据是预先设定好的分类标准),在实际应用中我们只需要关注权重参数的变化情况即可完成模型训练任务。通过以下公式可对权重参数进行调整:

在这里插入图片描述

其中\beta被视为一个正的学习率。值得注意的是,在上述公式中,并不仅会对那些重要权值(即对应T_k^{(i,j)}=1的权值)进行更新操作;同时对那些不重要权值(即对应T_k^{(i,j)}=0的权值)也会进行相应的更新计算;这样一来,在特定条件下部分不具有重要性的权值有机会在其迭代更新过程中出现权重增长的情况,并通过h_k函数实现了一定程度上的‘复 revive’过程。具体算法流程如下:

在这里插入图片描述

该算法的动态特性主要体现在两个方面:其一为当现有权重不再重要时可进行剪枝操作;其二则是在被错误剪除后又会得到恢复


2.3 Parameter Importance

衡量权重重要性的难度较高,在多个方案测试后发现以基于权重绝对值大小作为度量标准的方法表现出色。选择的区分函数h_k如下:

在这里插入图片描述

其中,在某一层次中,通过计算该层节点间连接权值的平均绝对值与方差来确定每个层次的单独阈值参数a_kb_k

2.4 Convergence Acceleration

在处理权值W_k时相比标准BP算法而言更为复杂,在神经网络训练过程中持续进行剪枝操作可能会影响模型的整体稳定性。为了提升训练效率我设计了一系列优化措施以加速模型收敛速度。

  • 减少剪枝和拼接操作的发生率
    这可以通过减少满足条件的事件发生概率来实现。具体而言,在算法设计中,我们采用非单调递增的概率函数\sigma来进行决策。(\sigma(0)=1

  • 分别对卷积层和完全连接层进行修剪
    可能的原因之一是"梯度消失"。因"瘦身"导致梯度变化较小,在较深时尤其明显。通过动态剪枝分别处理这两类层来改善性能。

3、Experiments&Results

在这里插入图片描述

分析1:
根据表1的数据可以看出,在主流模型中本文提出的方法可以在控制精度变化较小的同时将模型规模缩减至约17.7倍至108倍的范围内。

3.2 The Exclusive-OR Problem

在这里插入图片描述

暂略

3.3 The MINIST Database

在该数据集上进行了LetNet-5和LeNet-300-100模型的测试,并对基于大小的直接剪枝进行了比较分析;测试结果显示如表2所示。

在这里插入图片描述

分析3:
通过本文提出的剪枝方法,在收敛后对LeNet-5和LeNet-300-100网络进行优化处理后,在参数规模上分别降低了108倍与56倍(即保留下来的网络连接数量少于1%及2%),其预测性能与未经剪枝模型相当或略具优势;此外本研究提出的方法相比基于大小的剪枝方法而言,至少提升了4倍以上的压缩效率。

3.4 ImageNet & AlexNet

在这里插入图片描述

分析4:相较于这些无压缩的方法而言,在压缩效率上我们实现了最优水平。此外,在可接受的时间范围内(即在足够多的时间长度内),我们的模型所造成的预测误差水平接近甚至优于现有相关方法。

在这里插入图片描述

我们与Han等人在表3中压缩率排名第二的基于大小剪枝的方法基础上进行了深入比较分析,并如表4所示展示了具体结果。

4、Conclusion

本文探讨了压缩神经网络的技术,并创新性地提出了动态剪枝方法。与现有方法相比,在连续操作中整合Splicing技术。赋予被剪枝权重恢复的机会。利用该方法可以去除神经网络中大部分参数而不影响模型性能。实验结果表明该方法能将LeNet-5和AlexNet的参数规模分别压缩至原来的108倍和17.7倍。此外,在学习效率方面有所提升。

总结

本文提出了一种基于动态网络手术的技术框架 dynamic\,\,network\,\,surgery 以实现神经网络的有效优化。考虑到神经网络体系结构的复杂性,在实施权值修剪操作后其重要性可能随之发生显著变化。传统的基于绝对值阈值的修剪策略虽然能够有效减少计算开销和模型参数数量但其对权值重要性的判断往往依赖于经验性的直觉依据。与现有研究相比在不增加额外计算负担的前提下本文提出的方法能够在训练过程中自然融合权值修复机制从而实现更加精准的模型精简并显著提升训练效率

全部评论 (0)

还没有任何评论哟~