东升国际官网

申请试用
登录
  • hd-share-img01
主题技术
以原创技术系统为根基,SenseCore东升国际官网AI大装置为主题基座,布局多领域、多方向前沿钻研,
急剧买通AI在各个垂直场景中的利用,向行业赋能。

CVPR 2020 Oral | DMCP: 可微分的深度模型剪枝算法解读

2020-07-29

模型轻量化是深度进建工业化中一个绕不开的话题。好多神经网络模型固然机能很好,但是推算开销巨大,难以在手机等端上设备高效运行。因而,若何得到推算开销满足要求,同机遇能也可支持工业利用的模型一向是各人钻研的沉点。其中,模型剪枝就是此类步骤中比力沉要的一项技术。它通过裁剪神经网络的通路数来降低推算开销,同时凭据特定剪枝算法来拔取裁剪掉哪些通路从而降低该过程中的机能损失。在CVPR 2020上,东升国际官网钻研院被接管为oral的论文DMCP提出了一种基于马尔可夫过程的剪枝算法,为模型剪枝提供了新的思路。该工作将模型剪枝建模成了马尔科夫过程,其中的转移概率能够通过可微分的方式来进行优化,获得了极度好的成效。

 

动机

传统的模型剪枝步骤通常分为三步(如图一所示):训练原模型;用剪枝算法剪掉“不沉要”的通路;将剪枝后模型参数进行微调。而近年来,有的工作提出剪枝后的模型参数其实并不沉要,直接将剪枝模型参数初始化后沉新训练,也能够达到同样的、甚至更高的精度。因而能够将模型剪枝作为模型结构搜索问题来解决,利用搜索算法搜索出模型每一层的通路数。

 

图1.png

图一 传统的模型剪枝pipeline

 

先前的将模型剪枝看作模型结构搜索的工作大多都选取强化进建算法或者遗传算法,而这些算法必要在原模型中大量的采样子结构来评估精度,甚至必要花大量功夫来训练子结构,因而很难泛化到更大更复杂的网络。同时,模型结构搜索问题中也存在此问题。DARTS[1]提出了一种可微分的步骤来提高搜索效能。然而这种可谓分的步骤不能直接套用在模型剪枝中。首先二者的搜索空间分歧,其次DARTS中神经网络每一层的可选操作是相互独立的,但是模型剪枝中的选择隐含着一种相互依赖的关系,例如一层有k+1个通路的话,隐含着这层至少有k个通路。

 

因而,DMCP选择将剪枝的过程建模为一个马尔科夫模型。图二展示了一层通路数为5的卷积层的剪枝过程。其中S1暗示保留第一个通路,S2暗示保留第二个通路,以此类推。T暗示剪枝结束。概率p则为转移概率,通过可进建的参数推算得到,后文中会具体介绍。

 

剪枝过程.gif

图二 单层剪枝过程示意图。

 

 

 

步骤

 

(1) 优化剪枝空间

在传统的剪枝步骤中,会为每个通路推算“沉要性”来决定是否保留它。而当我们把模型剪枝看作模型结构搜索问题后,分歧模型的区别则在于每一层的通路数量。若是依然每个通路单独判断,就会产生同样的结构,造成优化难题。如图三所示:情况1中,最后两个通路被剪掉,情况2中,第2个和第4个通路被剪掉,而这两种情况城市产生3个通路的卷积层,使剪枝空间弘远于现实网络个数。

图3.png

图三 剪枝空间冗余示意图

 

因而,DMCP选取保留前k个通路的方式,大大缩幼了剪枝空间。

 

 

(2) 建模剪枝过程

在一层卷积层中,界说图4.png为保留前k-1个通路的情况下,保留第k个通路的概率。那么保留前k个通路的概率则为图5.png,且:

 

图6.png(1)

 

由(1)中的剪枝方式,我们能够得出,已知保留第k-1个通路后,保留前k-2个通路与保留第k个通路前提独立,且不保留第k-1个通路时,保留第k个通路的概率为0,则有下面的式子成立:

图7.png(2)

其中pk为马尔科夫模型中的转移概率。这样,通过在优化结束后的马尔可夫模型上采样就能够得到相应的剪枝后的模型。

 

(3) 进建转移概率

 

图8.png

