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

基于聯(lián)合動態(tài)剪枝的深度神經(jīng)網(wǎng)絡(luò)壓縮算法

2021-07-02 08:54:20張明明盧慶寧李文中
計算機應(yīng)用 2021年6期
關(guān)鍵詞:模型

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

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

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

0 引言

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

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

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

圖1 網(wǎng)絡(luò)剪枝示意Fig.1 Schematic diagram of network pruning

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

然而,針對權(quán)值的剪枝會導(dǎo)致網(wǎng)絡(luò)中出現(xiàn)大量不規(guī)則的零,卷積核成為稀疏張量,模型趨向于非結(jié)構(gòu)化。針對非結(jié)構(gòu)化剪枝的局限性,Li 等[9]設(shè)計了通道剪枝算法。作為一種結(jié)構(gòu)化的剪枝算法,通道剪枝設(shè)計某種標(biāo)準(zhǔn)衡量卷積核的重要性,并完整地剪除不重要的卷積核及其對應(yīng)的特征圖,從而不會出現(xiàn)大部分權(quán)值被剪除而留下稀疏張量的情況。Liu 等[10]設(shè)計了網(wǎng)絡(luò)瘦身,著眼于批標(biāo)準(zhǔn)化層中的縮放因子,在訓(xùn)練過程中對其施加正則約束,使得模型在訓(xùn)練中朝向通道結(jié)構(gòu)稀疏的情況不斷調(diào)整。

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

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

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

1)提出卷積核動態(tài)剪枝算法,基于卷積核的特征,永久性地剪除深度神經(jīng)網(wǎng)絡(luò)中的一部分參數(shù),同時盡可能地保持模型容量。

2)提出通道動態(tài)剪枝算法,基于輸入圖像的特征,在不移除深度神經(jīng)網(wǎng)絡(luò)參數(shù)的前提下,選擇網(wǎng)絡(luò)的一部分參數(shù)參與運算,以降低復(fù)雜度。

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

1 聯(lián)合動態(tài)剪枝算法

1.1 網(wǎng)絡(luò)結(jié)構(gòu)定義

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

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

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

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

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

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

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

1.2 算法框架

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

首先,針對卷積核自身的特征,設(shè)計卷積核動態(tài)剪枝的算法,用于永久性剪除部分卷積核,以提升壓縮比。剪枝標(biāo)準(zhǔn)為L1 范數(shù),但不直接把這些卷積核從網(wǎng)絡(luò)中刪除,而是將對應(yīng)通道置零后繼續(xù)訓(xùn)練學(xué)習(xí),允許置零的卷積核在反向傳播中更新,直到收斂為止。針對輸入圖像特征,設(shè)計通道動態(tài)壓縮的算法,將輸入圖像采樣后經(jīng)過線性變化預(yù)測通道的重要性,然后將對應(yīng)通道的結(jié)果置零,也就相當(dāng)于在沒有改變網(wǎng)絡(luò)結(jié)構(gòu)的情況下,跳過了一部分的卷積運算。

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

圖3 聯(lián)合動態(tài)剪枝算法框架Fig.3 Framework of combined dynamic pruning algorithm

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

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

1.3 卷積核動態(tài)剪枝

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

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

算法1 卷積核動態(tài)剪枝。

輸入 訓(xùn)練數(shù)據(jù)X,卷積核動態(tài)剪枝率β,模型,1 ≤i≤L;

輸出 卷積核動態(tài)剪枝后的模型W*。

1.4 通道動態(tài)壓縮

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

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

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

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

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

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

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

算法2 通道動態(tài)壓縮。

輸入 訓(xùn)練數(shù)據(jù)X,通道動態(tài)壓縮比α,模型,1 ≤i≤L;

輸出 通道動態(tài)壓縮后的模型W*。

2 實驗與結(jié)果分析

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

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

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

2.1 訓(xùn)練方法

選用了軟通道剪枝(Soft Filter Pruning,SFP)和特征加速壓縮(Feature Boosting&Suppression,F(xiàn)BS)兩個已有的先進網(wǎng)絡(luò)剪枝算法,與本文提出的聯(lián)合動態(tài)剪枝(Combined Dynamic Pruning,CDP)算法相比,在準(zhǔn)確率、參數(shù)壓縮比等各方面作出客觀的比較,以驗證聯(lián)合動態(tài)剪枝算法的優(yōu)劣。

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

數(shù)據(jù)的處理上,訓(xùn)練集和測試集均進行了標(biāo)準(zhǔn)化處理。訓(xùn)練集同時也進行了隨機打亂的操作,以及翻轉(zhuǎn)概率p=0.5的隨機水平翻轉(zhuǎn),以避免過擬合,提高模型的泛化能力。

