- 論文名稱: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 逐漸學習為不同的已剪裁結構生成權重。

圖 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 可以自動剪裁深度神經網絡中的通道,已剪裁的網絡可以滿足不同的硬約束。
這一通道剪裁問題可表示為:

本文想要找到在權重訓練結束之后,滿足約束條件的損失最小的剪裁網絡通道寬度組合。
為此,研究員構建了 PruningNet,為不同的剪裁網絡結構生成權重,從而只需要在驗證集上評估,即可快速獲知剪裁網絡結構的精度,排序不同剪裁網絡結構的表現。接着,配合任意搜索方法便可搜索最優的剪裁網絡。
具體的 PruningNet 構建及訓練算法和本文采用的進化搜索算法如下:
PruningNet Training

圖 2:PruningNet 的隨機訓練方法圖示
PruningNet 包含兩個全連接層。在前向傳播中,它的輸入是網絡的編碼向量(即每一層的輸出通道寬度),輸出則是網絡的權重矩陣;同時,根據每一層的輸出通道寬度構建對應的 Pruned Network。
已生成的權重矩陣被切割以匹配 Pruned Network 輸入/輸出通道的數量。給定一批輸入圖像,則可計算帶有生成權重的 Pruned Network 的損失。
在反向傳播中,不用更新 Pruned Networks 的權重, 而是計算 PruningNet 權重的梯度,由於 PruningNet 全連接層的輸出與 Pruned Network 的前一個卷積層的輸出之間 reshape 操作和卷積操作也是可微分的, PruningNet 權重的梯度可輕松通過鏈式法則計算。
PruningNet 是端到端可訓練的,其與 Pruned Network 相連的詳細結構可參見圖 3。

圖 3:PruningNet 架構圖示
Pruned-Network Search
在 MetaPruning 使用的進化算法中,每個 Pruned Network 被對應網絡向量(代表了每層通道數)編碼,即 Pruned Network 的基因(Genes)。
在硬約束下,本文首先隨機選擇大量基因,並通過進化獲得相應 Pruned Network 的精度。接着,帶有最高精度的 top k 基因被選中以生成帶有突變和交叉的新基因。
研究員可通過消除不合格的基因輕松施加硬約束。通過進一步重復 top k 的選擇過程和新基因的生成過程,並做若干次迭代,即可獲得滿足硬約束,同時精度最高的基因。詳細算法如下所示。

算法 1:進化搜索算法
實驗
本節意在證明 MetaPruning 方法的有效性。第一,說明一下實驗設置並介紹如何把 MetaPruning 應用於 MobileNet V1/V2,並可輕松泛化至其他網絡結構;第二,把本文方法與一般的 pruning baselines 和當前最優的基於 AutoML 的通道剪裁方法進行對比;第三,可視化由 MetaPruning 生成的 Pruned Network;最后,借助消融實驗闡明權重預測在本文方法中的有效性。本文只介紹第二部分,其他部分請參見原論文。
Comparisons with state-of-the-arts
本文把 MetaPruning 與 uniform pruning baselines 以及當前最優的 AutoML 方法做了對比,其結果如下:

表 1:把 MetaPruning top-1 精度與 MobileNet V1 的一般基線做對比

表 2:把 MetaPruning top-1 精度與 MobileNet V2 的一般基線做對比

表 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.