999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于聯合動態剪枝的深度神經網絡壓縮算法

2021-07-02 08:54:20張明明盧慶寧李文中
計算機應用 2021年6期
關鍵詞:模型

張明明,盧慶寧,李文中,宋 滸

(1.國網江蘇省電力有限公司信息通信分公司,南京 210024;2.計算機軟件新技術國家重點實驗室(南京大學),南京 210023)

(?通信作者電子郵箱qnlu@smail.nju.edu.cn)

0 引言

近年來深度學習發展迅猛,其在圖像識別、語音識別、文本翻譯等多領域的應用,在國內外學術和工業界都獲得了廣泛的關注。然而深度神經網絡(Deep Neural Network,DNN)通常需要大量計算開銷,其模型的復雜度、高額的存儲空間以及計算資源消耗導致其難以被應用在計算資源、能源受限的移動設備中。例如經典的圖像分類網絡VGG16[1],參數數量多達1.3 億,占用存儲空間500 MB,需要進行309 億次浮點運算才能完成一次圖像識別任務。文獻[2]指出,深度學習神經網絡中存在很大程度的冗余,僅使用很少一部分權值就可以預測剩余的權值。因而,模型壓縮(Model Compression,MC)[3]在理論上存在可行性,在現實中也存在著必要性。

模型壓縮的最終目的是降低模型的復雜度,減少模型的存儲空間,并加速模型的訓練和推理。因而,其涉及到多方面的不同問題,包括優化算法、計算機架構、數據壓縮、硬件設計等。模型壓縮的主要方法有低秩近似、網絡量化、知識蒸餾、緊湊網絡設計,以及網絡剪枝[4-5]。

作為模型壓縮的一個分支,神經網絡剪枝技術通過移除不重要的分支,降低大型神經網絡計算消耗,使得其可以在移動設備上運行。如圖1 所示,網絡剪枝采用某種衡量標準,移除網絡中一部分權值,或者移除一部分權值間的連接。因而,如何衡量權重的重要性成為了算法的核心問題。

圖1 網絡剪枝示意Fig.1 Schematic diagram of network pruning

較早的剪枝工作側重于權值,通過移除不重要的神經元,并對網絡進行再訓練,微調至收斂。Han 等[6]設計了深度壓縮、結合剪枝、量化和哈夫曼編碼三種方法,在AlexNet上獲得了35 倍的壓縮比。國內針對權值剪枝也有廣泛的研究,鞏凱強等[7]提出了基于統計量的網絡剪枝結合張量分解的神經網絡壓縮方法,選擇均值和方差作為評判權值貢獻度的依據,有利于模型在資源受限的嵌入式設備中的部署。王忠鋒等[8]則以梯度作為評判權值重要性的依據,移除模型中小于閾值的梯度對應權值,并且通過再訓練恢復模型容量的損失。

然而,針對權值的剪枝會導致網絡中出現大量不規則的零,卷積核成為稀疏張量,模型趨向于非結構化。針對非結構化剪枝的局限性,Li 等[9]設計了通道剪枝算法。作為一種結構化的剪枝算法,通道剪枝設計某種標準衡量卷積核的重要性,并完整地剪除不重要的卷積核及其對應的特征圖,從而不會出現大部分權值被剪除而留下稀疏張量的情況。Liu 等[10]設計了網絡瘦身,著眼于批標準化層中的縮放因子,在訓練過程中對其施加正則約束,使得模型在訓練中朝向通道結構稀疏的情況不斷調整。

以上算法可以統稱為靜態剪枝算法,其相同點在于:被剪枝的參數從模型中永久移除,后續不再參與推理和訓練。盡管網絡中大部分參數是多余的,靜態剪枝算法仍然會永久性地移除一部分關鍵性參數,無論采取何種評判標準都難以避免誤剪枝,這樣必然導致網絡容量的損失。相較于靜態剪枝算法,動態剪枝的目的是保留被剪枝部分的能力,避免永久性的剪枝導致的模型容量降低。He 等[11]提出的軟通道剪枝是較為典型的動態剪枝算法,允許被剪除的卷積核參與之后的迭代更新。Guo 等[12]提出的動態外科手術,采用了剪枝與嫁接相結合算法,將剪枝工作融合到訓練的過程中,利用嫁接修復誤剪枝的神經元連接。

