神经网络剪枝类论文阅读笔记

后面看的论文都懒得更新了

限于实验条件勉强做了两年剪枝,不过也就剪枝能让我有机会卷顶会了,挺好。

终于到点了,我还算努力,只是后来知道了水论文的无趣便没怎么看文献。

这段时间写毕业论文全靠自己的文档和博客,好好感谢自己吧。只希望以后我能多写博客吧,别搁这无所谓无所谓。

算了确实无所谓。

0、my codes

https://github.com/kangxiatao/prune-master https://gitee.com/kangxiatao/prune-master

1、筛选修剪

AutoPrune: Automatic Network Pruning by Regularizing Auxiliary Parameters

自动剪枝:通过正则化辅助参数自动进行网络剪枝

作者提出AutoPrune,通过优化一组辅助参数来实现剪枝,不过是基于权重剪枝,或能推广到神经元剪枝。

其实是用这组超参数把网络稀疏问题表述为一个优化问题,一组超参数与权重的乘积表示为修剪后的权值矩阵。

在我看来有个很明显的缺点,不管结果如何,用测试集得到一种先验就很蠢,他是根据测试集L1正则化得到的M和训练集L1正则化得到的W,M为所说的辅助参数,M x W为新的权重。

A dynamic CNN pruning method based on matrix similarity

一种基于矩阵相似度的动态CNN剪枝方法

因与我的论文有一点相似之处,所以纳入进来。

大概思路:选过滤器或特征图进行矩阵相似度对比,按一定比例删除相似的。

Channel Pruning for Accelerating Very Deep Neural Networks

通道剪枝加速神经网络

这是一篇ICCV2017的文章,关于用通道剪枝(channel pruning)来做模型加速,通道减枝是模型压缩和加速领域的一个重要分支。

作者不是传统的按范数值剪枝,他利用通道间的冗余来剪枝,先用lasso找出具有代表性的通道,再用最小二乘法重构剩余通道的输出。

最开始的权重是无惩罚训练的,lasso惩罚用来找一个掩码向量(选取通道),最小二次法再进一步优化,个人不太喜欢这种做法,直接对权重做lasso惩罚,虽然没有显式的求解lasso,但简洁有效的做到了稀疏。

Channel-level Acceleration of Deep Face Representations

深度人脸表征的通道级加速

目前的一些网络压缩不一定适用于深层人脸网络,作者提出两种方法,一种基于消除低活跃通道,另一种基于耦合剪枝,重复使用已经计算的元素。

感觉这篇论文有点水,中间没有细看。

Dynamic Channel Pruning: Feature Boosting and Suppression

动态通道剪枝:特征增强和抑制

作者发现神经元的重要性高度依赖输入,提出了动态剪枝,动态模型保证了模型的完整性。在推理过程中,动态网络可以使用输入数据来选择网络的部分进行评估,于是乎可以做增强或抑制处理。

不过动态的剪枝也只能是在运算的环节起到加速作用,并没有减少权重的存储量。

Dynamic Network Surgery for Efficient DNNs

高效DNN的动态网络手术

作者用pruning 和 splicing 来实现动态剪枝,与上一篇不同,此文的动态是指恢复一些被剪掉的连接,因为在复杂的神经网络连接中,连接的重要性难以衡量,可能存在其他冗余的连接被剪掉之后,它可能会变得极其重要。

实现方案是用一个掩码矩阵来标记,通过判别函数得到掩码矩阵。判别函数通过权重的绝对值平方和方差与设定的上下两个阈值比较得到。

我觉得不行。

Efficient Hardware Realization of Convolutional Neural Networks using Intra-Kernel Regular Pruning

基于核内规则剪枝的卷积神经网络的高效硬件实现

针对细颗粒修剪,考虑多种修剪情况,选取修剪后最好的一种模式。

Filter Pruning via Geometric Median for Deep Convolutional Neural Networks Acceleration

用于深度卷积神经网络加速的几何中值滤波剪枝

作者提出用范数值大小剪枝不合理,按中值剪枝合理。

Infinite Feature Selection

无限的特征选择

本文提出的是一个滤波算法,评估特征的重要性来选择特征,感觉是纯学术上瞎胡闹,不看了。