图四 可微分马尔可夫模型示意图

图四描述了若何将马尔科夫模型中的转移概率与原模型进行结合,从而使转移概率能够通过模型损失函数的梯度来更新。该过程大体可分为三个步骤

 

步骤一、推算转移概率pk。

 

pk能够由如下公式推算得到:

 

图9.png(3)

 

其中图10.png是可进建的参数。在该步骤中,每层至少保留了一个通路,因而p1 = 1。

 

 

步骤二、推算出每一个通路被保留的的边缘概率p(wk)。

 

 

图11.png(4)

 

由上述公式能够看出,边际概率p(wk)能够被化简为前k个转移概率的乘积,并且随着k的增大而减幼。

 

 

步骤三、将每一个通路的边缘概率与对应通路的输出相乘,作为下一层的输入。

 

图12.png(5)

 

若第k个通路的边际概率趋于0,则暗示该通路的输出趋于0,从而能够被剪掉。通过这种建模方式,能够保障每一层中靠后的通路先会被剪枝。

 

 

(4) 训练流程

图13.png

图五 训练流程示意图

如图五所示,DMCP的训练能够分为两个阶段:训练原模型和更新马尔科夫模型。这两个阶段是交替进行来优化的。

 

阶段一,训练原模型。

在每一轮迭代过程中,利用马尔科夫过程采样两个随机结构,同时也采样了最大与最幼的结构来保障原模型的所有参数能够充分训练。所有采样的结构都与原模型共享训练参数,因而所有子模型在职务数据集上的精度损失函数得到的梯度城市更新至原模型的参数上。

 

阶段二,更新马尔科夫模型

在训练原模型后,通过前文中所描述的步骤将马尔科夫模型中的转移概率和原模型结合,从而能够利用梯度降落的方式更新马尔科夫模型的参数,其损失函数如下:

图14.png(6)

 

其中图15.png为模型在职务数据集上的精度损失函数,图16.png为推算量约束,图17.png为超参数。这里我们使用了模型进展FLOPs来约束模型的推算量(现实利用中能够方便的换用latency等指标来约束模型的推算量),其损失函数如下:

 

图18.png(7)

上述等式中的图19.png为指标推算量,模型的推算量进展为每一层的推算量进展的总和。

图20.png(8)

 

 

尝试了局

作者在ImageNet数据集上对比了其他最新模型剪枝步骤,在各类推算量下,DMCP在MobileNet-v2和ResNet上均超过现有步骤,如下表所示:

图21.png

 

 

传送门

 

DMCP代码目前已经开源,欢迎各位同学使用和互换。

 

论文:DMCP: Differentiable Markov Channel Pruning for Neural Networks

论文作者:Shaopeng Guo, Yujie Wang, Quanquan Li, Junjie Yan

论文地址: https://arxiv.org/pdf/2005.03354.pdf

源码地址:https:///github.com/zx55/dmcp

 

 

References

[1] Yann Le Cun, John S. Denker, and Sara A. Solla. Optimal brain damage. In Advances in Neural Information Processing Systems, pages 598–605. Morgan Kaufmann, 1990.

 

[2] Zhuang Liu, Mingjie Sun, Tinghui Zhou, Gao Huang, and Trevor Darrell. Rethinking the value of network pruning. arXiv preprint arXiv:1810.05270, 2018.

 

[3] Yihui He, Ji Lin, Zhijian Liu, Hanrui Wang, Li-Jia Li, and Song Han. Amc: Automl for model compression and ac- celeration on mobile devices. In Proceedings of the European Conference on Computer Vision (ECCV), pages 784– 800, 2018.

 

[4] Hanxiao Liu, Karen Simonyan, and Yiming Yang. Darts: Differentiable architecture search. arXiv preprint arXiv:1806.09055, 2018.

 

[5] echun Liu, Haoyuan Mu, Xiangyu Zhang, Zichao Guo, Xin Yang, Tim Kwang-Ting Cheng, and Jian Sun. Metapruning: Meta learning for automatic neural network channel pruning. arXiv preprint arXiv:1903.10258, 2019

 

 


产品试用
填写此单一表格,我们将尽快联系您!
商务合作
400 900 5986
周一至周五 9:00-12:00,13:00-18:00
合作同伴招募
【网站地图】