另一類算法統稱為動態剪枝,其特點為不永久性地移除任何參數,轉而根據輸入圖像的特征,動態地選擇網絡的一部分參與運算,以降低模型的復雜度。類比于神經網絡的一種常用的正則化算法Dropout[13],其基本思想是隨機丟棄部分神經元,降低特征提取的共同作用影響,用于避免過擬合,提高泛化能力。動態剪枝不同在設計某種標準用來衡量輸入圖像與卷積核的關系,而非簡單地隨機丟棄。Gao 等[14]指出,對于特定的輸入圖像,能夠被激活的卷積核是存在并有限的。由Hua等[15]提出的通道門控網絡結構,通過構建通道門控模塊,設定可自主學習的門控函數,提取輸入圖像特征并選擇對應的通道參與卷積運算。Gao 等[14]提出了特征加速壓縮,利用預測網絡控制分類網絡的結構,并和分類網絡一同訓練、學習。然而,動態剪枝算法的獨特之處——動態選擇,也恰恰制約了其壓縮網絡的能力。由于動態剪枝算法根據輸入圖像的特征選擇被激活的卷積核,考慮到輸入圖像是未知的,被激活的卷積核也是未知的,卷積核很難被永久性地移除,這也導致了網絡壓縮比明顯小于靜態剪枝算法。

基于傳統的靜態剪枝和動態剪枝存在的一系列問題,本文提出了一種聯合動態剪枝算法,可以綜合分析卷積核與輸入圖像的特征。本文的主要工作如下:

1)提出卷積核動態剪枝算法,基于卷積核的特征,永久性地剪除深度神經網絡中的一部分參數,同時盡可能地保持模型容量。

2)提出通道動態剪枝算法,基于輸入圖像的特征,在不移除深度神經網絡參數的前提下,選擇網絡的一部分參數參與運算,以降低復雜度。

3)將卷積核動態剪枝與通道動態壓縮有機結合,綜合卷積核和輸入圖像的特征,保持模型容量和復雜度的平衡。

1 聯合動態剪枝算法

1.1 網絡結構定義

本文工作主要基于深度學習神經網絡中的卷積神經網絡(Convolutional Neural Network,CNN)進行。CNN 被廣泛運用于圖像分類、目標檢測、異常檢測等方面,對于圖像數據具有很高的泛用性。CNN可以被參數化表示為:

其中:W(i)代表第i個卷積層的權值張量;Ni代表第i層的輸入通道數量,Ni+1代表第i層的輸出通道數量,也就相當于第i層的卷積核數量、第i+1 層的輸入通道數量;K×K代表卷積核大小;L代表網絡卷積層的總數。第i個卷積層的卷積運算的過程,也就是Ni+1個三維的卷積核作用于輸入特征圖,每一個卷積核生成一個對應的特征圖,將其轉化為輸出特征圖,并作為第i+1個卷積層的輸入。

因而在剪枝算法中,若卷積核Fi,j被移除,對應的特征圖也會被移除;若卷積核Fi,j被置零,對應的特征圖也會被置零。假設第i個卷積層的卷積核剪枝率為Pi,由于該層卷積核總數為Ni+1,則有Ni+1Pi個卷積核被移除。該層的卷積核個數從Ni+1減少為Ni+1(1-Pi),進而輸出特征圖的大小也縮減為Ni+1(1-Pi)×Hi+1×Wi+1,第i+1 層的輸入通道數也會縮減為Ni+1(1-Pi)。也就是說,第i層和第i+1 層的計算開銷都會減小為原先的1-Pi倍。

值得注意的是,若卷積核被永久性剪除,那么特征圖的大小也會永久性地改變;但如果只是將卷積核置零,那么對應的特征圖也被置零,然而輸出特征圖的大小并沒有變化。以圖2 為例來說明。如果永久性移除淺色的卷積核,那么對應的淺色特征圖也被移除,輸出通道數量減少,進而使得下一卷積層每一個卷積核的通道數也減少。如果將深色的卷積核置零,那么對應的深色特征圖也被置零;然而,由于深色卷積核并未被剪除,網絡的結構沒有發生變化,因而下一卷積層的卷積核不受到影響。也就是說,將卷積核置零可以在不改變網絡結構的情況下影響到網絡的輸出,這也就是卷積核動態剪枝算法的核心思想。

圖2 移除和置零卷積核對輸出特征圖的影響Fig.2 Influence of removing and zeroizing convolution kernels on output feature map

