【论文阅读笔记】Rethinking the value of Network Pruning

论文地址:https://arxiv.org/abs/1810.05270

论文总结

  论文的中心思想其实就一句话:在通过Prune算法得到了压缩模型后,使用来自大网络的权重进行fine-tune,还不如直接随机初始化训练压缩模型。但需要注意的是,随机初始化训练压缩模型,需要比训练大模型使用更多的epochs,才能获得更好的效果。

论文摘要

  作者通过数个网络和数据集的prune 测试,得到了三个观察和结论:

  1. 如果有一个确定的“压缩”模型,训练一个大网络不是必要的;
  2. 在prune算法中,我们所认为“重要”的权重,其实对裁剪的小模型来说,并不是那么有用;
  3. 对于最终的压缩小模型来说,通过prune算法得到的网络架构,比通过prune得到的“重要”的权重更加重要。

  并得出一个最终结论:对于SOT的剪枝算法而言,使用裁剪的权重来fine-tune只能得到类似的或者更差的效果;对于通过剪枝算法得到的特定网络模型,可以直接随机初始化训练,而不用经历传统的裁剪管道(训练大网络,裁剪出权重,finetune小网络)。

  同时,作者对彩票假说(Lottery Tickety Hypothesis)进行了对比,发现使用所谓最佳学习率的“中奖彩票”初始化,并未必随机初始化有更好的结果。

论文介绍

  传统的prune算法有三个通道:(1)训练一个大模型;(2)按某指标来裁剪一个训练好的大模型;(3)finetune裁剪模型以获得因prune而损失的性能;
  在传统的prune观念中,有两个“通识”:(1)训练大模型是必要的,可以从大模型中无损裁剪。一系列工作认为从大模型变小模型,要比直接训练一个小模型要好;(2)裁剪下来的权重和网络架构都是重要的。所以,裁剪算法大都会选择fine-tune而不是重头训练它。
  本文提出,对于结构化裁剪,上述观点都不重要。对于统一裁剪(使用百分比,在每个layer上都裁剪百分比的channal数)的小网络,也是随机初始化重头训练效果来得好;对于使用Prune算法自动获得模型结构的小网络,仍需一个较大网络,最后随机初始化训练比较好。
  但对于非结构化裁剪(权重系数化等),从头训练并不能达到较好的效果。

  同时,作者认为,通过prune算法裁剪出来的模型可以为设计高效网络架构提供设计指导。

  (文章内容外)相关技术中,Zhu & Gupta(2018)提出,小而密集的网络(small-dense model)在相同的内存占用时,并不能达到和大而稀疏的网络(large-sparse model)一样的准确度。体现了prune的重要性。

论文实验

  Scratch-E,训练所有prune的小模型使用相同的epochs;Scratch-B,使用相同的计算预算,即小模型使用更多的epochs训练,以保证相同的训练计算量。

Predefined structure pruning

  即预设裁剪方法,按照某种指标,在每一层裁剪相同比例的channel。

  在三种预设裁剪方法的实验上,Scratch 的结果都要比finetune要好。

   L 1 L_1 L1-norm base Filter Pruning,在每层中,确定百分比的较小 L 1 L_1 L1-norm的filters将会被裁剪。结果如下图所示:基于Scratch的结果,至少都达到了与fine-tune一样的效果;基于Scratch-B的结果要比fine-tune的要好一截。

  ThiNet,贪婪地裁剪掉对下一层激活值影响最小的channel。结果显示:Srcath-B都比fine-tune要好。对于VGG-Tiny模型而言,Scratch-E效果不好,可能是因为裁剪太多了,Scratch-E没有获得足够的训练计算量。(表中的数字表示为与unprune model的差距)

  Regression based Feature Reconstruction,裁减掉最小化下一层feature maps重构误差的channel,其采用LASSO回归,解决优化方法。结果显示:

Automatic Structured Pruning

  自动结构裁剪方法,即通过prune算法得到网络结构。

  Network Slimming,使用L1稀疏化BN层的scale factor,得到跨layer之间的channel 比较,以产生channel-wise的prune。结果显示:在大部分实验中,Scratch-B都比fine-tune要好;Scratch-E略微差一点,但仍在偏差之内。

  Sparse Structure Selection。prune的对象除了channel,也可以是ResNet的block,ResNeXt的group。结果显示:

非结构化裁剪

  在裁剪率较高(95%)的时候,Scratch-E离finetune有一些距离,Scratch-B至少和finetune一样。

网络裁剪可以作为网络结构搜索的一种方式

  作者通过实验证明了:使用相同的训练策略,通过prune得到的网络,达到和统一百分比prune的网络一样的准确率,至少可以减少5倍的参数量

  但在一些模型上,prune算法也存在prune算法得到的网络并不比统一prune得到的网络好的情况。这更多发生在ResNets和DenseNet上这些结构,这些结构各层的稀疏度和统一百分比prune有些类似。这可能是统一prune和prune算法表现相同的原因。(看数据集和任务,个人使用network slimming方法在pose检测上,效果比统一prune要好)

