Gate Decorator: Global Filter Pruning Method for Accelerating Deep Convolutional Neural Networks - 模型壓縮 - 1 - 論文學習



Abstract

過濾器(filter)剪枝是卷積神經網絡加速和壓縮的最有效方法之一。在這項工作中,我們提出了一種叫做Gate Decorator的全局過濾器剪枝算法,它通過將一個普通的CNN模塊的輸出乘以通道縮放因子(即gate,代碼中為g)來對其進行轉換。當比例因子設置為0時,相當於刪除相應的過濾器。我們使用泰勒展開來估計由於將比例因子設置為零而導致的損失函數的變化,並使用泰勒展開來估計全局過濾器的重要性排序。然后我們通過移除那些不重要的過濾器來修剪網絡。在修剪之后,我們將所有的比例因子合並到原始的模塊中,因此沒有引入特殊的運算或結構。此外,我們提出了一個迭代剪枝框架稱為Tick-Tock,以提高剪枝精度。大量的實驗證明了我們方法的有效性。例如,我們在ResNet-56上實現了最先進的剪枝比例,減少了70%的Flops,但沒有顯著的准確性損失。對於ImageNet上的ResNet-50,我們的修剪模型減少40%的FLOPs,比基線模型多出0.31%的top-1精度。使用多種數據集,包括CIFAR-10、CIFAR-100、CUB-200、ImageNet ILSVRC-12和PASCAL VOC 2011。

 

1 Introduction

近年來,我們見證了CNNs在許多計算機視覺任務上的顯著成就[40,48,37,51,24]。在強大的現代gpu的支持下,CNN模型可以被設計得更大、更復雜以獲得更好的性能。然而,大量的計算和存儲消耗阻礙了將最先進的模型部署到資源受限的設備上,如移動電話或物聯網設備。約束主要來自於[28]的三個方面:1)模型大小。2)運行時內存。3)計算操作次數。以廣泛使用的VGG-16[39]模型為例。該模型有多達1.38億個參數,消耗超過500MB的存儲空間。為了推斷出一個224×224分辨率的圖像,模型需要160多億個浮點運算(FLOPs)和93MB額外的運行時內存來存儲中間輸出,這對於低端設備來說是一個沉重的負擔。因此,網絡壓縮和加速方法引起了人們極大的興趣。

最近關於模型壓縮和加速的研究可分為四類:1)量化[34,55,54]。2)快速卷積[2,41]。3)低秩近似[7,8,50]。4)濾波剪枝[1,30,15,25,28,33,56,52]。在這些方法中,濾波器剪枝(又稱通道剪枝)因其顯著的優點而受到廣泛的關注。首先,濾波器剪枝是一種通用的技術,可以應用於各種類型的CNN模型。其次,過濾器修剪不會改變模型的設計理念,這使得它很容易與其他壓縮和加速技術相結合。此外,修剪后的網絡不需要專門的硬件或軟件來獲得加速。

神經修剪最早是由Optimal Brain Damage(OBD)提出的[23,10],其中LeCun等人發現,一些神經元可以被刪除,但不會造成明顯的准確性損失。對於CNNs,我們在過濾層對網絡進行剪枝,因此我們將這種技術稱為過濾剪枝(如圖1)。

 

 