Learning to Prune Filters in Convolutional Neural Networks

学习修剪神经网络的过滤器

文章提出了一种“try-and-learn”的算法去训练一个pruning agent,过程也很容易理解,先随机剪掉一些,再根据评估得到奖励,利用奖励机制优化pruning agent。

这篇文章和我们的无损剪枝有点像,倒也用不着这么复杂。

NISP: Pruning Networks using Neuron Importance Score Propagation

利用神经元重要性评分传播网络剪枝

作者发现目前的剪枝方法考虑的只是单层或相邻的两层,忽略了网络中整体传播的影响,思路是用一个神经网络重要性分数传播(NISP)算法,将网络剪枝描述为一个二进制整数优化问题。

实现部分我懒得看了,差不多得了。

Optimal Brain Damage

最佳脑损伤

这篇文章最让我震惊的是它的发表自1990,至今在各种网络中都能取得非常优异剪枝效果。我在最新的一些论文中总是能看到它的影子,具体做法就是计算目标函数对参数求二阶导数,用于表示参数的贡献度,基于贡献度修剪,其中的公式和近似方法先保留,很经典。

Optimal Brain Surgeon and General Network Prunng

最佳脑外科医生和一般网络修剪

OBD的改进版,主要运算方面的改进,递归计算海森矩阵的逆矩阵。

Pruning Filter in Filter

在过滤器中修剪过滤器

作者认为修剪后的结构比权重更为重要,并引入一个可学习矩阵作为滤波器骨架,反应每个滤波器的形状。

Rethinking the Smaller-Norm-Less-Informative Assumption in Channel Pruning of Convolution Layers

重新思考卷积层通道剪枝中的值小不重要假设

作者对依据范数值大小剪枝做了些讨论,并提出给卷积通道加一个门,来判断该通道有没有起作用。

Strategies for Re-training a Pruned Neural Network in an Edge Computing Paradigm

在边缘计算范式下重新训练修剪神经网络的策略

部署在边缘移动设备之后很难再重新训练,作者提出了剪枝后重训练的概念。

Soft filter pruning for accelerating deep convolutional neural networks

用于加速深度卷积神经网络的软过滤器修剪

一种动态剪枝方法,它能够让被剪掉的过滤器参与一定的训练从而提高剪枝的效率。

The Generalization-Stability Tradeoff In Neural Network Pruning

神经网络剪枝中的泛化-稳定性权衡

文章对泛化展开了一些讨论,最后通过自己的实验得到如下结论:“减少参数量,减少网络对噪声的过拟合,从而提高泛化能力(test acc)” 的说法是不够准确的,因为大网络在不减少参数量的情况下,一样可以有很好的泛化能力,剪枝能提高网络性能的根本原因是在训练过程中引入了训练噪声,从而提高了泛化能力。

Parameter Efficient Training of Deep Convolutional Neural Networks by Dynamic Sparse Reparameterization

Hesham Mostafa and Xin Wang, Parameter efficient training of deep convolutional neural networks by dynamic sparse reparameterization, Proc. Int. Conf. Machine Learning (ICML), 2019.

基于动态稀疏重参数化的深卷积神经网络参数有效训练

训练过程中会动态地改变网络的稀疏结构,取得了优异的性能,作者表明在有限存储和计算预算下训练一个CNN,分配部分资源来描述和演化网络的结构比完全花在一个稠密网络参数上更好。

MLPrune: Multi-Layer Pruning for Automated Neural Network Compression

Wenyuan Zeng and Raquel Urtasun. MLPrune: Multi-layer pruning for automated neural network compression, 2019. URL https://openreview.net/forum?id=r1g5b2RcKm.

用于自动神经网络压缩的多层剪枝

基于 Kronecker 因子近似曲率方法,使用 Hessian 的有效近似作为我们的修剪标准。

Exploiting Kernel Sparsity and Entropy for Interpretable CNN Compression

Li Y, Lin S, Zhang B, et al. Exploiting Kernel Sparsity and Entropy for Interpretable CNN Compression. 2018.

利用核稀疏性和熵实现可解释CNN压缩

基于KSE指标进一步进行核聚类,实现高精度CNN压缩.

需要硬件支持卷积核稀疏。

Group Fisher Pruning for Practical Network Compression