以上介紹了卷積神經網絡中典型的卷積層定義,然而實際訓練和推理中,一般在卷積層之后緊跟批標準化(Batch Normalization,BN)[16]和激活操作,以抑制梯度消失、使神經網絡更好地擬合非線性數據,并加快訓練速度。一個包含BN和線性整流函數(Rectified Linear Unit,ReLU)[17]激活操作的卷積層完整定義如下:

其中:Xi代表第i個卷積層的輸入特征圖;norm代表標準化操作;γi和βi分別代表可訓練的參數縮放因子scale和偏置offset。convi(Xi,W(i))代表第i層的卷積操作,利用權值張量W(i)作用于輸入特征圖Xi上。這里的“·”和“+”運算均基于張量元素,(z)+=max{z,0}代表ReLU 函數激活操作。聯合動態剪枝算法主要考慮卷積運算的優化,也就是convi(Xi,W(i))的相關操作,這也是卷積神經網絡中運算量最大、復雜度最高的部分。

1.2 算法框架

考慮到傳統的靜態剪枝算法會造成模型容量不可逆的降低,而現有的動態剪枝算法盡管保持了模型容量,卻沒有較大幅度地降低模型的復雜度。模型的容量和復雜度,是目前研究中普遍遇到的一個兩難問題。針對這個問題,本文提出了聯合動態剪枝算法。聯合動態剪枝算法分為卷積核動態剪枝和通道動態壓縮兩個部分,但二者并非互相割裂,而是相輔相成,共同完成網絡剪枝的工作。

首先,針對卷積核自身的特征,設計卷積核動態剪枝的算法,用于永久性剪除部分卷積核,以提升壓縮比。剪枝標準為L1 范數,但不直接把這些卷積核從網絡中刪除,而是將對應通道置零后繼續訓練學習,允許置零的卷積核在反向傳播中更新,直到收斂為止。針對輸入圖像特征,設計通道動態壓縮的算法,將輸入圖像采樣后經過線性變化預測通道的重要性,然后將對應通道的結果置零,也就相當于在沒有改變網絡結構的情況下,跳過了一部分的卷積運算。

以圖3 為例來說明聯合動態剪枝算法的流程。定義卷積核動態剪枝率為β,通道動態壓縮比為α。為了平衡準確率和模型復雜度,規定2β=α+1,也就是將完整的網絡壓縮比分為兩個步長,利用卷積核動態剪枝的算法壓縮網絡至β,利用通道動態壓縮的算法壓縮網絡至α,綜合獲得需要置零的所有通道。值得注意的是,這兩步是同時在訓練的過程中進行的,實際上并沒有先后順序之分。圖3 中淺色的卷積核被置零,并允許在后續訓練中更新;深色部分并非原先網絡的參數,而是輸入特征圖經過預測網絡處理后獲得的通道重要性預測結果,這個結果被乘到卷積運算的結果中。

圖3 聯合動態剪枝算法框架Fig.3 Framework of combined dynamic pruning algorithm

卷積核動態剪枝和通道動態壓縮并非相互獨立,而是有機融合;并非一前一后,而是同步進行。首先,卷積核動態剪枝可以基于模型參數選擇一部分重要性較小的卷積核置零。但是,并不直接將置零的卷積核傳遞到通道動態壓縮中去,否則就等同于先卷積核動態剪枝,后通道動態壓縮,這樣會導致兩種方法存在先后次序,后者難以影響到前者。聯合動態剪枝算法選擇讓兩步剪枝操作同步進行,并且在反向傳播的時候同步更新,實際上每一個剪枝操作誤剪枝的信息都會被反饋到另一個操作中去。

不難作出如下的推斷:卷積核動態剪枝置零的卷積核(通道),在通道動態壓縮之中也被動態剪除,如圖3 中所展示的,淺色通道是深色通道的子集。通道動態壓縮基于輸入圖像作預測處理,不考慮卷積核動態剪枝的結果,因而直觀感受上可能出現卷積核動態剪枝置零的卷積核不包含在通道動態剪枝之中的情況。但是,在不斷訓練收斂的過程中,卷積核動態剪枝的結果會趨近于一部分特定的卷積核,而通道動態壓縮選擇參與運算的卷積核,必定不可能收斂到這些被置零的卷積核,否則通道動態壓縮的結果一定是次優的。這樣,模型最終訓練完畢后,卷積核動態剪枝的結果收斂成為通道動態壓縮的一個子集,可以最大限度地平衡模型的準確率和復雜度。

1.3 卷積核動態剪枝