關於過濾器剪枝的研究可以分為兩類:1)逐層剪枝[30,15,56]。2)全局修剪[25,28,33,52]。逐層剪枝的方法是每次去除特定層中的濾波器,直到滿足一定的條件,然后最小化下一層的特征重構誤差。但是一層一層的剪枝過濾器是非常耗時的,特別是對於深度網絡。此外,每一層都需要設置一個預定義的剪枝比例,這消除了神經結構搜索中過濾器剪枝算法的能力,我們將在4.3節中討論。另一方面,全局剪枝方法刪除不重要的過濾器,不管它們是哪一層。全局過濾器剪枝的優點是我們不需要為每一層設置剪枝比例。在給定整體剪枝目標的情況下,該算法將揭示所找到的最優網絡結構。全局剪枝方法的關鍵是解決全局濾波器重要性排序問題(GFIR,global filter importance ranking problem

在本文中,我們提出了一種新的全局濾波器剪枝方法,它包括兩個部分:第一部分是用來解決GFIR問題的Gate Decorator算法。第二個是Tick-Tock剪枝框架,以提高剪枝精度。特別地,我們展示了如何將Gate Decorator應用於Batch Normalization[19],並調用修改后的模塊Gate Batch Normalization(GBN)。應該注意的是,由Gate Decorator轉換的模塊是為了滿足修剪的臨時目的而設計的。給定一個預先訓練的模型,我們將BN模塊轉換為GBN,然后進行修剪。當修剪結束時,我們將GBN變回普通BN。這樣,就不需要引入特殊的操作或結構。大量的實驗證明了該方法的有效性。我們在ResNet-56[11]上實現了最先進的剪枝比例,減少了70%的Flops,但沒有顯著的准確性損失。在ImageNet[4]上,我們減少了40%的ResNet-50[11]的Flops,同時增加了0.31%的top-1准確率。我們的貢獻可以總結如下:

我們提出了一個全局的過濾器剪枝管道,它由兩部分組成:一部分是用來解決GFIR問題的Gate Decorator算法,另一部分是用來提高剪枝精度的Tick-Tock剪枝框架。此外,我們還提出了group剪枝技術來解決在使用ResNet[11]這樣的有shortcut結構的網絡進行網絡剪枝時遇到的約束剪枝(Constraint Pruning )問題。
(b)實驗結果表明,我們的方法優於最先進的方法。我們也廣泛地研究了GBN算法和Tick-Tock框架的性質。進一步證明了全局過濾剪枝方法可以看作是一種任務驅動的網絡結構搜索算法。

 

2 Related work

Filter Pruning 。濾波器剪枝是一種很有前途的加速CNNs的解決方案。許多鼓舞人心的作品通過評估它們的重要性來消除這些過濾器。提出了卷積核[25]的大小、零激活函數(APoZ)[17]的平均百分比等啟發式度量指標(Heuristic metric)。Luo等人[30]和He等人[15]使用Lasso回歸來選擇使下一層特征重構誤差最小的濾波器。另一方面,Yu等人[52]優化了最終響應層的重構誤差,並傳播了每個濾波器的重要性評分。Molchanov等人使用泰勒展開來評估濾波器對最終損失函數的影響。另一類作品在一定的限制下訓練網絡,消除一些過濾器或在其中發現冗余。Zhuang等人通過應用額外的識別感知損耗對預訓練模型進行微調,並保留有助於識別能力的濾波器,獲得了良好的結果。然而,識別感知損失是為分類任務設計的,這限制了它的使用范圍。Liu等人[28]和Ye等人[49]對每個濾波器應用尺度因子,對訓練中的損耗增加稀疏約束。Ding等人提出了一種新的優化方法,通過訓練使多個濾波器達到相同的值,然后安全地去除冗余濾波器。這些方法需要從頭開始訓練模型,這對於大型數據集來說非常耗時。

 

Other Methods 。量化方法通過減少不同參數值的數量來壓縮網絡。將32位浮點參數量化為二進制或三進制(ternary)。但這些激進的定量策略通常伴隨着准確性的喪失。[55, 54]表明,當使用適度的量化策略時,量化網絡甚至可以超越全精度網絡。近年來,提出了新的卷積設計。Chen等人設計了一個即插即用的卷積單元OctConv,該單元根據混合特征圖的頻率進行因式分解。實驗結果表明,OctConv可以在減少計算量的同時提高模型的精度。低秩分解方法[7,8,5]用多個低秩矩陣近似網絡權值。加速網絡的另一個熱門研究方向是探索網絡體系結構的設計。許多計算效率架構[16,36,53,32]被提出用於移動設備。這些網絡是由人類專家設計的。為了結合計算機的優勢,自動神經結構搜索(NAS)近年來受到了廣泛的關注。許多研究已經被提出,包括基於強化學習的[57],基於梯度的[47,27],基於進化的[35]方法。值得注意的是,我們提出的Gate Decorator算法與本小節中描述的方法是正交的(orthogonal)。也就是說,Gate Decorator可以與這些方法相結合,以實現更高的壓縮和加速率。

 

3 Method

在本節中,我們首先介紹Gate Decorator (GD)來解決GFIR問題。並展示如何將GD應用於Batch Normalization[19]。然后,我們提出了一個迭代剪枝框架稱為Tick-Tock,以更好的剪枝精度。最后,我們介紹了組剪枝技術來解決在使用shortcuts(即resnet網絡等)進行網絡剪枝時遇到的約束剪枝問題。

3.1 Problem Definition and Gate Decorator

形式上,令L(X, Y;θ)表示用於訓練模型的損失函數,其中X是輸入數據,Y是相應的標簽,θ是模型的參數。我們用K表示網絡中所有過濾器的集合。過濾器修剪是選擇一個子集的過濾器k⊂K,從網絡刪除它們對應的參數θk。我們注意到左邊參數θk+即剪枝后剩下的參數,因此我們有θk+∪θk=θ。為了最小化損失的增加,我們需要通過解決以下優化問題來仔細選擇k:

 

其中,||k||0是k的元素數,解決這個問題的一個簡單方法就是嘗試k的所有可能,選擇對損失影響最小的最佳。但它需要計算||k||0次 ∆L =|L(X, Y);θ)−L(X, Y);θk+)| 來完成一次迭代的修剪,這是不可行的深模型,其有着成千上萬的過濾器。為了解決這一問題,我們提出了Gate Decorator來有效地評估過濾器的重要性。

 

假設特征映射z是k濾波器的輸出,我們讓z乘以一個可訓練的比例因子φ∈R和使用zˆ=φz進行進一步的計算。當gate φ為零,它相當於修剪過濾器k。利用泰勒展開式,我們可以大約評估修剪的∆L。首先,為了符號方便,我們在等式(2) 重寫∆L, 該式子中的Ω包括X, Y和所有除了φ以外的模型參數。因此LΩ(φ)是一個一元函數w.r.t φ。

 

 然后使用泰勒公式在等式(3)和(4)中擴展LΩ(0)

 