ICML. 2021.

群Fisher修剪在实际网络压缩中的应用

一种分层分组算法,寻找耦合的通道,利用梯度计算的链式原则得到通道的重要性,迭代移除不重要的通道,最后再微调。


=> 理论研究:

A Probabilistic Approach to Neural Network Pruning

一种神经网络剪枝的概率方法

提供一种通用的方法在概率意义上限制修剪后的网络和目标网络之间的间隙


2、稀疏惩罚

Fast ConvNets Using Group-wise Brain Damage

使用群体脑损伤的快速卷积网络

没有特别细致的看,不知道是不是最先提出的,以组的方式修剪卷积张量核。

LEARNING SPARSE NEURAL NETWORKS THROUGH L0 REGULARIZATION

通过正则化L0学习稀疏神经网络

主要是提出一种分布来替代L0优化目标函数,类似伯努利分布的推广,但是我偷懒,没有推导下去。

Learning the Number of Neurons in Deep Networks

学习深度神经网络的神经元数量

使用一个稀疏正则化器,让网络变得更紧凑,文中对group lasso求了闭式解,表明最终神经元参数会趋零。

Learning Structured Sparsity in Deep Neural Networks

深度神经网络的结构稀疏性学习

对Lasso的一种推广,即将特征分组后的Lasso,Group Lasso。

Learning Efficient Convolutional Networks through Network Slimming

通过网络瘦身学习高效卷积网络

将L1正则化施加到BN层的缩放因子上,L1正则化推动BN层的缩放因子趋向于零,从而鉴别出不重要的通道或者神经元。

Pruning Filters for Efficient ConvNets

高效卷积网络的剪枝过滤器

采用L1范数来评估CNN中过滤器的重要性,实现模型剪枝。

PRUNE YOUR NEURONS BLINDLY: NEURAL NETWORK COMPRESSION THROUGH STRUCTURED CLASS-BLIND PRUNING

盲目地修剪你的神经元:神经网络通过结构化的类盲修剪进行压缩

标题很装啊,就是L1惩罚稀疏后结构化剪枝,使得网络更紧凑非稀疏。

Sparse Convolutional Neural Networks

稀疏卷积神经网络

矩阵分解加稀疏约束的融合怪罢了

TRAINING COMPRESSED FULLY-CONNECTED NET-WORKS WITH A DENSITY-DIVERSITY PENALTY

用密度-多样性惩罚训练压缩的全连接网络

看标题就知道,文章将全连接层的密度和多样性也加入损失进行惩罚,意图使得网络变得更稀疏多样性更差。

这点与我们角相异惩罚的想法相反,多样性更差意味着特征表达能力更差,精度上不能接受。

Sparse Training via Boosting Pruning Plasticity with Neuroregeneration

稀疏训练:促进修剪可塑性与神经再生

渐进修剪的方法,属于动态剪枝一类

3、对抗剪枝

Towards Optimal Structured CNN Pruning via Generative Adversarial Learning

通过生成对抗学习实现最优结构化 CNN 剪枝

主要思路就是把剪枝网络设为生成器,将输出特征作为Fake,再选一个泛化优异的模型做Baseline,Baseline的输出作为Real,再设计一个全连接层做判别器,最终达到低精度损失的剪枝目的。

这篇很晚才看到,我们前段时间正好做了个类似的实验,还觉得自己对抗剪枝的想法很新颖,做了些相关测试,后来才看到该文献,发现与前人暗合,就放弃了,实在可惜。

4、彩票理论

The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks

Jonathan Frankle and Michael Carbin. The lottery ticket hypothesis: Finding sparse, trainable neural networks. arXiv preprint arXiv:1803.03635, 2018.

彩票假设:寻找稀疏的、可训练的神经网络

作者的假设:密集、随机初始化的前馈网络包含子网络(中奖彩票),当独立训练时,这些子网络在类似的迭代次数中达到与原始网络相当的测试精度。

彩票假说的提出,是对传统“预训练-剪枝-精度恢复”工作流的挑战。在这之前通常认为预训练模型的权重对压缩后模型的精度恢复十分重要,然而彩票理论却认为通过随机初始化权重的子网络仍可以达到原始网络的精度。

