论文笔记-精读-8.24-Pruning neural networks without any data by iteratively conserving synaptic flow

原文:https://arxiv.org/pdf/2006.05467v1.pdf
代码:https://github.com/ganguli-lab/Synaptic-Flow

总结

解决的问题

  1. 现有的gradient-based的剪枝方法在初始化时会遭遇layer-collapse的问题——即导致过早的剪去一整个layer使得网络模型无法训练的现象;
  2. 彩票假设提出后,对模型到底是否需要pre-trained提出了质疑,很自然有这样一个问题:能不能不训练,甚至不借助于任何数据输入,而直接地detect the wining lottery ticket? 对此目前没有有效的算法;

方法的新颖之处

  1. 不依赖于训练数据(所以不需要loss,也不需要反向传播)就能够识别wining ticket,效率高。对于别的算法,随着数据集的复杂化,需要1000、2000甚至10000次前馈,而SynFlow只需要100次,与数据集无关;
  2. 对于确定的网络 f ( x ; θ 0 ) f(x;\theta_{0}) f(x;θ0)和给定压缩率 ρ \rho ρ只需一个额外超参数,即迭代次数n

研究范围

在VGG, ResNet等模型,对于CIFAR-10/100和Tiny ImageNet等数据集。

效果

99.9%的最大稀疏率 (which means the accuracy drops exactly to zero).
SynFlow1

缺点

只提升了剪枝曲线后半段的能力 (大约在压缩率大于 1 0 3 10^{3} 103时) ,在前半段精度损失还是比较明显。故此算法之在极限情形下有优秀表现,但实际上,像精度损失超过20%的情形,或许不能够得到很好的实际应用。

贡献

  1. Maximal Critical Compression的提出,分析了以往工作为什么不能够达到极限剪枝率;
  2. synaptic saliency概念的归纳;
  3. SynFlow算法的提出。

有意思的引文

本篇的related works部分比较全面,概括得很有条理,建议研究一下。

引文15, 16, 17-新颖的微架构设计
引文25-https://arxiv.org/pdf/2002.04809v1.pdf
引文29, 30, 31-基于更多复杂变量

正文

Layer-collapse: 阻止初始化时就剪枝的关键障碍

几个定义:

  1. compression ratio ρ = N o r i g i n a l N r e m a i n   a f t e r   p r u n i n g \rho=\frac{N_{original}}{N_{remain\text{ }after\text{ }pruning}} ρ=Nremain after pruningNoriginal;
  2. Max compression ρ m a x \rho_{max} ρmax: 刚好不引发layer-collapse的最大压缩率,即每层留一个参数(?一个参数怎么前后连接)
  3. Critical compression ρ c r \rho_{cr} ρcr: 对于不同算法的压缩率上界,对任意 ρ c r \rho_{cr} ρcr都有 ρ c r ≤ ρ m a x \rho_{cr}\le \rho_{max} ρcrρmax

文章认为有如下公理成立:
SynFlow_Axiom1
文章比较的对象有random scoring, soring based on weight magnitudes, 以及另外两个state-of-the-art的single-shot剪枝方法——SNIP(连接敏感度)和GraSP(梯度信号保留)。这两者都是基于梯度的、at initialization的剪枝方法。

突触显著性守恒定理

随机剪枝以相同的数额修剪每一层,因此小的层先被剪完。所以此算法偏好最小层

magnitude-based的方法则相反,以不同的比率修剪每一层。当使用某些初始化方法时,此方法偏好最宽层,权值的大小与层宽度W成反比,因此越大的网络越早被全部剪完。

基于梯度的SNIP和GraSP方法同样是变剪枝比,其这种偏好的根源不太清晰。但是事实上,这两种方法都相当偏好修剪最大层,即带有最多的可训练参数的层。

基于此守恒,我们假设一层之内基于梯度的平均评分与layer size成反比关系。

基于梯度的得分的一般表达式

突触依赖性就是一类能用下式概括的度量值:
S ( θ ) = ∂ R ∂ θ ⊙ θ S(\theta)=\frac{\partial R}{\partial \theta} \odot \theta S(θ)=θRθ

R R R取训练损失 L L L的时候,就退化为 − ∂ L ∂ θ ⊙ θ -\frac{\partial L}{\partial \theta} \odot \theta θLθ,这在Skeletonization中经常被用到;

这个度量同时与SNIP使用的 ∣ ∂ L ∂ θ ⊙ θ ∣ |\frac{\partial L}{\partial \theta} \odot \theta| θLθ,GraSP使用的 − ( H ∂ L ∂ θ ) ⊙ θ -(H\frac{\partial L}{\partial \theta}) \odot \theta (HθL)θ,Taylor-FO(需预训练)中使用的 ( ∂ L ∂ θ ⊙ θ ) 2 (\frac{\partial L}{\partial \theta} \odot \theta)^2 (θLθ)2都密切相关。而当 R = < ∂ L ∂ y , y > R=<\frac{\partial L}{\partial y}, y> R=<yL,y>,度量值就与OBD中使用的 d i a g ( H ) θ ⊙ θ diag(H)\theta \odot \theta diag(H)θθ高度相关。

未完待续

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值