2019年的最後一個月,這裡有6種你必須要知道的最新剪枝技術

  • 2019 年 12 月 24 日
  • 筆記

選自heartbeat.fritz.ai

作者:Derrick Mwiti

機器之心編譯

參與:魔王、蛋醬

對於剪枝技術,你了解多少?這裡有一份秘籍,整理了 2019 年度的 6 篇論文所提到的最新剪枝方法。

剪枝是一種幫助神經網絡實現規模更小、效率更高的深度學習方法。這是一種模型優化技術,它刪除權重張量中不必要的值,從而使得壓縮後的神經網絡運行速度更快,網絡訓練過程中的計算成本也有所降低。在將模型部署到手機等邊緣設備上時,剪枝的作用更加明顯現。

本篇精選了神經網絡剪枝領域的一些研究論文,供大家學習參考。

論文 1:Pruning from Scratch (2019)

作者提出了一種從頭開始剪枝的網絡剪枝流程。他們在 CIFAR10 和 ImageNet 數據集上對多個壓縮分類模型進行了試驗,結果表明該流程降低了正常剪枝方法的預訓練開銷,同時提高了網絡的準確率。

論文鏈接:https://arxiv.org/pdf/1909.12579.pdf

下圖展示了傳統剪枝流程的三個階段:預訓練、剪枝和微調。

這篇論文提出的剪枝技術包括可基於隨機初始化權重學得的新的剪枝流程。通道重要性(channel importance)則可通過關聯標量門控(scalar gate)值和每個網絡層來學得。

優化通道重要性,可在稀疏性正則化的情況下提高模型性能。在此過程中,隨機權重並未得到更新。然後,基於給定資源約束,使用二分搜索策略確定剪枝後模型的通道數配置。

下表展示了模型在不同數據集上的準確率:

論文 2:Adversarial Neural Pruning (2019)

這篇論文主要探討在遇到對抗擾動時網絡隱特徵的失真問題。該論文提出的方法是:學習貝葉斯剪枝掩碼,來抑制較高級的失真特徵,從而最大化其面對對抗擾動的穩健性。

論文鏈接:https://arxiv.org/pdf/1908.04355.pdf

作者考慮了深度神經網絡中隱特徵的脆弱性。該方法提出剪除脆弱的特徵,同時保留穩健的特徵。這一過程可通過在貝葉斯框架中對抗地學習剪枝掩碼來完成。

對抗神經剪枝(Adversarial Neural Pruning,ANP)結合了對抗訓練和貝葉斯剪枝方法。該論文提出的新模型及其基線模型是:

  • 標準的卷積神經網絡(Standard)
  • 使用貝塔-伯努利 dropout(beta-Bernoulli dropout)的 base 網絡,即貝葉斯剪枝(BP)
  • 對抗訓練網絡(AT)
  • 使用貝塔-伯努利 dropout 的對抗神經剪枝(ANP)
  • 使用脆弱抑制損失(vulnerability suppression loss)進行正則化得到的對抗訓練網絡(AT-VS)
  • 使用脆弱抑制損失進行正則化得到的對抗神經剪枝網絡(ANP-VS)

下表展示了模型的性能:

論文 3:Rethinking the Value of Network Pruning (ICLR 2019)

這篇論文提出的網絡剪枝方法分為兩類,目標剪枝模型的架構由人類或剪枝算法來決定。在實驗中,作者對比了從頭開始訓練剪枝模型和基於繼承權重進行微調得到的剪枝模型的結果,該對比針對預定義方法和自動化方法。

論文鏈接:https://arxiv.org/pdf/1810.05270v2.pdf

下圖展示了使用基於 L1 範數的濾波器剪枝的預定義結構化剪枝所得到的結果。每一層都使用較小的 L1 範數剪掉一定比例的濾波器。「Pruned Model」列是用於配置每個模型的預定義目標模型列表。我們可以看到,每一行中,從頭開始訓練的模型性能至少與微調模型持平。

如下表所示,ThiNet 貪婪地剪去了對下一層的激活值影響最小的通道。

