当前位置:首页 > 天道酬勤 > 正文内容

清华伯克利深圳学院官网(nn.)

张世龙2021年12月21日 18:49天道酬勤890

正好,reddit上出现了关于论文《Rethinking the Value of Network Pruning》的讨论。 这篇论文的观点似乎和最近关于神经网络剪枝的论文的结论相矛盾。 这令人惊讶,甚至会改变我们对神经网络的固有看法。 也就是说,神经网络的过参数化有利于模型的训练和拟合。 对于这篇论文,一些网友提出了自己的意见。

@jiecaoyu :这个结果很有趣呢。 有助于为互联网压缩找到新的东西。 但是,我认为目前它并没有改变工作流程。 因为基本上需要重新训练,但是修剪训练过的模型会缩短重新训练的时间。

@rantana (使用本文“预定义目标体系结构”部分中介绍的方法的工作流缩短了目标模型的培训时间,并简化了整个工作流,因此大型模型在《通用集成电路基础架构》中,作者构建了可以从头开始训练预定义的目标架构和非结构化剪枝方法的架构。 因此,在这两种情况下,大型体系结构都没有什么意义。 在预定义的情况下尤其如此。 一位网友指出了这篇论文中存在的一些问题:

@M4mb0)读了摘要,感觉作者好像忽略了重要的地方。 在未建立模型之前,不知道网络有多合适,所以首先训练大网络,然后通过下拉和剪枝等操作进行调整很容易。 在这篇论文ICLR 2019的双盲评论区,论文“ThiNet”的一作Jian-Hao Luo和论文“渠道修剪”的一作Yihui He提出了修改意见。 Jian-Hao Luo分别对表2中的VGG-16和ResNet-50的结果提出了疑问,但同时也认为这是“Interesting paper”,研究社区通过“剪枝”方法和“从零开始训练”。 Yihui He要求作者修改表1、表2、表4中有关VGG-16的精度结果。 作者也对他们作出了积极的应对。

论文ICLR 2019地址: https://开放阅读.网络/论坛? id=rJlnB3C5Ym

目前,这篇论文已提交ICLR 2019会议,处于双盲阶段,但从arXiv可以看出清华和加州大学伯克利分校的研究人员进行了合作。 机器哈茨介绍了这篇论文的核心内容,欢迎大家评论。

1引言

过参数化是深度神经网络的公认特性(Denton et al .2014; Ba Caruana,2014 ),这一特性导致高计算成本和高内存使用量。 作为补救方法之一,使用神经网络进行剪枝(LeCun et al .1990; Hassibi Stork,1993; 韩国航空,2015年; Molchanov et al .2016; Li et al .2017 )在计算成本有限的情况下,可以提高深层网络的效率。 网络剪枝的典型过程包括三个步骤:1(训练大的过参数化模型,2 )根据某个标准修剪训练过的模型,3 )微调修剪过的模型以恢复丢失的性能。

图1 :典型的三级网络剪枝步骤。

一般来说,剪枝过程的背后有两个共识。 一般认为,首先训练大的过参数化模型很重要。 (Luo et al .2017 )这是因为它提供了高性能模型(更强大的特征和优化能力),可以在不明显损害准确性的情况下安全删除冗余参数。 因此,这种想法很普遍,认为小网络(一般的基线方法)比从一开始就直接训练要好。 二是剪枝后的体系结构和相关权重被认为是获得最终效率模型的关键。 因此,很多现有的剪枝技术不是从一开始就对其进行训练,而是选择对剪枝后的模型进行微调。 修剪后留下的权重通常被认为是重要的,因为很难准确地选择一组重要的权重。

本研究认为上述两种观点不一定正确。 对多数据集和多网络体系结构,对目前的最优剪枝算法进行了大量的实证评价,得到了两个惊人的

讶的观察结果。首先,对于具备预定义目标网络架构的剪枝算法(图 2),从随机初始化直接训练小目标模型能实现与使用经典三步流程相同的性能。在这种情况下,我们不需要从训练大规模模型开始,而是可以直接从头训练剪枝后模型。其次,对于没有预定义目标网络的剪枝算法,从头开始训练剪枝后的模型也可以实现与微调相当甚至更好的性能。