卷積核動態剪枝算法的設計目的,是從模型中永久性地移除一些重要性較低的卷積核,同時最大化地保持模型的容量。對于同一卷積層的每一個卷積核,設計特定的標準sj衡量其重要性。本文選擇了L1范數,也即卷積核張量中權值的絕對值之和∑|Fi,j|。從直觀的層面來看,權值較小的卷積核,對應的輸出特征圖數值也較小,也即影響力不如同一層其他的特征圖。實驗結果也表明,剪除絕對值較小的卷積核效果優于隨機剪除和剪除絕對值較大的卷積核。卷積核重要性的標準也有不同的選擇,如L2 范數,也即卷積核張量中權值的平方之和再開平方。然而此方法的動態判斷核心在于迭代更新的過程,而非單次迭代中復雜的衡量標準,并且復雜的衡量標準并沒有帶來表現上的提升,因而最終仍然選擇了L1范數作為評判標準。

考慮到永久性的剪枝會導致模型容量不可逆的降低,僅在最后一步永久性剪除卷積核,并且盡可能剪除少的卷積核,以保持模型容量。將卷積核的剪枝工作融入網絡訓練的過程中,對于每次迭代中重要性較小的卷積核,并不永久性地剪除它們,而是將其置零,并保持網絡結構的不變。被剪除的卷積核對網絡訓練產生影響的同時,允許這些卷積核在反向傳播中被更新。這樣,如果存在被誤剪枝的卷積核,這些卷積核將會在反向傳播中被更新為較大的權值,從而在后續的評判中獲得較高的重要性,不再被誤剪枝。在不斷迭代訓練的過程中,偶然誤剪枝的卷積核被恢復,使得每次被剪除的趨向于收斂到Ni+1(1-β)個固定的卷積核。最終,永久性剪除這些不重要的卷積核,這樣便完成了卷積核動態剪枝的工作。在先前的分析中提到,卷積核動態剪枝直接影響到網絡中的部分卷積核,但是并不將結果直接地傳遞給通道動態壓縮,而是讓后者在訓練中不斷自主學習,同時其本身也不斷更新置零的卷積核,兩種方法共同完成剪枝的工作。具體算法如算法1所示。

算法1 卷積核動態剪枝。

輸入 訓練數據X,卷積核動態剪枝率β,模型,1 ≤i≤L;

輸出 卷積核動態剪枝后的模型W*。

1.4 通道動態壓縮

通道動態壓縮,即在不永久性移除模型中的任何參數的情況下,通過動態選擇模型的一部分參與運算,從而加速訓練和推理的過程。因而最關鍵的是利用某種方式,針對特定的輸入圖像,動態選擇特定的神經元參與運算。考慮到結構化剪枝相較于非結構化剪枝的優勢,仍然以通道為單位進行剪枝。具體方法是構建一個較小的線性變化神經網絡,稱之為預測網絡,用于建立輸入特征圖與卷積核的關系,預測并選擇部分的通道參與卷積運算,以保持模型的容量。

首先需要提取輸入圖像的特征。如果將分類網絡的輸入圖像完整地作為預測網絡的輸入,那么整個模型的復雜度將會極大提升,甚至抵消了剪枝所帶來的收益。因而,必須盡可能地將輸入圖像壓縮到可接受的大小,同時保留其特征,用于預測網絡的輸入。這里選擇了下采樣方法,也就是縮小圖像的尺寸。經過實驗,可以發現全局平均池化(Global Average Pooling,GAP)[18]的效果最好。GAP 是一種簡單而實用的正則化方法,也就是取二維圖像所有元素的平均值,近年來也有研究認為其擁有較好的提取圖像特征的能力。將其應用到三維的特征圖中,有下采樣函數:

然后,需要建立下采樣后的輸入圖像與卷積核之間的關系。和卷積核動態剪枝相反,這一步不需要顯式地考慮卷積核本身的參數,而是構建一個線性變化神經網絡,稱之為預測網絡,利用其去預測輸入圖像與卷積核的關系。預測網絡的值被附加到分類網絡的輸出中,并隨著反向傳播自動更新。線性變化的函數如下:

線性變化預測網絡,也就是一個額外的全連接層,擁有權重φi和偏置ρi兩個可學習的參數。預測網絡的輸入為ss(Xi),也就是Ni個元素的向量,每個元素代表著當前卷積層輸入圖像的一個通道的特征。經過線性變化,其輸出為Ni+1個元素的向量,每個元素代表著當前卷積層每個卷積核針對該輸入圖像的重要性。較大的元素代表對應通道被輸入圖像激活的程度越高,也就越為重要。

