神經網絡剪枝領域優秀研究論文彙總

剪枝是深度學習中用來幫助開發更小、更高效神經網絡的技術。它是一種模型優化技術,通過移除權重張量中冗餘的值來實現模型優化。它實現了神經網絡的壓縮,讓神經網絡運行得更快,減少了網絡訓練的計算開銷,這在把模型部署到手機或者其他終端設備上時顯得尤爲重要。在這篇指南中,我們會瀏覽一下神經網絡剪枝領域的一些研究論文。

Pruning from Scratch(2019)

這篇論文的作者提出了網絡剪枝流水線,能夠從一開始訓練模型時就進行剪枝。基於CIFAR10和ImageNet數據集做的壓縮分類模型實驗,可以看出這個流水線減少了原來通用流水線方法裏產生的預訓練開銷,同時還增加了網絡的精度。

論文網頁:https://arxiv.org/abs/1909.12579

下圖所示是傳統剪枝過程的3個階段。這個過程包括預訓練、剪枝和微調。

來源:https://arxiv.org/pdf/1909.12579.pdf

這篇論文裏提出的剪枝技術需要構建一條剪枝流水線,這條流水線可以從隨機初始化權重開始進行學習得到。該論文方法給每個網絡層賦予標量門值,從而學習得到通道的重要性。

該論文方法爲了改善模型在稀疏正則化下的性能,對通道重要性做了優化。在這個優化過程中,不用更新隨機權重,之後,在給予一定資源限制的情況下,使用二分查找策略來決定剪枝後模型的通道數量配置。

來源:https://arxiv.org/pdf/1909.12579.pdf

這裏讓我們看一下不同數據集上的模型精度:

來源:https://arxiv.org/pdf/1909.12579.pdf

在把模型部署到低算力的設備上(如智能手機)時,優化機器學習模型顯得特別重要(也很複雜)。Fritz AI擁有的專家和工具能夠讓這個過程變得儘可能容易。

Adversarial Neural Pruning(2019)

這篇論文研究了具有對抗性擾動的網絡隱特徵的畸變問題。論文提出的方法通過學習一個貝葉斯剪枝掩碼來抑制那些畸變較高的特徵,這樣可以最大化對抗性偏差上的健壯性。

作者研究了深度神經網絡裏隱特徵的不穩定性。論文方法提出裁剪掉不穩定的特徵,而保留健壯性的特徵。這是在貝葉斯框架下通過對抗式學習剪枝掩碼來實現的。

來源:https://arxiv.org/pdf/1908.04355.pdf

論文網頁:https://arxiv.org/abs/1908.04355

對抗式神經剪枝(ANP:Adversarial Neural Pruning)在對抗式訓練的概念中結合了貝葉斯剪枝方法。這個方法的基本情況如下:

  • 它是一個標準的卷積神經網絡
  • 它是一個對抗式訓練網絡
  • 它是採用beta-Bernoulli dropout方法的對抗式剪枝方法
  • 這個對抗式訓練網絡通過易損抑制代價函數進行正則化
  • 這個對抗式神經剪枝網絡通過易損抑制代價函數進行正則化

以下表格顯示了這個模型的性能表現。

來源:https://arxiv.org/pdf/1908.04355.pdf

Rethinking the Value of Network Pruning(ICLR 2019)

這篇論文提出的網絡剪枝方法分爲兩部分。裁剪後的目標模型要麼是由人工設計出來,要麼是由剪枝算法計算得到。在該論文實驗部分,作者還對比了兩種結果,即從頭開始訓練一個裁剪過的模型,以及對繼承的權重進行微調訓練這兩種訓練方式的結果,每種結果裏的網絡類型都包含人工預定義網絡和算法自動生成的網絡兩種。

論文頁面:https://arxiv.org/abs/1810.05270v2

下圖顯示了預定義的結構化剪枝結果,使用的是基於L1-norm的過濾器剪枝。每一層會剪掉一定比例的過濾器,即L1-norm較小的那一部分過濾器。Pruned Method這一列顯示了預定義的模型配置清單。論文觀察到,每一行,從頭訓練的模型都達到了至少和微調模型同樣水平的精度。

來源:https://arxiv.org/pdf/1810.05270v2.pdf

如下圖顯示,ThiNet用貪婪方式對通道進行剪枝,剪掉的是對下一層激活值影響最小的那些通道。

來源:https://arxiv.org/pdf/1810.05270v2.pdf

下一個表格顯示了Regression-based Feature Reconstruction方法得到的結果。這個方法最小化下一層的特徵圖重建誤差,以此來對通道剪枝。這個優化問題是通過LASSO迴歸來解決的。