作者找到的中奖彩票的原始初始化彩票:它们的连接具有初始权重,这使得训练特别有效。然后提出了一个算法,以确定中奖彩票和一系列的实验,支持彩票假说和这些偶然初始化的重要性。

寻找中奖网络:作者提出了迭代幅值剪枝(IMP,iterative magnitude pruning)方法:首先,对初始的稠密网络进行多轮训练,直到模型收敛。然后确定最小的s%个权值,并创建一个二值掩模对这些权值进行剪枝。随后,使用之前的初始化权值重新训练稀疏化后的网络。在模型收敛后,我们重复该剪枝过程,并使用新一轮剪枝后发现的掩模设置初始化权值。我们重复这个过程,直到达到期望的稀疏程度,或者测试准确率显著下降。

正好我前一段时间思考了这么一个问题,我还是蛮相信缘分的。NeurlPS2020的剪枝相关论文都有提到彩票理论,剪枝邻域的探索还在继续。(好好看好好学)


围绕彩票假设的扩展研究:

Evaluating lottery tickets under distributional shifts

Shrey Desai, Hongyuan Zhan, and Ahmed Aly. Evaluating lottery tickets under distributional shifts. In Proceedings of the 2nd Workshop on Deep Learning Approaches for Low-Resource NLP (DeepLo 2019), pages 153–162, 2019.

评估分配转移下的彩票

作者集中于评估分布移位下稀疏子网络的初始化,研究在源域中获得的稀疏子网络可以在不同的目标域中隔离地重新训练的程度,另外也考察了不同初始化策略在传输时的效果。最后表明,通过彩票训练获得的稀疏子网络并不是简单地过度适合于特定领域,而是反映了深层神经网络的诱导偏差,可以在多个领域中加以利用。

Stabilizing the Lottery Ticket Hypothesis

Jonathan Frankle, Gintare Karolina Dziugaite, Daniel M Roy, and Michael Carbin. Stabilizing the lottery ticket hypothesis. arXiv preprint arXiv:1903.01611, 2019.

稳定彩票假说

IMP在更深层的网络中很难得到子网络,作者对其进行了改进,比如在训练早期修剪,但不是最开始。另外作者研究了子网的稳定性,提供了新见解。

One ticket to win them all: generalizing lottery ticket initializations across datasets and optimizers

Ari S Morcos, Haonan Yu, Michela Paganini, and Yuandong Tian. One ticket to win them all: generalizing lottery ticket initializations across datasets and optimizers. stat, 1050:6, 2019.

作者通过为一种训练配置(优化器和数据集)生成中奖券并评估中奖网络在另一种配置上的性能。由足够大的数据集生成的中奖彩票初始化包含更广泛地适用于神经网络的归纳偏差,这改进了许多设置的训练,并为开发更好的初始化方法提供了希望。

Deconstructing Lottery Tickets: Zeros, Signs, and the Supermask

Hattie Zhou, Janice Lan, Rosanne Liu, and Jason Yosinski. Deconstructing lottery tickets: Zeros, signs, and the supermask. arXiv preprint arXiv:1905.01067, 2019.

解构彩票:零、符号和超级面具

彩票网络假设的维护派,对其算法进行了分析,消除一些影响因素。另外展示了为什么要把权重置零,以及一些系列重要做法。

Proving the Lottery Ticket Hypothesis: Pruning is All You Need

Eran Malach, Gilad Yehudai, Shai Shalev-Schwartz, and Ohad Shamir. Proving the lottery ticket hypothesis: Pruning is all you need. In International Conference on Machine Learning, pages 6682–6691. PMLR, 2020.

证明彩票假设:你需要修剪

作者从理论上证明了彩票假说,表明对于每个有界分布和每个具有有界权重的目标网络,具有随机权重的充分过度参数化的神经网络包含的子网络大致为与目标网络相同的精度,无需任何进一步的训练。

(代细读

Slot Machines: Discovering Winning Combinations of Random Weights in Neural Networks

老虎机:发现神经网络中随机权重的获胜组合

作者发现仅为每个连接分配少量的随机值,不通过训练,模型也能表现出不错的性能。如果每个连接都有足够的随机权重选项,就存在这些随机权重值的选择,其泛化性能可与具有相同架构的传统训练网络相媲美。

这是个很有趣的现象,也进一步证明了神经网络巨大的表达能力。

(待深入研究)

Efficient Lottery Ticket Finding: Less Data is More

高效彩票发现:数据越少越好

深层网络的样本要么在训练时难以记忆,要么在修剪时很容易忘记。作者设定修剪感知临界集合(PrAC)来选取特定的样本,实现高效彩票发现。

Rigging the Lottery: Making All Tickets Winners

操纵彩票:让所有彩票中奖

动态剪枝的方法,算法分四个部分:稀疏分布,更新计划,删除标准,增长标准。

具体来说:余弦衰减更新稀疏率,删除小权重,添加最大梯度的权重,循环。

作者也尝试了选择梯度方向最小值来激活连接,但没有取得好效果。读到这里时我是比较无语的,因为我现在做的骨架填充和置换就是这个思路,就摁卷吧。

Do We Actually Need Dense Over-Parameterization? In-Time Over-Parameterization in Sparse Training

我们真的需要稠密的参数化吗?稀疏训练时间序列上的过参数

提出的时间序列过参数很有新意,虽然就是给动态剪枝换个概念。文中大量的实验和解释,各种因素的影响。

Connectivity Matters: Neural Network Pruning Through the Lens of Effective Sparsity

连通性问题:通过有效稀疏性的透镜修剪神经网络

从有效压缩入手(有效稀疏度,一般稀疏度),即我们做的核链(服了)。主要考虑层比例,不像SNIP,GraSP一样的层分布。

后面的两个做法不是很明白(二分法确定压缩率?),有时间复现下再补充。


质疑彩票假设:

Rethinking the Value of Network Pruning

Zhuang Liu, Mingjie Sun, Tinghui Zhou, Gao Huang, and Trevor Darrell. Rethinking the value of network pruning. In International Conference on Learning Representations, 2018.

重新思考网络剪枝的价值

作者检查了六种先进的剪枝算法,得到的结果:1)训练一个大的、过度参数化的模型不是获得有效的最终模型所必需的,2)大模型的学习“重要”权重不一定对小剪枝模型有用,3)修剪后的架构本身,而不是一组继承的“重要”权重,是导致最终模型效率提高的原因,这表明某些修剪算法可以被视为执行网络架构搜索。

The State of Sparsity in Deep Neural Networks

Trevor Gale, Erich Elsen, and Sara Hooker. The state of sparsity in deep neural networks. arXiv preprint arXiv:1902.09574, 2019.

深度神经网络中的稀疏状态

作者大规模复制了彩票假设的实验,并表明通过剪枝学习的非结构化稀疏架构无法从头开始训练到与训练模型相同的测试集性能联合稀疏化和优化。

对此作者很生气😡,开源了代码,并给出模型最好的状态,以便未来压缩和稀疏化工作建立严格的基线。

(代细读)

Comparing Rewinding and Fine-tuning in Neural Network Pruning

Alex Renda, Jonathan Frankle, and Michael Carbin. Comparing rewinding and fine-tuning in neural network pruning. arXiv preprint arXiv:2003.02389, 2020.

比较神经网络修剪中的回绕和微调

《比较》

=> 初始化时修剪:

SNIP: SINGLE-SHOT NETWORK PRUNING BASED ON CONNECTION SENSITIVITY

Namhoon Lee, Thalaiyasingam Ajanthan, and Philip HS Torr. Snip: Single-shot network pruning based on connection sensitivity. International Conference on Learning Representations, ICLR, 2019.

基于连接敏感度的单次网络剪枝

19年的一篇会议论文,作者提到现有的方法破坏了网络的效用,不能保持原网络的性能,而且剪枝再训练的过程极其繁琐。他们设计了一个标准,以数据相关的方式直接衡量连接的重要性,减少了对权值的依赖,一开始就对网络进行一次剪枝,然后在稀疏剪枝后的网络上进行训练。

具体做法就是定义一个辅助矩阵来做剪枝标记,根据剪掉和保留导致的损失值变化来确定其网络的连接,按照需求的剪枝率保留损失值变化大的,最后近似成把导数大小(无论符号)作为对损失的影响,所以根据导数来设定权重分数进行修剪。