獲得了每個卷積核的重要性,之后需要基于通道動態壓縮比α,在原先完整的輸出特征圖中,消除一部分通道的輸出。基于一個簡單的k-勝者通吃(k-winners-take-all)操作,也即選擇向量中k個最大元素,將其余元素置零。這樣,重要性較低的Ni+1(1-α)個通道將不參與卷積運算,也就完成了剪枝的操作。

由于預測網絡需要和分類網絡一同更新,因而預測網絡的結果也需要被附加到分類網絡的輸出中去。基于之前包含BN 和ReLU 操作的卷積層完整定義,將BN 層的γ參數替換成為預測網絡的輸出,也就是gi(Xi):

至此,便完成了動態通道壓縮的工作。回顧完整的算法流程,最重要的是預測網絡的構建。如果設計某種算法用來衡量輸入圖像與卷積核之間的激活關系,利用統計特征去構建二者之間的函數變換,那么無疑是非常困難的。然而,將預測網絡的結果融合到分類網絡中去,利用神經網絡的反向傳播自發學習其中的誤差,并不斷優化預測的結果,既提高了預測的準確率,又避免了復雜且有可能過度的人工干涉,可以說是一舉兩得。具體算法如算法2所示。

算法2 通道動態壓縮。

輸入 訓練數據X,通道動態壓縮比α,模型,1 ≤i≤L;

輸出 通道動態壓縮后的模型W*。

2 實驗與結果分析

本文所使用的實驗設備基于Windows 10 系統,采用處理器Intel Core i7-9750H,顯卡NVIDIA GeForce GTX 1660Ti,在虛擬環境PyCharm 2019.2.4(Community Edition),torch version 1.0.0,CUDA version 10.0下進行實驗。

實驗的數據集為經典的圖像識別數據集CIFAR-10 與CIFAR-100。CIFAR-10 數據集由Krizhevsky 等[19]收集完成,包含60 000張彩色圖像。所有圖像都是32×32大小,分為10種類別,其中5/6的圖像被作為訓練集使用。CIFAR-100 數據集同樣包含60 000 張圖像,所不同的是其被分為100 種類別,每種類別的圖像有600 張。100 種類別實際上被劃分為20 個超類別,每個超類別包含5 種子類別。本實驗僅關注子類別的正確率。

CIFAR 數據集包含現實生活中的真實物體,圖像格式為3通道RGB 圖像,物體的大小比例、特征、背景各不相同,具有一定的復雜性,相較于MNIST 這種簡單的單通道、僅包含手寫數字的數據集,更有現實意義。與更加復雜的數據集如ILSVRC2012 相比,CIFAR 數據集規模較小,不受限于機器性能,方便訓練。

2.1 訓練方法

選用了軟通道剪枝(Soft Filter Pruning,SFP)和特征加速壓縮(Feature Boosting&Suppression,FBS)兩個已有的先進網絡剪枝算法,與本文提出的聯合動態剪枝(Combined Dynamic Pruning,CDP)算法相比,在準確率、參數壓縮比等各方面作出客觀的比較,以驗證聯合動態剪枝算法的優劣。

CDP算法訓練過程如下:首先,訓練一個不含聯合動態剪枝操作的基本網絡結構,然后將其所有的卷積層替換為聯合動態剪枝的卷積層。隨后,令卷積核動態剪枝率β和通道動態壓縮比α均為1,微調網絡至收斂。然后,不斷降低α和β,令β下降步長為0.1,并保持2β=1+α的關系,最終達到需要的壓縮比。例如需要壓縮比為0.6 的聯合動態剪枝模型,那么α=0.6,β=0.8。訓練中使用256 的批大小,0.01 的學習率,每過100 個訓練期學習率降低為原先的0.1,直到學習率降低至10-5停止,這些參數適用于所有的剪枝算法。對于使用者而言,只需要額外設置兩個超參數α和β即可。

數據的處理上,訓練集和測試集均進行了標準化處理。訓練集同時也進行了隨機打亂的操作,以及翻轉概率p=0.5的隨機水平翻轉,以避免過擬合,提高模型的泛化能力。

2.2 評估標準

最直觀的評判標準,即在某個特定剪枝率下,比較不同算法帶來的準確率變化。定義模型的壓縮比為α,剪枝率為γ,有α=1-γ。對于SFP 算法,也就是移除每個卷積層中占比為γ的卷積核。對于FBS 算法,則是對于每個輸入特征圖,僅有α的通道被選擇參與卷積運算。對于本文提出的CDP 算法,則是利用卷積核動態剪枝置零1-β的卷積核,同時利用通道動態壓縮使得α的通道被選擇參與卷積運算。這樣便可以在模型壓縮比相同的情況下,比較三種算法的準確率。