來源:https://arxiv.org/pdf/1810.05270v2.pdf

對於Network Slimming方法,在訓練時,L1-sparsity將Batch Normalization層的縮放因子施加在了每層通道上。訓練完成之後,具有較低縮放因子的通道就會被裁剪掉。這個方法在不同層之間比較通道縮放因子,所以能夠自動生成目標網絡架構。

來源:https://arxiv.org/pdf/1810.05270v2.pdf

Network Pruning via Transformable Architecture Search(NeurIPS 2019)

這篇論文提出將神經網絡搜索方法(https://heartbeat.fritz.ai/research-guide-for-neural-architecture-search-b250c5b1b2e5)直接應用於某個網絡,在搜索空間內給這個網絡設置不同的通道數和層大小。裁剪後網絡的損失最小化有助於學習最終通道的數量。裁剪後網絡的特徵圖是由K個基於概率分佈採樣的特徵圖片段組成。損失被反向傳播到網絡權重和參數化分佈上。

論文網頁:https://arxiv.org/abs/1905.09717v5

該論文方法根據每個分佈的最大概率得到裁剪後網絡的寬度和深度。這些參數是通過原始網絡知識的轉移來學習得到的。該論文在CIFAR-10、CIFAR-100和ImageNet數據集上對模型進行了實驗。

來源:https://arxiv.org/pdf/1905.09717v5.pdf

這個剪枝方法包含三個階段:

  • 用一個標準的分類訓練過程,來訓練一個未裁剪過的大型網絡
  • 通過可轉移架構搜索(TAS:Transformable Architecture Search)方法來搜索小網絡的深度和寬度。TAS旨在搜索網絡的最優大小。
  • 通過簡單的知識蒸餾(KD:Knowledge Distillation)方法將信息從未裁剪的網絡轉移至搜索到的小網絡中。

來源:https://arxiv.org/pdf/1905.09717v5.pdf

以下表格是在ImageNet數據集上,使用不同的ResNets網絡和不同的剪枝算法的結果對比:

來源:https://arxiv.org/pdf/1905.09717v5.pdf

Self-Adaptive Network Pruning(ICONIP 2019)

這篇論文提出通過自適應網絡剪枝方法(SANP:Self-Adaptive Network Pruning)來減少CNN網絡的計算開銷。這個方法爲每一個卷積層都引入了一個顯著性和裁剪模塊(SPM:Saliency-and-Pruning Module)。這個模塊學習預測顯著性評分,並將剪枝方法用於每個通道。SANP根據每層和每個樣本來決定裁剪策略。

論文網頁:https://arxiv.org/abs/1910.08906

正如在以下架構圖裏看到的那樣,顯著性和裁剪模塊嵌入在卷積網絡的每一層裏。這個模塊爲通道預測顯著性評分,這是從輸入特徵開始的,然後爲每個通道生成裁剪方法。

卷積中對於裁剪值爲0的通道,卷積會跳過這類通道不進行卷積。之後,對主幹網絡和SPM的分類代價目標函數進行聯合訓練。該方法會在每一層的裁剪決策基礎上估計計算開銷。

來源:https://arxiv.org/pdf/1910.08906.pdf)df/1910.08906.pdf

這個方法的實驗結果顯示如下:

來源:https://arxiv.org/pdf/1910.08906.pdf

Structured Pruning of Large Language Models(2019)

這篇論文提出的剪枝方法基於低秩分解和增廣拉格朗日10範式正則化(http://amsacta.unibo.it/1129/1/lagrange_methods.pdf)。10範式正則化放寬了結構化剪枝的約束,而低秩分解可以保留矩陣的緻密結構。

論文網頁:https://arxiv.org/abs/1910.04732

正則化項可以讓網絡選擇移除哪些權重。權重矩陣被分解爲兩個小矩陣,然後就可以確定這兩個矩陣間的對角型掩碼。在訓練期間,通過10範式正則化給這個掩碼剪枝,增廣拉格朗日方法用來控制這個模型最終的稀疏程度。作者將其方法稱爲分解L0剪枝(FLOP:Factorized L0 Pruning)。

使用的字符級語言模型來自enwik8數據集,它包含Wikipedia上的100兆字節數據。該論文用FLOP方法在SRU和Transformer-XL模型上進行了評估。以下顯示了一些實驗結果數據。

來源:https://arxiv.org/pdf/1910.04732.pdf

結語

我們現在應該瞭解了一些最常用的、最新的剪枝技術。以上提及鏈接的論文和摘要也包含了代碼實現。

原文鏈接:

https://heartbeat.fritz.ai/research-guide-pruning-techniques-for-neural-networks-d9b8440ab10d

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章