下表展示了基於回歸的特徵重建方法的結果。該方法最小化了下一層的特徵圖重建誤差,從而實現對通道剪枝。該優化問題可以通過 LASSO 回歸解決。

至於 Network Slimming,在訓練過程中,對批歸一化層中的通道級縮放因子施加 L1 稀疏性。之後,利用較低的縮放因子對通道剪枝。由於通道縮放因子經過跨層對比,因此該方法能夠得到自動發現的目標架構。

論文 4:Network Pruning via Transformable Architecture Search (NeurIPS 2019)

這篇論文提出了直接對具備靈活通道數和層數的網絡應用神經架構搜索。實現剪枝網絡的損失最小化有利於學習通道數。剪枝網絡的特徵圖由基於概率分佈採樣的 K 個特徵圖片段組成,通過反向傳播將損失傳輸到網絡權重和參數化分佈。

論文鏈接:https://arxiv.org/pdf/1905.09717v5.pdf

剪枝網絡的寬度和深度是基於每個分佈規模的最大概率得來的,然後通過從原始網絡進行知識遷移來獲取這些參數。論文作者在 CIFAR-10、CIFAR-100、ImageNet 數據集上評估了該模型。

該剪枝方法包含三個步驟:

  • 用標準分類訓練步驟訓練未經剪枝的大規模網絡;
  • 通過 Transformable Architecture Search (TAS) 搜索小規模網絡的深度和寬度,旨在搜尋最佳規模的網絡。
  • 用簡單的知識蒸餾(KD)方法,將未經剪枝網絡的信息遷移到搜索得到的小規模網絡中去。

下表對比了不同 ResNet 模型經過不同剪枝算法後,所得到的模型在 ImageNet 數據集上的各自表現:

論文 5:Self-Adaptive Network Pruning (ICONIP 2019)

這篇論文提出通過自適應網絡剪枝方法(SANP)降低 CNN 的計算成本,通過對每個卷積層引入 Saliency-and-Pruning Module (SPM) 來實現,SPM 模塊可以學習預測顯著性分數,並對每個通道剪枝。SANP 會根據每個層和每個樣本決定對應的剪枝策略。

論文鏈接:https://arxiv.org/pdf/1910.08906.pdf

根據下面的架構圖,SPM 模塊嵌入在卷積網絡的每個層中。該模塊可以基於輸入特徵去預測通道的顯著性分數,然後為每個通道生成對應的剪枝決策。

對於剪枝決策為 0 的通道,則跳過卷積運算,然後利用分類目標和成本目標聯合訓練骨幹網絡和 SPM 模塊。計算成本取決於每一層的剪枝決策。

下表展示了該方法的一些結果:

論文 6:Structured Pruning of Large Language Models (2019)

這篇論文提出的剪枝方法基於低秩分解和增強拉格朗日 L_0 範數正則化(augmented Lagrangian 10 norm regularization)的原理。L_0 正則化放寬了結構化剪枝帶來的約束,而低秩分解則保留了矩陣的密集結構。

論文鏈接:https://arxiv.org/pdf/1910.04732.pdf

正則化讓網絡去選擇待移除的權重。權重矩陣被分解為兩個較小的矩陣,然後設置這兩個矩陣之間的對角線掩碼(diagonal mask)。在訓練過程中,使用 L_0 正則化對該掩碼執行剪枝。增強拉格朗日方法用於控制模型的最終稀疏程度, 論文作者將該方法叫做 FLOP (Factorized L0 Pruning)。

論文使用的字符級語言模型用在 enwik8 數據集的實驗中,該數據集包含選取自維基百科的 100M 數據。作者在 SRU 和 Transformer-XL 模型上評估了 FLOP 方法。下表展示了部分結果:

以上就是本次為大家介紹的幾種剪枝技術,本文介紹的論文也有代碼實現,大家可以親自測試。

本文為機器之心編譯,轉載請聯繫本公眾號獲得授權。

✄————————————————

加入機器之心(全職記者 / 實習生):[email protected]

投稿或尋求報道:[email protected]

廣告 & 商務合作:[email protected]