【模型压缩】MetaPruning:基于元学习和AutoML的模型压缩新方法
- 论文名称:MetaPruning: Meta Learning for Automatic Neural Network Channel Pruning
- 论文地址:https://arxiv.org/abs/1903.10258
- 开源代码:https://github.com/megvii-model/MetaPruning
目录
- 导语
- 简介
- 方法
- PruningNet Training
- Pruned-Network Search
- 实验
- Comparisons with state-of-the-arts
- 结论
- 参考文献
导语
通道剪裁(Channel Pruning)作为一种神经网络压缩/加速方法,其有效性已深获认可,并广泛应用于工业界。
一个经典的剪裁方法包含三步:1)训练一个参数过多的大型网络;2)剪裁较不重要的权重或通道;3)微调或再训练已剪裁的网络。其中第二个阶段是关键,它通常借助迭代式逐层剪裁、快速微调或者权重重建以保持精度。
卷积通道剪裁方法主要依赖于数据驱动的稀疏约束(sparsity constraints)或者人工设计的策略。最近,一些基于反馈闭环或者强化学习的 AutoML 方法可自动剪裁一个迭代模型中的通道。
相较于传统剪裁方法, AutoML 方法不仅可以节省人力,还可以帮助人们在不用知道硬件底层实现的情况下,直接为特定硬件定制化设计在满足该硬件上速度限制的最优网络结构。
MetaPruning 作为利用 AutoML 进行网络裁剪的算法之一,有着 AutoML 所共有的省时省力,硬件定制等诸多优势,同时也创新性地加入了先前 AutoML pruning 所不具备的功能,如轻松裁剪 shortcut 中的通道。
简介
过去的研究往往通过逐层裁剪一个已训练好模型中带有不重要权重的通道来达到裁剪的目的。而一项最新研究发现,不管继不继承原始网络的权重,已剪裁的网络都可获得相同精度。
这一发现表明,通道剪裁的本质是决定逐层的通道数量。基于这个,MetaPruning 跳过选择剪裁哪些通道,而直接决定每层剪裁多少通道——好的剪裁结构。
然而,可能的每层通道数组合数巨大,暴力寻找最优的剪裁结构是计算量所不支的。
受到近期的神经网络架构搜索(NAS)的启发,尤其是 One-Shot 模型,以及 HyperNetwork 中的权重预测机制,旷视研究院提出训练一个 PruningNet,它可生成所有候选的已剪裁网络结构的权重,从而仅仅评估其在验证集上的精度,即可搜索表现良好的结构。这极其有效。
PruningNet 的训练采用随机采样网络结构策略,如图 1 所示,它为带有相应网络编码向量(其数量等于每一层的通道数量)的已剪裁网络生成权重。通过在网络编码向量中的随机输入,PruningNet 逐渐学习为不同的已剪裁结构生成权重。
![](https://ask.qcloudimg.com/http-save/yehe-1638669/7j3snbwh69.jpeg?imageView2/2/w/1620)
图 1:MetaPruning 分为两步,1)训练一个 PruningNet,2)搜索最佳的 Pruned Network
训练结束之后,研究员会借助进化算法来搜索表现较好的 Pruned Networks,进化算法中可以灵活加入不同的硬约束(hard constraints),比如浮点数运算次数(FLOPs)或者硬件运行时长(latency)。由于 PruningNet 已学会为各种不同的 Pruned Networks 提供可靠的参数,从而可轻松使用 PruningNet 为 Pruned Networks 结构填入对应参数。
这只需几秒,便可获知 Pruned Network 的精度表现,孰优孰劣,高下立现。这让通道裁剪变的极其省心省力,也是通道剪裁领域的一个新突破,称之为 MetaPruning,其贡献可以归为四个方面:
- MetaPruning 是一种用于通道剪裁的元学习方法,其核心思想是学习一个元网络(称之为 PruningNet ),为不同的剪裁结构生成权重,进而获得不同约束下的多种已剪裁网络。
- 相较于传统剪裁方法,MetaPruning 免除了笨重的超参数人工调节,并可按照想要的指标直接优化。
- 相较于其他 AutoML 方法,MetaPruning 可在搜索目标结构时轻松加入硬约束,而无需手头调节强化学习超参数。
- 在类似于 ResNet 的结构中,short-cut 中通道数往往很难裁剪,因为裁剪这些通道会影响多层。大多通道裁剪算法无法高效裁剪,而 MetaPruning 可以毫不费力剪裁 short-cut 的通道。
方法
MetaPruning 可以自动剪裁深度神经网络中的通道,已剪裁的网络可以满足不同的硬约束。
这一通道剪裁问题可表示为:
![](https://ask.qcloudimg.com/http-save/yehe-1638669/baq5ir9mfo.png?imageView2/2/w/1620)
本文想要找到在权重训练结束之后,满足约束条件的损失最小的剪裁网络通道宽度组合。
为此,研究员构建了 PruningNet,为不同的剪裁网络结构生成权重,从而只需要在验证集上评估,即可快速获知剪裁网络结构的精度,排序不同剪裁网络结构的表现。接着,配合任意搜索方法便可搜索最优的剪裁网络。
具体的 PruningNet 构建及训练算法和本文采用的进化搜索算法如下:
PruningNet Training
![](https://ask.qcloudimg.com/http-save/yehe-1638669/irjp7efbmg.jpeg?imageView2/2/w/1620)
图 2:PruningNet 的随机训练方法图示
PruningNet 包含两个全连接层。在前向传播中,它的输入是网络的编码向量(即每一层的输出通道宽度),输出则是网络的权重矩阵;同时,根据每一层的输出通道宽度构建对应的 Pruned Network。
已生成的权重矩阵被切割以匹配 Pruned Network 输入/输出通道的数量。给定一批输入图像,则可计算带有生成权重的 Pruned Network 的损失。
在反向传播中,不用更新 Pruned Networks 的权重, 而是计算 PruningNet 权重的梯度,由于 PruningNet 全连接层的输出与 Pruned Network 的前一个卷积层的输出之间 reshape 操作和卷积操作也是可微分的, PruningNet 权重的梯度可轻松通过链式法则计算。
PruningNet 是端到端可训练的,其与 Pruned Network 相连的详细结构可参见图 3。
![](https://ask.qcloudimg.com/http-save/yehe-1638669/syuqetkynq.jpeg?imageView2/2/w/1620)
图 3:PruningNet 架构图示
Pruned-Network Search
在 MetaPruning 使用的进化算法中,每个 Pruned Network 被对应网络向量(代表了每层通道数)编码,即 Pruned Network 的基因(Genes)。
在硬约束下,本文首先随机选择大量基因,并通过进化获得相应 Pruned Network 的精度。接着,带有最高精度的 top k 基因被选中以生成带有突变和交叉的新基因。
研究员可通过消除不合格的基因轻松施加硬约束。通过进一步重复 top k 的选择过程和新基因的生成过程,并做若干次迭代,即可获得满足硬约束,同时精度最高的基因。详细算法如下所示。
![](https://ask.qcloudimg.com/http-save/yehe-1638669/9y209lk4c8.jpeg?imageView2/2/w/1620)
算法 1:进化搜索算法
实验
本节意在证明 MetaPruning 方法的有效性。第一,说明一下实验设置并介绍如何把 MetaPruning 应用于 MobileNet V1/V2,并可轻松泛化至其他网络结构;第二,把本文方法与一般的 pruning baselines 和当前最优的基于 AutoML 的通道剪裁方法进行对比;第三,可视化由 MetaPruning 生成的 Pruned Network;最后,借助消融实验阐明权重预测在本文方法中的有效性。本文只介绍第二部分,其他部分请参见原论文。
Comparisons with state-of-the-arts
本文把 MetaPruning 与 uniform pruning baselines 以及当前最优的 AutoML 方法做了对比,其结果如下:
![](https://ask.qcloudimg.com/http-save/yehe-1638669/dpdrk7d584.png?imageView2/2/w/1620)
表 1:把 MetaPruning top-1 精度与 MobileNet V1 的一般基线做对比
![](https://ask.qcloudimg.com/http-save/yehe-1638669/uq39ft7y0l.jpeg?imageView2/2/w/1620)
表 2:把 MetaPruning top-1 精度与 MobileNet V2 的一般基线做对比
![](https://ask.qcloudimg.com/http-save/yehe-1638669/l304pr3lq3.jpeg?imageView2/2/w/1620)
表 3:把 MetaPruning top-1 精度与当前最优的 AutoML 方法做对比
结论
本文给出了用于模型压缩的新方法——MetaPruning,这一元学习方法有以下优势:1)它比一般的 pruning baselines 精度高很多,比其他基于 AutoML 的通道剪裁方法精度更高或更好;2)它可根据不同的约束做灵活的优化而无需额外的超参数;3)它可高效裁剪类似于 ResNet 一样带有 short-cut 的网络结构;4)整个 pipeline 极其高效。
参考文献
- Z. Liu, M. Sun, T. Zhou, G. Huang, and T. Darrell. Re- thinking the value of network pruning. arXiv preprint arXiv:1810.05270, 2018.
- G. Bender, P.-J. Kindermans, B. Zoph, V. Vasudevan, and Q. Le. Understanding and simplifying one-shot architecture search. In International Conference on Machine Learning, pages 549–558, 2018.
- D. Ha, A. Dai, and Q. V. Le. Hypernetworks. arXiv preprint arXiv:1609.09106, 2016.
- A.G.Howard,M.Zhu,B.Chen,D.Kalenichenko,W.Wang, T. Weyand, M. Andreetto, and H. Adam. Mobilenets: Effi- cient convolutional neural networks for mobile vision appli- cations. arXiv preprint arXiv:1704.04861, 2017.
- M. Sandler, A. Howard, M. Zhu, A. Zhmoginov, and L.-C. Chen. Mobilenetv2: Inverted residuals and linear bottle- necks. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 4510–4520, 2018.
- Y. He, J. Lin, Z. Liu, H. Wang, L.-J. Li, and S. Han. Amc: Automl for model compression and acceleration on mobile devices. In Proceedings of the European Conference on Computer Vision (ECCV), pages 784–800, 2018.
- T.-J. Yang, A. Howard, B. Chen, X. Zhang, A. Go, M. San- dler, V. Sze, and H. Adam. Netadapt: Platform-aware neural network adaptation for mobile applications. In Proceedings of the European Conference on Computer Vision (ECCV), pages 285–300, 2018.