然而,三種算法的實現不同,相同的剪枝率帶來的復雜度降低也不盡相同。因而,為了更客觀地衡量模型的復雜度,本文進一步選用了浮點運算次數(Floating-Point Operations Per second,FLOPs)和參數規模的壓縮比兩個標準。假設卷積運算利用滑動窗口實現,并且忽略非線性計算開銷[20]。

對于卷積層(convolutional layer,conv),有:

其中:H、W分別代表輸入特征圖的寬和高;Cin、Cout代表輸入和輸出通道數;FLOPs代表浮點運算次數;PARA代表參數個數。假設卷積核是對稱的,因而其寬與高相等,均為K。

相對地,有全連接層(fully connected layer,fc)的浮點運算次數和參數規模計算如下:

其中,I、O分別代表輸入和輸出通道數。

原始網絡的浮點運算次數除以剪枝后網絡的浮點運算次數,得到的就是FLOPs壓縮比。同理也可以得到參數壓縮比。為避免歧義,本節出現的壓縮比如未特別說明,均代表網絡壓縮比,也就是對應于剪枝率的壓縮比,而非FLOPs壓縮比或參數壓縮比。

2.3 結果分析

2.3.1 M-CifarNet實驗結果

M-CifarNet[21]是一個針對CIFAR 數據集設計的8 層卷積神經網絡,僅用1.3×106個參數就在CIFAR-10數據集上達到了91.37%和99.67%的Top-1 與Top-5 正確率。M-CifarNet 中所有的卷積層均采用3×3 的卷積核,pool 是一個全局平均池化層。

表1展示了M-CifarNet的網絡結構,以及不同剪枝算法帶來FLOPs 運算的比較。在先前的分析中,FBS 作為動態剪枝的經典算法,其并不更改網絡結構,因而輸出通道數是沒有變化的。然而其僅選擇部分卷積核進行計算,體現在FLOPs 計算上,也就是輸入通道數量不變,而輸出通道數量減少。因而,其FLOPs 的壓縮比也是最小的。SFP 因為永久性移除了部分卷積核,因而壓縮比最大。CDP 雖然也永久性移除了部分卷積核,但其移除的比例沒有SFP那么大,因而取得了介于兩者之中的FLOPs壓縮比。

表1 M-CifarNet網絡結構以及不同剪枝算法帶來FLOPs運算的比較Tab.1 M-CifarNet network structure and comparison of FLOPs operations brought by different pruning algorithms

從參數規模上來看,由于FBS 和CDP 引入了額外的預測網絡,因而和原始網絡結構相比有額外的參數。然而相較于卷積層的參數,全連接層的參數僅占很小一部分,因而可以忽略不計,將重點聚焦在剪枝算法移除原先模型的參數數量。

令網絡壓縮比α從1 降低到0.2,得到的結果如圖4(a)所示。由于FBS和CDP均引入了額外的全連接層用于通道重要性預測,因而在壓縮比為1 時,二者準確率都超過了原始模型的準確率。總體來看,CDP的準確率明顯高于前兩種算法,在壓縮比α≤0.6時更為明顯,準確率高出了約1%以上。

2.3.2 VGG16實驗結果

VGG是牛津大學視覺幾何組Simonyan等[1]提出的深層次卷積神經網絡模型,在2014 年的ImageNet 圖像分類與目標檢測比賽中獲得了突出的成績。VGG16 包含五個堆疊而成的模塊,每個模塊包含數個卷積層和一個最大池化層,最后是三個全連接層。其中,具有權值的卷積層和全連接層總數為16,由此而得名。表2展示了VGG16的網絡結構,以及不同剪枝算法帶來FLOPs 運算的變化比較。SFP 算法永久性地移除了最多的參數,因而獲得了最高的FLOPs 壓縮比。本文提出的CDP算法則取得了一個介于其中的FLOPs壓縮比。

表2 VGG16網絡結構以及不同剪枝算法帶來FLOPs運算的比較Tab.2 VGG16 network structure and comparison of FLOPs operations brought by different pruning algorithms