連接等式(2)和(4),可以得到:

 

R1是拉格朗日余數,我們忽略這一項因為它需要大量的計算。現在,我們可以基於式(5)求解GFIR問題,在反向傳播過程中,這個問題很容易計算。每個過濾器ki∈K,我們使用等式(6)計算了Θ(φi),即過濾器的重要性分數,D是訓練集:

特別地,我們將Gate Decorator應用到Batch Normalization[19]中,並將其用於我們的實驗。我們將修改后的模塊Gate Batch Normalization稱為GBN。我們選擇BN模塊有兩個原因:1)BN層在大多數情況下跟隨卷積層。因此,我們可以很容易地找到濾波器和BN層的特征映射之間的對應關系。2)我們可以利用BN中的比例因子γ為φ提供排名線索(有關詳細信息,請參閱附錄A):

 

 

GBN 定義在等式(7)中,φ⃗是φ的向量,c是zin的通道大小:

 

此外,對於不使用BN的網絡,我們還可以直接將Gate Decorator應用於卷積。Gated卷積的定義見附錄B:

 

 

3.2 Tick-Tock Pruning Framework

在本節中,我們引入了一個迭代剪枝框架來提高剪枝的准確性,該框架被稱為Tick- tock(圖2)。

Tick步驟設計用來獲得如下的目標:

1)加速剪枝過程

2)計算每個過濾器的重要性得分Θ

3)修復之前修剪造成的內部協變量移位問題[19]

在Tick階段,每個epoch中我們使用訓練數據的一個子集來訓練模型,我們只允許gate φ和最后的線性層是可更新的,以避免在小數據集中發生過度擬合。重要性分數Θ根據等式(6)在向后傳播中計算。訓練后,我們使用重要性得分Θ排序所有的過濾器,並刪除部分最不重要的過濾器。

Tick階段可以重復T次,直到進入Tock階段。Tock階段的目的是對網絡進行微調,以減少由於刪除過濾器而導致的錯誤積累。除此之外,對φ的稀疏約束將添加到訓練期間的損失函數中,這有助於揭示了不重要的過濾器和計算Θ更准確。Tock中使用的損失函數如式(8)所示:

 

最后,我們對修剪后的網絡進行微調以獲得更好的性能。Tock步驟和Fine-tune步驟有兩個不同之處:1)Fine-tune通常比Tock訓練更多的epochs。2)Fine-tune不向loss函數添加稀疏約束。

 

3.3 Group Pruning for the Constrained Pruning Problem

ResNet[11]及其變體[18、46、43]包含shortcut連接,它將元素明智地添加到由兩個剩余塊生成的特征映射上。如果我們單獨對每一層的過濾器進行修剪,可能會導致shortcut連接中特征映射的不對齊。
若干解決辦法被提出。[25,30]繞過這些麻煩的層,只修剪殘差塊的內層。[28,15]在每個殘差塊的第一個卷積層之前插入一個額外的采樣器,不修剪最后一個卷積層。然而,避免麻煩層的方法限制了修剪比例。此外,采樣器解決方案為網絡添加了新的結構,這將引入額外的計算延遲。

為了解決這一問題,我們提出了組剪枝的方法:將由純shortcut connection 連接的GBNs分配給同一組。純shortcut connection是側支上沒有卷積層的快捷方式,如圖3所示:

 

 

一個組可以被看作是一個虛擬的GBN,它的所有成員共享相同的修剪模式。一個組中過濾器的重要性分數是其成員的總和,如等式(9)所示:

g是在組G中GBN成員之一,在組G中所有成員中排名第j的過濾器的重要性分數定義為Θ(φjG)。

 

3.4 Compare to the Similar Work.

PCNN[33]也使用泰勒展開來解決GFIR問題。

所提出的Gate Decorator與PCNN在三個方面有所不同:

1)由於沒有引入尺度因子,PCNN通過對其特征圖中每個元素的一階泰勒多項式求和來評估濾波器的重要度得分,這會累積估計誤差。

2)由於缺少尺度因子,PCNN無法利用稀疏約束。然而,根據我們的實驗,稀疏約束對於提高剪枝精度起着重要的作用。

3)跨層的分數標准化對於PCNN是必要的,但對於Gate Decorator則不是。這是因為PCNN使用累加的方法來計算重要度分數,這會導致分數的尺度隨特征圖的大小而跨層變化。我們放棄了分數標准化,因為我們的評分是全局可比的,而標准化將引入新的估計錯誤。

 

4 Experiments

省略

 

5 Conclusion

在這項工作中,我們提出了三個組件來服務於全局過濾器修剪的目的:

1)Gate Decorator來解決全局過濾器重要性排序(GFIR)問題。

2) Tick-Tock框架,提高修剪精度。

3)group剪枝法解決約束剪枝問題。

我們證明了全局過濾器剪枝方法可以看作是一個任務驅動的網絡結構搜索算法。大量的實驗表明,該方法優於目前幾種最先進的濾波剪枝方法。

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM