模型剪枝-ICLR2019-RETHINKING THE VALUE OF NETWORK PRUNING

背景

1.一般认为一开始训练一个 large, over-parameterized network 是很重要的,以大模型的性能为基准进行裁剪,一般认为这个方式比从头训练一个小模型的方式是更好的。
2.一般认为裁剪后的网络模型结构及其参数权重都很重要。所以目前大部分方法都是在裁剪后的模型上进行微调

介绍

对于这些修剪算法,重要的是获得的体系结构,而不是保留的权重,尽管训练需要大模型来找到目标体系结构是必须的。

本文结论

1.如果我们的目标小模型是事先确定的,那么可以直接在数据集上训练此模型,得到的性能是最佳的,不比微调的性能差
2.对于目标模型不是事先确定的情况,从头开始训练裁剪后的模型,其得到的网络性能也是最好的,不比微调的差。

模型裁剪的过程本质上可能是一个最优网络结构的搜索过程
也就是说剪枝的主要作用是进行网络结构搜索,通过剪枝发现一个高效的网络结构,剪枝得到的权重其实没那么重要。
在这里插入图片描述
predefined target architectures 这里我们举一个例子来说明一下: prune 50% channels in each layer of VGG,不管是哪个具体的 channels 被裁剪,最终的网络结构是一样的。因为 the pruning algorithm 将每个网络层中 least important 50% channels 裁掉。具体裁剪的比例一般是经验或尝试决定
网络模型可以使用以下几个指标来描述:
model size, memory footprint, the number of computation operations (FLOPs) and power usage
本文选择了三个数据集和三个标准的网络结构
CIFAR-10, CIFAR-100 , and ImageNet
VGG, ResNet, and DenseNet

6个网络裁剪方法:
L1-norm based Channel Pruning (Li et al., 2017)
ThiNet (Luo et al., 2017)
Regression based Feature Reconstruction (He et al., 2017b)
Network Slimming (Liu et al., 2017):
Sparse Structure Selection (Huang & Wang, 2018) :
Non-structured Weight Pruning (Han et al., 2015):

实验

如果从头训练小模型,那么训练时间即迭代次数是一个关键的问题

这里我们做了两个尝试:
Scratch-E 表示和训练大模型的迭代次数一样 to denote training the small pruned models for the same epochs
Scratch-B 表示两者的计算量一样(和大模型训练的计算量)to denote training for the same amount of computation budget

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值