和M-CifarNet 的實驗類似,令網絡壓縮比α從1 逐漸降低到0.2,觀察不同剪枝算法對模型準確率的影響,如圖4(b)所示。結果表明,CDP 的準確率仍然高于前兩種算法,并且在α≤0.6 時更為明顯,準確率提升有0.3%~1.0%甚至更高。而永久性移除最多卷積核的SFP 算法,準確率也最低。這也驗證了本文之前的假設:永久性移除卷積核會導致模型容量不可逆轉的降低,從而影響準確率。

圖4 不同剪枝算法帶來的準確率變化Fig.4 Accuracy changes brought by different pruning algorithms

2.3.3 綜合比較

以上基于相同的網絡壓縮比,比較了不同算法的準確率。然而,正如之前的分析,相同的網絡壓縮比在不同的算法中實現不同,對于網絡復雜度的降低也不盡相同。偏向于靜態剪枝的算法,由于永久性去除了部分參數,因而會取得更高的FLOPs 壓縮比;而動態剪枝類別的算法,在FLOPs 壓縮比上面相對較低。因而這里將基于相同的準確率,比較不同算法的FLOPs壓縮比。

表3 展示了不同剪枝算法在M-CifarNet 上準確率、FLOPs、參數規模等指標的變化情況,表格中加粗項為準確率一致的情況下,三種算法在不同指標上取得的最好結果。注意到,這里選擇的是CDP(γ=40%)、FBS(γ=30%)以及SFP(γ=20%)三種算法的特殊情況作為比較,而不是三種算法在同樣的剪枝率γ下的結果。這是由于在剪枝率γ相同的情況下,FBS 和SFP 算法的準確率均低于CDP 算法,因而需要適當降低剪枝率,將準確率提升至與CDP(γ=40%)相當的情況,再針對浮點運算和參數規模的壓縮比進行分析。經過實驗,選擇了SFP(γ=20%)與FBS(γ=30%)作為對比參考。

表3 基于數據集CIFAR-10的M-CifarNet網絡結構以及不同剪枝算法的綜合比較Tab.3 M-CifarNet network structure based CIFAR-10 dataset and comprehensive comparison of different pruning algorithms

可以看到,此時CDP 算法的準確率和SFP、FBS 算法基本持平,且略高于后二者。在準確率保持一致的情況下,關注FLOPs 壓縮比和參數壓縮比的結果。CDP 算法提供了最高的FLOPs壓縮比,為2.11,SFP和FBS僅分別提供了1.57和1.42的FLOPs 壓縮比。而參數壓縮比上可以看到,SFP 和CDP 大致相當,均為1.57,FBS 算法由于沒有永久性移除卷積核,因而對模型的參數沒有造成影響。也即可以得到如下的結論:在準確率一致的情況下,CDP 算法提供了最高的FLOPs 壓縮比和參數規模壓縮比。

以上完成了對于壓縮比和準確率的對比討論,下面將基于CDP算法在訓練中的表現作進一步的分析。選擇了SFP算法和CDP 算法作對比,記錄其訓練過程中各項指標的變化情況,具體來說是訓練集的Top-1準確率、Top-5準確率、損失,以及測試集的Top-1 準確率、Top-5 準確率、損失,并作出其隨著迭代次數增加的變化曲線,如圖5~6所示。

圖5 不同剪枝算法帶來的準確率隨訓練周期數的變化Fig.5 Accuracy varying with training epochs caused by different pruning algorithms

圖6 不同剪枝算法帶來的損失隨訓練周期數的變化Fig.6 Loss varying with training epochs caused by different pruning algorithms

關注到訓練集的損失,CDP算法下降稍慢一些,并且震蕩幅度也略微大一些,而SFP 算法的訓練集損失曲線明顯更為平滑。從收斂的速度來看,兩種算法大致相當,在50 個訓練期以后均趨近于收斂。對于本次實驗而言,采用了每隔100個訓練期學習率降低為原先的1/10,對于兩種算法來說都已經足夠。結合準確率變化可以看出,訓練集的準確率變化曲線和訓練的損失變化曲線形態相當。

基于以上分析,可以得出結論:在網絡壓縮比相同的情況下,CDP 算法擁有最高的準確率;而在準確率相同的情況下,CDP算法擁有最高的FLOPs壓縮比和接近于最高的參數壓縮比。相對而言,SFP 算法犧牲準確率換來了更低的模型復雜度,而FBS算法整體而言均顯劣勢。然而,CDP算法引入了額外的全連接層,導致其訓練時震蕩幅度較大,收斂速度也略慢于SFP算法。

3 結語