一些细节问题:

  • 初始化权重对损失值变动影响很大,所以初始化的时候要注意梯度在合理的范围,整个网络方差保持不变具有更好鲁棒性。

  • 损失值变化与数据集关系也很大,作者说选取小批量数据就可

PICKING WINNING TICKETS BEFORE TRAINING BY PRESERVING GRADIENT FLOW

Chaoqi Wang, Guodong Zhang, and Roger Grosse. Picking winning tickets before training by preserving gradient flow. In International Conference on Learning Representations, 2019.

通过保持梯度流在训练前挑选中奖彩票

作者定义一个称之为梯度信号保持的剪枝标准,是基于SNIP和彩票假设的一种扩展,SNIP只考虑一个权重的梯度,容易删除一些重要的连接,彩票假设需要重复的训练。

做法是将梯度再进行一次微分,相当于根据损失值的变化率来评估,称保持梯度流,用泰勒近似来求解的,公式这一块没有SNIP清晰(简单)。

虽然GraSP一定程度上保证了高压缩率下的性能,但比不过迭代考虑层连接的剪枝方案,另外对梯度范数敏感处理GraSP也存在问题,这点在我的论文中有所改进。

Pruning via Iterative Ranking of Sensitivity Statistics

Stijn Verdenius, Maarten Stol, and Patrick Forré. Pruning via iterative ranking of sensitivity statistics. arXiv preprint arXiv:2006.00896, 2020.

通过敏感性统计的迭代排序进行修剪

SNIP的迭代应用。

ESPN: Extremely Sparse Pruned Networks

Minsu Cho, Ameya Joshi, and Chinmay Hegde. Espn: Extremely sparse pruned networks. arXiv preprint arXiv:2006.15741, 2020.

ESPN:非常稀疏的修剪网络

单次网络修剪方法(如 SNIP)与彩票类型方法之间的混合方法

论文中的实验数据很牛逼,代研究。

PROGRESSIVE SKELETONIZATION: TRIMMING MORE FAT FROM A NETWORK AT INITIALIZATION

Pau de Jorge, Amartya Sanyal, Harkirat S Behl, Philip HS Torr, Gregory Rogez, and Puneet K Dokania. Progressive skeletonization: Trimming more fat from a network at initialization. arXiv preprint arXiv:2006.09081, 2020.

渐进式骨骼化:初始化时从网络中修剪更多冗余

基于SNIP的扩展,作者表明稀疏程度超过95%的网络很难保持性能,甚至比随机修剪的网络还差,提出骨架化网络(网络骨架的意思)。一方面迭代SNIP,允许前期不重要的权重在后期变得重要;另一方面允许已经删减的权重能够恢复。

目前来说,迭代过的方案都违背了训练前修剪的初衷。


=> 更深的理论研究:

A Signal Propagation Perspective for Pruning Neural Networks at Initialization

Namhoon Lee, Thalaiyasingam Ajanthan, Stephen Gould, and Philip HS Torr. A signal propagation perspective for pruning neural networks at initialization. In International Conference on Learning Representations, 2019.

基于信号传播的神经网络初始化剪枝方法

为什么修剪一个未经训练的、随机初始化的神经网络是有效的还不清楚。作者通过将连接敏感度作为梯度的形式,正式描述了初始化条件,以确保可靠的连接敏感度测量,从而产生有效的修剪结果。

作者证明了保证连通敏感度的充分条件是分层动态等距。修剪网络会破坏动态等距,所以提出了一种无数据方法来恢复给定稀疏拓扑的分层正交性。

等等(代细读)。

Pruning neural networks without any data by iteratively conserving synaptic flow

Hidenori Tanaka, Daniel Kunin, Daniel L Yamins, and Surya Ganguli. Pruning neural networks without any data by iteratively conserving synaptic flow. Advances in Neural Information Processing Systems, 33, 2020.

通过迭代保存突触流在没有任何数据的情况下修剪神经网络