2.2 評估標(biāo)準(zhǔn)

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

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

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

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

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

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

原始網(wǎng)絡(luò)的浮點運算次數(shù)除以剪枝后網(wǎng)絡(luò)的浮點運算次數(shù),得到的就是FLOPs壓縮比。同理也可以得到參數(shù)壓縮比。為避免歧義,本節(jié)出現(xiàn)的壓縮比如未特別說明,均代表網(wǎng)絡(luò)壓縮比,也就是對應(yīng)于剪枝率的壓縮比,而非FLOPs壓縮比或參數(shù)壓縮比。

2.3 結(jié)果分析

2.3.1 M-CifarNet實驗結(jié)果

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

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

表1 M-CifarNet網(wǎng)絡(luò)結(jié)構(gòu)以及不同剪枝算法帶來FLOPs運算的比較Tab.1 M-CifarNet network structure and comparison of FLOPs operations brought by different pruning algorithms

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

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

2.3.2 VGG16實驗結(jié)果

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

表2 VGG16網(wǎng)絡(luò)結(jié)構(gòu)以及不同剪枝算法帶來FLOPs運算的比較Tab.2 VGG16 network structure and comparison of FLOPs operations brought by different pruning algorithms

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

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

2.3.3 綜合比較

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

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

表3 基于數(shù)據(jù)集CIFAR-10的M-CifarNet網(wǎng)絡(luò)結(jié)構(gòu)以及不同剪枝算法的綜合比較Tab.3 M-CifarNet network structure based CIFAR-10 dataset and comprehensive comparison of different pruning algorithms

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

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

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

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

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

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

3 結(jié)語

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

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

猜你喜歡
模型
一半模型
一種去中心化的域名服務(wù)本地化模型
適用于BDS-3 PPP的隨機模型
提煉模型 突破難點
函數(shù)模型及應(yīng)用
p150Glued在帕金森病模型中的表達及分布
函數(shù)模型及應(yīng)用
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 亚洲色图欧美激情| 波多野结衣一区二区三视频| 青青草原国产精品啪啪视频| 久久精品娱乐亚洲领先| 亚洲成人一区二区| 九九热在线视频| 成人在线观看不卡| 国语少妇高潮| 国产色爱av资源综合区| 亚洲一区二区三区麻豆| 国产一级二级三级毛片| 99视频精品在线观看| 欧美另类视频一区二区三区| 久久大香香蕉国产免费网站| 久久亚洲中文字幕精品一区 | 亚洲色大成网站www国产| 国产精品久久久久久影院| 在线五月婷婷| 精品国产免费人成在线观看| 第一页亚洲| 蜜臀av性久久久久蜜臀aⅴ麻豆| 亚洲第一综合天堂另类专| 58av国产精品| 毛片网站在线播放| 风韵丰满熟妇啪啪区老熟熟女| 亚洲首页在线观看| 国产午夜福利亚洲第一| 青青草原国产av福利网站| 91色在线视频| 狠狠v日韩v欧美v| 毛片久久久| 色综合久久88| 国内毛片视频| 99在线观看精品视频| 久久久久九九精品影院| 99久久亚洲精品影院| 久久精品国产精品青草app| 亚洲精品无码AV电影在线播放| 国产日韩AV高潮在线| 五月天久久综合| 亚洲一级毛片免费观看| 99这里只有精品免费视频| 亚洲免费福利视频| 国产精品女主播| 国产jizz| 在线欧美a| 香蕉伊思人视频| h网站在线播放| 国产真实二区一区在线亚洲| 欧美国产日韩一区二区三区精品影视| 国产凹凸视频在线观看| 在线a网站| 91美女视频在线| 精品少妇人妻无码久久| AV网站中文| 色AV色 综合网站| 九九热在线视频| 中文字幕丝袜一区二区| 中文字幕免费视频| 欧美第二区| 久久久久九九精品影院| 精品免费在线视频| 国产欧美在线视频免费| 在线网站18禁| 国内精品伊人久久久久7777人| 园内精品自拍视频在线播放| 婷婷丁香在线观看| 中文字幕在线日韩91| 久久久久亚洲AV成人人电影软件 | 国产精品久久久久久久伊一| 99伊人精品| 亚欧美国产综合| 日韩在线观看网站| 日韩精品亚洲精品第一页| 国产精品第页| 免费高清毛片| 色欲色欲久久综合网| 91视频首页| 久久久久亚洲AV成人网站软件| 国产幂在线无码精品| 国产美女在线免费观看| 97视频免费看|