从prune得到的网络结构中获得模型设计指导

  下图中,Guided pruning是prune moel在每个stage(相同大小的feature map)上channel的均值作为模型建立的基础;Transferred Guided pruning是在另一个网络VGG-16在另一个数据集CIFAR-10上得到的Guided pruning模型指导放在VGG-19在CIFAR-100上的模型。
  下图左是结构化裁剪,下图右是非结构化裁剪。结果显示:就算是Transformed Guided Pruning都要比统一裁剪来得好,这表明我们可以不通过训练大模型来获得efficient model,我们也可以通过transfermed design pattern来获得。

彩票假设的实验

  结论:在结构化剪枝上,不管使用大lr还是小lr,“中奖彩票”初始化都不比随机初始化要好;在非结构化剪枝上,“中奖彩票”初始化所带来的的优势只存在于小lr上,但准确度不如大lr训练出来的精确。

  非结构化剪枝:“中奖彩票”只在 l r = 0.01 lr=0.01 lr=0.01时带来收益,但比 l r = 0.1 lr=0.1 lr=0.1要差。

  结构化剪枝:“中奖彩票”并不会比随机初始化要有更高的收益。

  中奖彩票不能在ResNet18和VGG上使用大学习率。在较小学习率的时候,原始的初始化是由帮助的,这可能是因为lr较小时,学到的模型与初始化并不远,较为类似的原因。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: Inception 架构是一种用于计算机视觉的神经网络架构,它通过使用不同尺寸的卷积核来捕捉图像中的不同级别特征。近年来,研究者们对 Inception 架构进行了重新思考,提出了许多改进版本,如 Inception-v2 和 Inception-v3。这些改进版本通过更深层次的网络结构、更高效的卷积层、更强大的正则化方法等来增强模型的性能。 ### 回答2: "重新思考计算机视觉中的Inception架构"是指对计算机视觉中的Inception架构进行反思和重新设计的过程。 在计算机视觉中,深度学习网络被广泛应用于图像分类、物体检测和语义分割等任务。Inception架构是一种流行的深度学习架构之一,它的特点是使用了一系列不同尺寸的卷积核和Inception模块,以提取不同尺度下的图像特征。 然而,随着计算机视觉任务的不断发展和挑战的出现,人们开始重新思考和改进Inception架构。对Inception架构的重新思考主要包括以下几个方面: 首先,针对Inception架构中的参数数量过多和计算复杂度高的问题,人们提出了一些改进方法。例如,通过降低Inception模块中卷积核的维度和参数数量,可以减少计算量,提高网络的训练和推理效率。 其次,人们提出了一些新的模块和网络结构,以解决Inception架构在某些任务上的性能限制。例如,ResNet和DenseNet等网络结构通过引入残差连接和稠密连接,解决了深度网络中的梯度消失和信息丢失问题。 此外,人们还关注如何将Inception架构与其他架构进行融合,以进一步提升计算机视觉任务的性能。例如,人们将Inception架构与注意力机制相结合,以提高目标检测和图像分割的准确性。 总之,"重新思考计算机视觉中的Inception架构"是一个不断演进的过程。通过反思和优化Inception架构,人们可以提高计算机视觉任务的性能、准确性和效率,推动计算机视觉领域的发展。 ### 回答3: 重新思考计算机视觉中的初始架构(rethinking the inception architecture for computer vision)是指对计算机视觉模型中的初始网络架构进行重新思考和改进。 计算机视觉是人工智能领域中的一个重要分支,它致力于让计算机能够像人一样理解和处理图像和视频。而计算机视觉模型的架构对于模型的性能和效果具有很大的影响。 Inception架构是一种经典的计算机视觉模型架构,最早由谷歌在2014年提出。它通过使用多尺度的卷积层和并行结构来提高模型的性能和效果。然而,随着技术的发展和需求的变化,原始的Inception架构可能存在一些限制和缺陷。 重新思考Inception架构意味着我们需要针对当前的计算机视觉任务和要求,重新设计和改进Inception架构。有几个方面可以考虑: 首先,我们可以通过引入更先进的卷积技术和结构来改善模型的性能。例如,可以使用Dilated Convolution(空洞卷积)来增加感受野,或者使用Depthwise Separable Convolution(分离卷积)来减少参数量和计算量。 其次,我们可以将其他经典和有效的架构和思想与Inception架构相结合,以进一步提升性能。例如,可以引入残差连接(Residual Connection)来加快训练速度和提高模型的泛化能力。 此外,我们还可以针对具体的计算机视觉任务,对Inception架构进行特定的优化。例如,对于目标检测任务,可以加入适应性池化层(Adaptive Pooling Layer)来获得更好的位置和尺度信息。 总之,重新思考Inception架构是一个不断改进和优化计算机视觉模型的过程。通过结合新的技术、思想和任务需求,我们可以进一步提高计算机视觉模型的性能和效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值