作者提出找到稀疏网络不需要训练,或者不需要查看数据,他们从数学上推导并通过实验验证了一个守恒定律,解释了现有的基于梯度修剪算法为什么初始化时会导致层崩溃,该理论还阐明了如何完全避免层崩溃,从而激发了一种新的修剪算法――迭代突触流修剪(SynFlow)。

  • 文中的两个假设:剪枝的临界压缩等于网络的最大压缩;层大小和平均层分数之间成反比。

  • 突触显著性(Synaptic saliency):一类分数指标,梯度与参数的阿达玛积。

  • 文中证明出的定理:

    • 突触显著性的神经元守恒

    • 突触显著性的网络守恒

    • 迭代、积极和保守的评分实现了最大的临界压缩

  • 守恒和迭代修剪可避免层崩溃

  • 重新定义一个与数据无关的损失函数

Logarithmic Pruning is All Y ou Need

Orseau L, Hutter M, Rivasplata O. Logarithmic Pruning is All You Need. 2020.

你需要对数修剪

自彩票假说之后提出了很多假说,本文否定了很多假设,提供了更严格的界限:超参数化网络只需要每个目标子网络权重的对数因子神经元数(除深度之外的所有变量)。前面的意思就是可以得到一个对数因子来确定剪枝网络的参数量,作者进行了很多证明和推导,不过我没整明白。

ROBUST PRUNING AT INITIALIZATION

Soufiane Hayou, Jean-Francois Ton, Arnaud Doucet, and Yee Whye Teh. Robust pruning at initialization.

初始化时的健壮修剪

作者使用原则性的缩放和重新参数化来解决极限修剪时的层崩塌问题,其中提出的EOC初始化方法有待考究,原文相当的长,附录中有大量的推导,对于我来说还是太早了。

Finding trainable sparse networks through Neural Tangent Transfer

Tianlin Liu and Friedemann Zenke. Finding trainable sparse networks through neural tangent transfer. In International Conference on Machine Learning, 2020.

作者介绍了神经切线转移,这是一种以无标签方式寻找可训练稀疏网络的方法。依据稀疏网络的训练动态,以神经切线核为特征,模仿函数空间中密集网络的训练动态。

(代细读)


=> 单次修剪的质疑:

PRUNING NEURAL NETWORKS AT INITIALIZATION: WHY ARE WE MISSING THE MARK?

Jonathan Frankle, Gintare Karolina Dziugaite, Daniel M Roy, and Michael Carbin. Pruning neural networks at initialization: Why are we missing the mark? arXiv preprint arXiv:2009.08576, 2020.

在初始化时修剪神经网络:为什么我们忽略了掩码?

作者质疑了SNIP,GraSP和SynFlow,初始化删减是否对性能有限制,并评估了这些方法在初始化时的有效性。

(代细读)


*、网络压缩相关(剪枝之后的进一步压缩方法)

Binarized neural networks Training deep neural networks with weights and activations constrained to+ 1 or-1

二值化神经网络:训练神经网络的权值和激活约束为+1或−1

这是2016年的一篇关于模型量化的文章,在网络量化中,有一种极为诱惑的量化方式:1bit量化——极致的压缩!但是1bit的网络在训练时有诸多细节需要完善。

通过简单的二值化函数,前向传播时权重会与一个权重系数相乘,反向传播时先更新之后再量化。

其中BN操作和其他优化的乘法可以用位移操作来代替,加快运算速度。

DEEP COMPRESSION: COMPRESSING DEEP NEURAL NETWORKS WITH PRUNING, TRAINED QUANTIZATION AND HUFFMAN CODING

深度压缩:通过剪枝、训练量化和霍夫曼编码对深度神经网络进行压缩

首先权重剪枝(小于阈值的剪掉,压缩稀疏行/列储存),然后量化和权重共享(聚类方法),最后Huffman Coding进一步压缩。

通过这三阶段的压缩,直接进行一个敌的无。

Learning both Weights and Connections for Efficient Neural Networks

学习权重和有效的神经网络连接

剪枝三步走,训练、剪枝、重训练。

Predicting Parameters in Deep Learning

预测深度学习中的参数

说的好听,其实是低秩近似的方法,over。

Pruning Convolutional Neural Networks for Resource Efficient Transfer Learning

剪枝卷积神经网络在资源高效传输中的应用

论文中提出了一个基于泰勒展开的新准则,用它去近似由于修剪网络参数引起的损失函数的变化。

文中有不少巧妙的细节,值得学习,保留。

#、---