本文針對已有網絡剪枝工作中出現模型容量損失的局限,提出了聯合動態剪枝的算法,可以綜合考慮卷積核和輸入圖像特征,動態選擇網絡的一部分參與運算,保持了高準確率和模型容量。相較于傳統的剪枝算法,聯合動態剪枝算法取得了更高的準確率和壓縮比。基于M-CifarNet與VGG16的實驗結果表明,聯合動態剪枝分別取得了2.11和1.99的浮點運算壓縮比,而與基準模型(M-CifarNet、VGG16)相比準確率僅分別下降不到0.8 個百分點和1.2 個百分點。該算法的實現分為卷積核動態剪枝和通道動態壓縮兩個部分,二者有機結合、相輔相成。聯合動態剪枝將剪枝工作融合進訓練和推理的過程中,降低了額外的開銷。對于使用者而言,只需要額外設置兩個剪枝率超參數,較為方便易用。

本文算法相較于現有的動態剪枝算法,無論是準確率還是浮點運算壓縮比都更優;然而相較于傳統的靜態剪枝算法,仍然存在參數壓縮比不夠高、收斂較慢的情況。可以認為模型容量(體現為準確率等)和復雜度(體現為浮點運算次數、參數規模等)是一個兩難問題,需要在現實場景中根據具體情況抉擇。盡管對于固定的剪枝率,不需要先剪枝后微調的過程,然而為了更好的剪枝效果,聯合動態剪枝算法仍然需要逐漸下調剪枝率直到達到需要的壓縮比。另外,因為工作環境和機器受限,沒有測試更加復雜的數據集和網絡結構,也沒有在實際的移動設備中測試剪枝算法,這些是值得完善和改進的地方。

猜你喜歡
模型
一半模型
一種去中心化的域名服務本地化模型
適用于BDS-3 PPP的隨機模型
提煉模型 突破難點
函數模型及應用
p150Glued在帕金森病模型中的表達及分布
函數模型及應用
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 久久久久无码精品国产免费| 不卡的在线视频免费观看| 丰满人妻一区二区三区视频| 性欧美久久| 2020久久国产综合精品swag| 日本高清免费不卡视频| 亚洲视频三级| 久久国产乱子| 在线欧美日韩| 亚洲成人网在线播放| h网址在线观看| 国产乱子伦无码精品小说| 国产精品亚洲一区二区在线观看| 久草视频中文| 丝袜高跟美脚国产1区| 2020最新国产精品视频| 在线观看国产黄色| 欧美啪啪网| 国产精品亚洲专区一区| 1769国产精品免费视频| 免费在线看黄网址| 亚洲天堂成人在线观看| 四虎国产精品永久一区| 亚洲不卡影院| 日韩最新中文字幕| 久爱午夜精品免费视频| 亚洲婷婷在线视频| 久久久久久久久亚洲精品| 久久无码高潮喷水| 久久综合伊人 六十路| 尤物在线观看乱码| 人人妻人人澡人人爽欧美一区| 久久视精品| 中文字幕亚洲电影| 亚洲第一成网站| 国产成人精品2021欧美日韩| 亚洲精品你懂的| 国产午夜在线观看视频| 又猛又黄又爽无遮挡的视频网站| 国内精品免费| 色综合久久综合网| a级毛片免费看| 成人一级免费视频| 99ri国产在线| 伊人蕉久影院| 高h视频在线| 亚洲乱强伦| 国产国产人在线成免费视频狼人色| 国产爽爽视频| 99精品在线看| 在线观看av永久| 亚洲免费三区| 中文成人无码国产亚洲| 亚洲一级毛片免费看| 久久精品人妻中文视频| 夜夜操天天摸| 国产区精品高清在线观看| 国内老司机精品视频在线播出| 91区国产福利在线观看午夜| 亚洲视屏在线观看| 99久久精品久久久久久婷婷| 色九九视频| 国产精品尤物铁牛tv| 91福利在线观看视频| 欧美高清国产| 欧美69视频在线| 国产91精品久久| 毛片久久久| AⅤ色综合久久天堂AV色综合| 亚洲三级片在线看| 国产精品yjizz视频网一二区| 无码'专区第一页| 先锋资源久久| 午夜一级做a爰片久久毛片| 91午夜福利在线观看| 成人在线不卡视频| 国产成在线观看免费视频| 无码一区18禁| 99这里只有精品6| 97se亚洲| 亚洲精品在线91| 亚洲成a人片在线观看88|