这一观察结果表明,对于这些剪枝算法而言,重要的是获得的网络架构而不是保留的权重,尽管这些目标架构还是需要训练大模型才能获得。我们的结果和文献中结果的矛盾之处在于超参数的选择、数据增强策略和评估基线模型的计算力限制。

图 2:预定义和未预定义(自动发现)的目标架构之间的区别。稀疏度 x 是用户指定的,a、b、c、d 由剪枝算法决定。

该论文的结果表明,我们需要重新审视现有的网络剪枝算法。第一阶段的过参数化似乎不像之前想象得那么有效。此外,继承大模型的权重不一定是最优选择,而且可能导致剪枝后的模型陷入局部极小值,即使这些权重按剪枝标准来看是「重要的」。该论文的结果显示自动剪枝算法的价值可能在于识别高效结构、执行隐性架构搜索,而不是选择「重要的」权重。

论文:Rethinking the Value of Network Pruning

论文链接:https://arxiv.org/abs/1810.05270

源代码链接: https://github.com/Eric-mingjie/rethinking-network-pruning

摘要:神经网络剪枝是降低深度模型计算成本的常用方式。典型的剪枝算法分为三个步骤:训练(大型模型)、剪枝和微调。在剪枝期间,我们需要根据某个标准修剪掉冗余的权重,并保留重要的权重以保证模型的准确率。在本文中,我们有许多与以往的研究冲突的惊人发现。我们测试了 6 个当前最优剪枝算法,微调剪枝模型的性能只相当于用随机初始化权重训练剪枝模型,有时甚至还不如后者。对于采用预定义目标网络架构的剪枝算法,可以不用典型三步流程,直接从头开始训练目标网络。我们在多个网络架构、数据集和任务上对大量剪枝算法的观察结果是一致的。结果表明:1)训练过参数化的大型模型不一定会得到高效的最终模型;2)学习大型模型的「重要」权重对于较小的剪枝模型未必有用;3)最终模型的高效率不是由一组继承的「重要」权重决定的,而是剪枝架构本身带来的,这表明一些剪枝算法的作用可以被视为执行网络架构搜索。

4 实验

在我们的实验中,我们使用 Scratch-E 来表示用相同的 epoch 数训练小型剪枝模型,使用 Scratch-B 来表示用相同的计算预算来训练(例如,在 ImageNet 上,如果剪枝模型节省了超过两倍的 FLOPs,我们只需要在训练 Scratch-B 的时候加倍 epoch 数,这相当于比大型模型训练有更少的计算预算)。

4.1 预定义的目标架构

表 1:基于通道剪枝(Li et al., 2017)的 L1 范数(准确率)结果。「Pruned Model」指大模型修剪后的模型。模型配置和「Pruned Model」均来自原论文。

表 2:ThiNet(Luo et al., 2017)的(准确率)结果。「VGG-GAP」和「ResNet50-30%」这些模型是按照 Luo 等人 (2017) 论文中定义的配置环境修剪后的模型。为调节我们的实现所使用框架与原论文框架不同所造成的影响,我们对比了未修剪大型模型的准确率下降程度。例如,对于修剪后的模型 VGG-Conv,−1.23 是相对于左侧的 71.03 而言的,71.03 是原论文中未修剪模型 VGG-16 的准确率;−2.75 是相对于左侧的 71.51 而言的,71.51 是我们的实现中 VGG-16 的准确率。

4.2 自动发现的目标架构

表 4:Network Slimming (Liu et al., 2017) 的(准确率)结果。「Prune Ratio」表示整个网络中被剪掉的通道的比例。每个模型的 Prune Ratio 都和原论文一致。

4.3 向目标检测任务的迁移学习

