初入神经网络剪枝量化3(大白话)

剪枝

1.1 MetaPruning: Meta Learning for Automatic Neural Network Channel Pruning

        该论文提出了一种使用元学习(meta learning)来实现深度神经网络剪枝的策略。

        什么是元学习?

        一句话来说,机器学习是让机器学习,元学习是让机器学会如何学习。

        听起来很厉害,实际上我个人认为意义不是特别大,因为元学习通过学习超参数来实现所谓的机器学会了如何学习,但是元学习本身在训练时也需要人工手动设置参数,更像一种无限套娃的感觉。

        本文的特别之处,我认为主要不在元学习,而是进化算法的使用。

        anyway,本论文就是首先训练一个元网络PruningNet,实现我们提供给定目标网络框架,从而得到网络权值参数。提供的网络框架也就是,有多少层,每一层多少个卷积核,卷积步长之类。我们不可能把所有的情况都一一列出并训练,不太现实。

        所以这里采用随机抽样的方法,随机从网络框架中抽取一定量的网络结构,得到网络权值参数。之后通过进化算法得到最优的网络结构,实现不用微调的剪枝结构。

        什么是进化算法?

        物竞天择,适者生存,大自然的进化规律。自然界会淘汰掉不好的,好的自然会留下,同时好的之间互相交配,同时产生变异,交配和变异中好的也就相当于进化,而不好的再被自然界淘汰。以此,不断进化,最终得到的物种必定是最好的。

        本文呢,也就是将送入元网络中的网络框架作为基因(gene),我们取准确率较高的一定数量的网络框架,作为好的保留,在这些好的之间,进行交叉和变异,交叉也就是两个好的网络框架中互相交换某些参数,变异就是网络框架中随机改变某些参数值,再送入元网络中训练,以此循环,最终得到最优网络框架。

        本文大体就如上述,接下来聊聊细节。

        传统的剪枝算法一般有三个步骤,稀疏训练,剪枝,微调。本论文发现微调会耗费大量的计算量。同时,通过最新研究发现,信道剪枝本质是找到良好的修剪结构-分层的信道数。所以本文提出了一种不用微调的剪枝方法,也就是通过元学习,搜索网络剪枝的结构,来直接得到剪枝结构的网络权重。

        需要注意的是,这里还有一个优势,就是我们选择好的剪枝结构的标准是可以按照我们的要求来加的,这里还是比较方便。

        由于网络规模一般都很大,所以不可能穷举出所有的情况。故采用进化算法,原理就是上面提到的,来得到最优的剪枝网络结构。 

        这篇论文的结构还是非常巧妙,网络每一层的权值都是相互关联不可分割的,所以剪枝重要的应该是网络结构的调整,相对于通过每一层的权值的重要性来裁剪,我认为更合理一些。

1.2 EagleEye: Fast Sub-net Evaluation for Efficient Neural Network Pruning

        这篇论文,首先提出了两个非常重要的问题。

        1. 在传统的剪枝算法中,我们都是剪枝不重要的,重要性低的通道,那为什么模型还是会有明显的精度下降。

        2. 剪枝后的精度是否与微调后的精度为正相关?或者说有多强的正相关?也就是说,他们是否有关联?

        这篇论文,认为DNN剪枝本质就是搜索问题,从所有合法的剪枝策略中,搜索到最优的剪枝策略。

        那我们如何评价哪个剪枝策略更好呢?当然是准确率。那么剪枝过后的网络,再通过微调,时间成本过大。EagleEye提出一种快速并且准确衡量子网络性能的方法,加快剪枝的过程。

        首先,我们来看看,剪枝后的精度与微调后的精度是否为正相关。

        

        看左图,很明显,不相关,剪枝后精度本来低的,微调后精度不一定高。但是,我们看右图微调过后的权重也就是相当于做一个简单的移动。这说明什么?既然权重没发生太大变化,而精度却产生非常大的差异,那说明不是权重的问题,而是BN层的问题。也即是BN层的参数与权值不匹配。所以我们只需对BN层做简单的操作,也就是原本是对权值进行微调,现在就是对于BN层的参数进行微调。

        这就是论文的创新之处。论文提出的思路是将网络中的其他参数冻住,然后利用训练集的样本进行前向计算,修正“继承”来的BN层参数。最终实现将微调后的模型与剪枝后的模型形成正相关。

        

         这很关键,这意味着,我们并不需要对所有剪枝出来的网络进行微调,我们只需对剪枝后效果最好的网络进行微调训练得到最佳剪枝网络,因为他们成正相关,剪枝后效果好,那么微调后效果肯定也好。

        最终,网络的剪枝流程如下

        可以看到,我们只需要在最优的剪枝后的模型上进行微调即可,大大减少了时间成本。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值