表 7:剪枝在检测任务上的(mAP)结果。剪枝后的模型来自于 Li et al. (2017)。Prune-C 指在分类预训练权重上剪枝,Prune-D 指在迁移至检测任务之后的权重上进行剪枝。Scratch-E/B 表示从头开始在分类任务上预训练剪枝后的模型,然后迁移至检测任务。

5 用网络剪枝进行架构搜索

图 3:不同方法的剪枝后架构,所有模型都是从头训练的,平均运行 5 次。自动剪枝方法(左:Network Slimming (Liu et al., 2017),右:非结构化剪枝 (Han et al., 2015))获得的架构比在整个网络中均匀修剪通道或稀疏权重的方法具备更高的参数效率。

剪枝后架构的设计原则

如果自动发现的架构参数效率更高,研究者可能会想:可以从中得出如何设计更好架构的普遍原则吗?为解答该问题,我们分别对 Network Slimming 和非结构化剪枝进行了两次实验,使用的数据集分别是 VGG-19 和 CIFAR-100。

对于 Network Slimming,我们使用剪枝后架构每个层阶段(具备相同特征图大小的层)的平均通道数来构建新的架构集合,我们将该方法称为「Guided Pruning」;对于非结构化剪枝,我们分析了剪枝后架构的稀疏度模式(图 4),并用它们构建新的稀疏模型集合,我们将该方法称为「Guided Sparsifying」,结果见图 5。可以看到对于 Network Slimming(左)和非结构化剪枝(右),指导设计出的架构(绿色)性能与剪枝后架构(蓝色)不相上下。

图 4:VGG-16 的非结构化剪枝模型中特定层阶段的 3×3 卷积核的平均稀疏度模式。颜色越深表示权重被保留的概率越高。

有趣的是,这些指导设计模式可迁移至不同数据集上的不同架构。我们把在 CIFAR-10 上训练的 VGG-16 剪枝后架构的模式提取出来,用于在 CIFAR-100 上设计高效的 VGG-19。这些架构集合被标注为「Transferred Guided Pruning/Sparsifying」。从下图中我们可以看这些架构(红褐色)的性能比直接在 VGG-19 和 CIFAR-100 上剪枝的架构(蓝色)稍差,比均匀修剪/稀疏化(红色)的架构性能好得多。在这种情况下,研究者不必在目标数据集上训练大模型来找到高效模型,因为可迁移的设计模式能够帮助我们直接获得高效架构。

图 5:不同方法的剪枝后架构,所有模型都是从头训练的,平均运行 5 次。

6 讨论及结论

我们建议未来的剪枝方法基于强大的基线模型进行评估,尤其是在目标剪枝架构已经被预定义的情况下。除了高准确率,从头训练预定义目标模型还具备以下优势:

由于模型较小,我们可以使用更少的 GPU 内存来训练,可能比训练原始的大型模型更快。剪枝标准与步骤有时需要逐层微调 (Luo et al., 2017),或针对不同的网络架构进行调整,现在这些都不必要。我们避免了调整剪枝步骤中涉及的额外超参数。

我们的结果支持使用剪枝方法寻找高效架构或稀疏度模式,可以通过自动剪枝方法来进行。此外,在有些案例中,传统的剪枝方法仍然比从头开始训练模型快得多,比如以下两种情况:

给定预训练的大模型,且几乎没有训练预算的情况;需要获取不同大小的多个模型,在这种情况下研究者可以训练一个大模型,然后按不同比例进行修剪。

总之,我们的实验展示了从头训练小型剪枝后模型几乎总能得到与按照经典「训练、剪枝、微调」步骤训练出的模型相当或更高的准确率。这改变了我们对过参数化必要性、继承权重有效性的理解。我们进一步展示了自动剪枝算法的价值,它可以用于寻找高效架构和提供架构设计原则。

参考内容:https://www.reddit.com/r/MachineLearning/comments/9q5t92/r_recent_rethinking_the_value_of_network_pruning/

扫描二维码推送至手机访问。

版权声明:本文由花开半夏のブログ发布,如需转载请注明出处。

本文链接:https://www.zhangshilong.cn/work/26510.html

标签: 网络模型
分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。