国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

分塊壓縮學(xué)習(xí)剪枝算法

2023-02-17 06:23:00劉會東余振華宋麗娟
關(guān)鍵詞:剪枝網(wǎng)絡(luò)結(jié)構(gòu)遺傳算法

劉會東,余振華,2,杜 方,2,宋麗娟,2

1(寧夏大學(xué) 信息工程學(xué)院,銀川 750021)2(寧夏大數(shù)據(jù)與人工智能省部共建協(xié)同創(chuàng)新中心,銀川 750021)

1 引 言

近年來,深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)在文本處理[1]和計(jì)算機(jī)視覺任務(wù)[2]上進(jìn)行廣泛的應(yīng)用,并取得了較優(yōu)結(jié)果.然而,高性能的DNN具有較多的參數(shù)和更多的計(jì)算量,無法在資源有限的設(shè)備或移動設(shè)備上使用.目前,解決這一問題的可行方法是在不影響精度的情況下對網(wǎng)絡(luò)模型進(jìn)行壓縮[3].而網(wǎng)絡(luò)剪枝技術(shù)是模型壓縮中常用的方法,并在處理復(fù)雜網(wǎng)絡(luò)模型效率上展現(xiàn)顯著優(yōu)勢[4].

網(wǎng)絡(luò)剪枝技術(shù)是去除網(wǎng)絡(luò)中冗余的參數(shù)和結(jié)構(gòu)以得到稀疏的網(wǎng)絡(luò)結(jié)構(gòu),可分為非結(jié)構(gòu)化剪枝和結(jié)構(gòu)化剪枝.非結(jié)構(gòu)化剪枝通過去除每層不重要的權(quán)值以實(shí)現(xiàn)權(quán)重矩陣較高的稀疏度,Han等[5]提出基于閾值的剪枝方法去除網(wǎng)絡(luò)中冗余的權(quán)值,刪除權(quán)值絕對值低于閾值的權(quán)重參數(shù).但非結(jié)構(gòu)化剪枝的實(shí)現(xiàn)需要借助特定的軟件[6]和硬件[7],將帶來額外的計(jì)算成本.相比非結(jié)構(gòu)化剪枝,結(jié)構(gòu)化剪枝通過去除冗余的層、卷積核和通道減少網(wǎng)絡(luò)參數(shù)和計(jì)算成本[8],其適用性更強(qiáng).Ashok等[9]提出了一種兩階段壓縮方法,去除網(wǎng)絡(luò)中冗余的結(jié)構(gòu).He等[10]利用深度確定性策略算法逐層刪除不重要的卷積核.這些工作均采用逐層的方式修剪網(wǎng)絡(luò),在剪枝過程中僅關(guān)注當(dāng)前層的信息,無法全面考慮層與層之間的優(yōu)化關(guān)系.

最近研究工作表示[11,12],相比繼承基線網(wǎng)絡(luò)重要的權(quán)重參數(shù),剪枝網(wǎng)絡(luò)的結(jié)構(gòu)是決定剪枝網(wǎng)絡(luò)模型性能的關(guān)鍵.網(wǎng)絡(luò)剪枝技術(shù)可以看作網(wǎng)絡(luò)架構(gòu)搜索(Neural Architecture Search,NAS)問題,所有符合搜索條件的網(wǎng)絡(luò)稱為子網(wǎng)絡(luò)或候選網(wǎng)絡(luò),而由所有子網(wǎng)絡(luò)組成網(wǎng)絡(luò)搜索空間,網(wǎng)絡(luò)搜索的目標(biāo)是在搜索空間中搜索較優(yōu)的子網(wǎng)絡(luò).之前的NAS方法使用強(qiáng)化學(xué)習(xí)[13]或遺傳算法[14],但由于網(wǎng)絡(luò)巨大的搜索空間和對子網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜的性能評估,搜索最佳的子網(wǎng)絡(luò)結(jié)構(gòu)較困難.為了加快NAS的速度,Pham等提出自動化模型設(shè)計(jì)的方法[15],不需要全面訓(xùn)練每個(gè)候選網(wǎng)絡(luò),通過權(quán)重共享的方式同時(shí)訓(xùn)練不同的候選網(wǎng)絡(luò).但由于每個(gè)子網(wǎng)絡(luò)無法得到充分的訓(xùn)練且共享同一網(wǎng)絡(luò)參數(shù)的子網(wǎng)絡(luò)太多,導(dǎo)致子網(wǎng)絡(luò)無法完全訓(xùn)練收斂,無法準(zhǔn)確評估候選網(wǎng)絡(luò)的有效性.

為解決以上問題,本文提出了一種有效的結(jié)構(gòu)化剪枝方法.首先,為避免網(wǎng)絡(luò)巨大的搜索空間,本文在一個(gè)網(wǎng)絡(luò)壓縮目標(biāo)空間中隨機(jī)初始化剪枝網(wǎng)絡(luò)所有層的壓縮率.然后,借鑒知識蒸餾的思想,將基線網(wǎng)絡(luò)作為教師網(wǎng)絡(luò),剪枝網(wǎng)絡(luò)作為學(xué)生網(wǎng)絡(luò),將教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)按層劃分多個(gè)并行的塊網(wǎng)絡(luò).最后,將每個(gè)塊網(wǎng)絡(luò)的剪枝率看作種群,使用遺傳算法搜索每個(gè)子網(wǎng)絡(luò)最優(yōu)的結(jié)構(gòu),通過最小化剪枝塊網(wǎng)絡(luò)與基線塊網(wǎng)絡(luò)輸出特征之間的距離對剪枝網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行優(yōu)化.

綜上所述,本文的主要貢獻(xiàn)如下:

1)本文基于知識蒸餾和遺傳算法提出了分塊壓縮學(xué)習(xí)算法;

2)本文所提方法通過對剪枝網(wǎng)絡(luò)進(jìn)行分塊優(yōu)化,減少網(wǎng)絡(luò)搜索空間,提高了網(wǎng)絡(luò)搜索的效率;

3)大量的實(shí)驗(yàn)表明,本文所提方法優(yōu)于其它網(wǎng)絡(luò)剪枝方法.

2 相關(guān)工作

2.1 遺傳算法

遺傳算法(Genetic Algorithm,GA)[16]是模擬達(dá)爾文生物進(jìn)化論的自然選擇和遺傳學(xué)機(jī)理的生物計(jì)劃過程的計(jì)算模型,是一種通過模擬自然進(jìn)化過程搜索最優(yōu)解的方法.遺傳算法的本質(zhì)是減少繁瑣的數(shù)學(xué)推理,基于概率搜索全局最優(yōu)解,在搜索過程中自動獲取和積累搜索的經(jīng)驗(yàn),并自適應(yīng)的調(diào)整搜索策略.

遺傳算法的應(yīng)用是通過將問題建模為種群進(jìn)化的過程,通過重組、變異等步驟產(chǎn)生下一代的解,然后逐漸淘汰適應(yīng)度較差的個(gè)體,保留適應(yīng)度較高的個(gè)體.以此方式進(jìn)化N代后,會進(jìn)化出適應(yīng)度較高的種群.遺傳算法的求解問題如圖1所示.

圖1 遺傳算法流程圖Fig.1 Genetic algorithm flow chart

1)編碼.需要對實(shí)際的求解問題進(jìn)行編碼,將問題數(shù)字化.

2)初始化種群.根據(jù)定義的問題編碼方案,隨機(jī)初始化種群,種群中的個(gè)體是數(shù)字化的編碼.其中,種群的初始化方案和種群的大小需要根據(jù)實(shí)際問題進(jìn)行設(shè)置.

3)重組.隨機(jī)選擇種群中的兩個(gè)個(gè)體,將個(gè)體中位于相同位置的基因以一定的概率進(jìn)行交換,產(chǎn)生新的個(gè)體.

4)變異.隨機(jī)選擇一個(gè)個(gè)體,然后將個(gè)體中的某個(gè)基因以一定的概率進(jìn)行更改.

5)評估.評估種群中每個(gè)個(gè)體的適應(yīng)度.

6)選擇.首先判斷種群是否達(dá)到設(shè)定的穩(wěn)定條件,達(dá)到穩(wěn)定條件則結(jié)束進(jìn)化,沒有達(dá)到穩(wěn)定條件,從種群中挑選適應(yīng)度較高的個(gè)體組成新的種群,然后,從3)開始繼續(xù)執(zhí)行.

2.2 網(wǎng)絡(luò)剪枝

網(wǎng)絡(luò)剪枝技術(shù)可分為非結(jié)構(gòu)化網(wǎng)絡(luò)剪枝和結(jié)構(gòu)化網(wǎng)絡(luò)剪枝.非結(jié)構(gòu)化網(wǎng)絡(luò)剪枝稱為權(quán)重剪枝[5],通過移除不重要的權(quán)重參數(shù)以實(shí)現(xiàn)稀疏化的權(quán)重矩陣,是將不重要的權(quán)值參數(shù)更改為0,在實(shí)際意義上并不能實(shí)現(xiàn)網(wǎng)絡(luò)運(yùn)行的加速.相比之下,結(jié)構(gòu)化剪枝通過修剪網(wǎng)絡(luò)中冗余的卷積核、層和通道減少網(wǎng)絡(luò)的參數(shù)和計(jì)算量,以實(shí)現(xiàn)真正意義上的網(wǎng)絡(luò)“加速”.

結(jié)構(gòu)化剪枝可以分為兩個(gè)子任務(wù):網(wǎng)絡(luò)稀疏度的分配[8-10]和層內(nèi)重要卷積核的選擇[17,18].網(wǎng)絡(luò)稀疏度的分配是通過在有限資源中確定每層網(wǎng)絡(luò)結(jié)構(gòu)對網(wǎng)絡(luò)全局的重要性,以修剪網(wǎng)絡(luò).Lin等[8]使用軟掩碼更新的方式尋找網(wǎng)絡(luò)模型中塊、分支、通道的壓縮率.層內(nèi)重要卷積核的選擇是通過對每層卷積核、神經(jīng)元、層進(jìn)行重要性排名,以去除不重要的單元.Lin等[17]通過特征圖秩的大小對網(wǎng)絡(luò)中的特征圖進(jìn)行重要性排序,并根據(jù)提剪枝率刪除每層秩較低的特征圖.Li等[18]通過L1范數(shù)計(jì)算每層卷積核的權(quán)重絕對值之和作為卷積核的重要性,以去除不重要的卷積核.

2.3 神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索

NAS是在大的網(wǎng)絡(luò)空間中搜索較優(yōu)的子網(wǎng)絡(luò)結(jié)構(gòu),其由3個(gè)模塊組成,分別是搜索空間、搜索策略和性能評估.搜索緊湊的神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu)最初是由領(lǐng)域?qū)<腋鶕?jù)經(jīng)驗(yàn)完成的,但由于人為制定的策略無法搜索所有的稀疏網(wǎng)絡(luò)結(jié)構(gòu),可能導(dǎo)致搜索次優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu).最近工作結(jié)合遺傳算法或強(qiáng)化學(xué)習(xí)算法[13,14],提高了搜索最優(yōu)稀疏網(wǎng)絡(luò)結(jié)構(gòu)的可能性.然而,這些方法需要從零開始訓(xùn)練大量的子網(wǎng)絡(luò)結(jié)構(gòu),導(dǎo)致搜索最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu)需要消耗大量的計(jì)算時(shí)間.

為解決以上問題,最近研究提出通過權(quán)值共享加速搜索過程.Guo等[19]提出了“One-shot methods”,首先訓(xùn)練一個(gè)大的網(wǎng)絡(luò)結(jié)構(gòu),然后通過搜索算法在大網(wǎng)絡(luò)中搜索最佳的子網(wǎng)絡(luò)結(jié)構(gòu).Cai等[20]提出“once-for-all network”,通過權(quán)重共享生成子網(wǎng)絡(luò)結(jié)構(gòu),將網(wǎng)絡(luò)模型訓(xùn)練和體系結(jié)構(gòu)解耦,對子網(wǎng)絡(luò)的評估不需要額外的訓(xùn)練.此外,還有研究者提出添加一些約束方法減少網(wǎng)絡(luò)搜索空間[21,22],通過搜索更大的單元或塊組建新的子網(wǎng)絡(luò)結(jié)構(gòu).Li等[23]借鑒人腦的特性,將神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)劃分為n個(gè)不同的塊結(jié)構(gòu)(Block),同時(shí)利用知識蒸餾進(jìn)行指導(dǎo)訓(xùn)練.

2.4 知識蒸餾

知識蒸餾[24]是首先訓(xùn)練一個(gè)大網(wǎng)絡(luò)(教師網(wǎng)絡(luò)),然后將大網(wǎng)絡(luò)學(xué)到的知識作為監(jiān)督信號指導(dǎo)小網(wǎng)絡(luò)(學(xué)生網(wǎng)絡(luò))的訓(xùn)練.近年來,較多研究人員采用知識蒸餾和網(wǎng)絡(luò)剪枝相結(jié)合的方式對網(wǎng)絡(luò)進(jìn)行加速.Lin等[8]通過將教師網(wǎng)絡(luò)最后一層的輸出特征直接復(fù)制給學(xué)生網(wǎng)絡(luò),學(xué)生網(wǎng)絡(luò)可以自動學(xué)習(xí)如何修剪網(wǎng)絡(luò).對學(xué)生網(wǎng)絡(luò)的指導(dǎo)不僅限于最后一層網(wǎng)絡(luò)的輸出,從教師網(wǎng)絡(luò)中間層可提取更豐富的表征信息以指導(dǎo)學(xué)生網(wǎng)絡(luò).Li等人[25]通過讓生成對抗網(wǎng)絡(luò)的生成器網(wǎng)絡(luò)的每一層輸出特征以指導(dǎo)相應(yīng)層的剪枝.

3 方 法

3.1 問題定義

為提高網(wǎng)絡(luò)剪枝的效率,本方法借鑒知識蒸餾的思想,將基線網(wǎng)絡(luò)作為教師網(wǎng)絡(luò),剪枝網(wǎng)絡(luò)作為學(xué)生網(wǎng)絡(luò).然后將教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)按層劃分多個(gè)塊網(wǎng)絡(luò),利用教師網(wǎng)絡(luò)逐塊對學(xué)生網(wǎng)絡(luò)進(jìn)行監(jiān)督,每個(gè)塊網(wǎng)絡(luò)均可以按照相同的方式進(jìn)行修剪.如圖2所示,第i個(gè)學(xué)生塊網(wǎng)絡(luò)和第i個(gè)教師塊網(wǎng)絡(luò)的輸入特征向量是上一個(gè)教師塊網(wǎng)絡(luò)的輸出特征向量.用fi(X,W)和gi(X,W′)分別表示第i個(gè)學(xué)生塊網(wǎng)絡(luò)和教師塊網(wǎng)絡(luò)的輸出特征,其中X、W和W′分別表示塊網(wǎng)絡(luò)的輸入特征向量、教師網(wǎng)絡(luò)的權(quán)重張量和剪枝網(wǎng)絡(luò)的權(quán)重張量.為減少模型的性能損失,教師塊網(wǎng)絡(luò)和學(xué)生塊網(wǎng)絡(luò)輸出特征之間的差異應(yīng)盡可能小,為此,使用均方誤差(Mean Squared Error,MSE)損失表示它們之間的差異,如下:

(1)

其中n表示樣本的數(shù)量.最小化MSE損失可有效減少網(wǎng)絡(luò)模型的性能損失,基于MSE損失可定義類似準(zhǔn)確率的度量指標(biāo)來評估不同的網(wǎng)絡(luò)結(jié)構(gòu):

(2)

為了進(jìn)一步區(qū)別具有相似性能而計(jì)算效率不同的塊網(wǎng)絡(luò),本方法使用塊網(wǎng)絡(luò)的FLOPs壓縮率作為塊網(wǎng)絡(luò)的效率度量,剪枝塊網(wǎng)絡(luò)的FLOPs壓縮率的計(jì)算公式表示為:

(3)

(4)

其中α是用來控制網(wǎng)絡(luò)模型性能和效率的權(quán)值,較高的α值將減少更多的FLOPs.對于剪枝網(wǎng)絡(luò)中的每個(gè)塊網(wǎng)絡(luò),其目標(biāo)是尋找較高度量分?jǐn)?shù)R的稀疏塊網(wǎng)絡(luò).在下面的章節(jié)中,通過遺傳算法,為該優(yōu)化問題提供了一個(gè)可行的解決方案.

3.2 模型框架

基于遺傳算法的分塊壓縮學(xué)習(xí)算法(Chunking Compression Learning Algorithm,CCLA)網(wǎng)絡(luò)架構(gòu)圖如圖2所示.首先,將教師網(wǎng)絡(luò)復(fù)制為學(xué)生網(wǎng)絡(luò),在預(yù)定義的壓縮空間對學(xué)生網(wǎng)絡(luò)進(jìn)行隨機(jī)初始化.其次,將教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)按層劃分多個(gè)塊網(wǎng)絡(luò),并使用教師網(wǎng)絡(luò)的塊網(wǎng)絡(luò)對學(xué)生網(wǎng)絡(luò)相應(yīng)的塊網(wǎng)絡(luò)進(jìn)行監(jiān)督.最后,通過遺傳算法搜索剪枝網(wǎng)絡(luò)中較優(yōu)的塊網(wǎng)絡(luò)結(jié)構(gòu),使學(xué)生網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)相應(yīng)的塊網(wǎng)絡(luò)之間的差異最小化.網(wǎng)絡(luò)框架可分為兩部分,分別是網(wǎng)絡(luò)架構(gòu)搜索和剪枝算法.

圖2 CCLA網(wǎng)絡(luò)框架圖.圖中的分?jǐn)?shù)代表模型性能和效率的度量指標(biāo)Fig.2 CCLA network framework diagram.score is a measure of model performance and efficiency

CCLA算法具體流程如下:

1)初始化剪枝網(wǎng)絡(luò).將教師網(wǎng)絡(luò)復(fù)制為學(xué)生網(wǎng)絡(luò),在指定的FLOPs范圍內(nèi)對剪枝網(wǎng)絡(luò)進(jìn)行初始化,如公式(5)所示:

(5)

其中r是剪枝網(wǎng)絡(luò)的目標(biāo)FLOPs壓縮率,ε是指定FLOPs的搜索空間大小.

2)將網(wǎng)絡(luò)劃分多個(gè)塊網(wǎng)絡(luò).如圖2所示,將教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)按層劃分多個(gè)塊網(wǎng)絡(luò).

3)網(wǎng)絡(luò)架構(gòu)搜索.參考知識蒸餾的思想,將基線塊網(wǎng)絡(luò)對剪枝塊網(wǎng)絡(luò)進(jìn)行監(jiān)督,使用遺傳算法搜索每個(gè)剪枝塊網(wǎng)絡(luò)較優(yōu)的壓縮率.

4)網(wǎng)絡(luò)剪枝.首先使用基于權(quán)值絕對值大小來對每層的卷積核排序,然后根據(jù)每層的壓縮率對網(wǎng)絡(luò)進(jìn)行剪枝.剪枝算法流程詳見3.4節(jié).

5)獲取較優(yōu)的剪枝網(wǎng)絡(luò).將搜索出的較優(yōu)塊網(wǎng)絡(luò)模型依次序重新搭建,并微調(diào)網(wǎng)絡(luò)模型,即為搜索的較優(yōu)網(wǎng)絡(luò)模型.

3.3 基于遺傳算法的分塊網(wǎng)絡(luò)結(jié)構(gòu)搜索

所有的剪枝塊網(wǎng)絡(luò)S均按照類似的方式進(jìn)行獨(dú)立修剪,設(shè)L是剪枝塊網(wǎng)絡(luò)S的層數(shù),ri是剪枝塊網(wǎng)絡(luò)S第i層的剪枝率,本方法的目標(biāo)是找到每個(gè)塊網(wǎng)絡(luò)中最優(yōu)的剪枝率.此問題可以表述為如下優(yōu)化問題:

(6)

其中S*表示修剪后較優(yōu)的剪枝塊網(wǎng)絡(luò),S表示剪枝塊網(wǎng)絡(luò),S′表示剪枝塊網(wǎng)絡(luò)的候選空間.

本文使用遺傳算法對每個(gè)剪枝塊網(wǎng)絡(luò)中的剪枝率進(jìn)行搜索,以找到每個(gè)剪枝塊網(wǎng)絡(luò)較優(yōu)的剪枝率.如本文2.1遺傳算法中介紹所示,遺傳算法是種群經(jīng)過重組、變異等步驟迭代進(jìn)化N次,然后選擇適應(yīng)度較高的種群.下面將對使用遺傳算法剪枝網(wǎng)絡(luò)進(jìn)行介紹:

編碼:本方法是將網(wǎng)絡(luò)模型中每個(gè)塊網(wǎng)絡(luò)的剪枝率r作為個(gè)體的單個(gè)基因.將塊網(wǎng)絡(luò)中的剪枝率用一維向量S表示,作為遺傳算法的個(gè)體.

種群:在本算法定義的種群大小是100,然后在指定的FLOPs壓縮范圍內(nèi)對種群進(jìn)行初始化.

重組:隨機(jī)選擇種群中2個(gè)個(gè)體,任意選擇個(gè)體中某一個(gè)相同的位置以較大的概率值進(jìn)行交換.

變異:隨機(jī)選擇1個(gè)個(gè)體,任意選擇個(gè)體中某一位置的剪枝率,以較小的概率值用0-1之間的隨機(jī)值進(jìn)行替換.

選擇:本方法種群選擇策略采用輪盤賭選擇策略,該策略中個(gè)體被選中的概率與個(gè)體的適應(yīng)度函數(shù)成正比.需計(jì)算每個(gè)個(gè)體的適應(yīng)度函數(shù),對種群中所有個(gè)體的適應(yīng)度值進(jìn)行累加,然后進(jìn)行歸一化處理,最后對種群中的個(gè)體進(jìn)行隨機(jī)選擇.每個(gè)個(gè)體被選中概率如下:

(7)

其中Q(ai)是表示種群第i個(gè)個(gè)體的適應(yīng)值,本方法的適應(yīng)度函數(shù)的計(jì)算如公式(4)所示.

3.4 網(wǎng)絡(luò)剪枝算法

網(wǎng)絡(luò)剪枝是通過剪枝率,對網(wǎng)絡(luò)模型中不重要的權(quán)重、卷積核、通道或?qū)舆M(jìn)行剪枝.本方法是對卷積核中不重要的卷積核進(jìn)行修剪,使用的剪枝算法是L1權(quán)重范數(shù)的剪枝算法.L1權(quán)重剪枝算法是將權(quán)重絕對值之和的大小作為卷積核或神經(jīng)元重要性的判斷指標(biāo),根據(jù)層剪枝率修剪掉層中不重要的卷積核,其剪枝步驟如下:

1)對卷積核的重要性進(jìn)行排序.計(jì)算每層卷積核或神經(jīng)元的L1權(quán)重值,并根據(jù)重要性分?jǐn)?shù)按從小到大的方式對卷積核或神經(jīng)元進(jìn)行排序.

2)刪除卷積核.根據(jù)每層的剪枝率,刪除網(wǎng)絡(luò)中不重要的卷積核.

4 實(shí)驗(yàn)結(jié)果與分析

為了驗(yàn)證本文所提方法的有效性,本文使用VGGNet[26]和ResNet[27]網(wǎng)絡(luò)模型在CIFAR-10和CIFAR-100[28]數(shù)據(jù)集上進(jìn)行壓縮實(shí)驗(yàn).

CIFAR-10和CIFAR-100數(shù)據(jù)集各有50000張訓(xùn)練圖像樣本和10000張測試樣本.將CIFAR-10和CIFAR-100數(shù)據(jù)集以9∶1將訓(xùn)練集隨機(jī)劃分為訓(xùn)練集和驗(yàn)證集,在剪枝過程中使用驗(yàn)證集對剪枝網(wǎng)絡(luò)的性能進(jìn)行評估,而不對剪枝網(wǎng)絡(luò)進(jìn)行微調(diào).

塊網(wǎng)絡(luò)的劃分:VGGNet網(wǎng)絡(luò)使用的是VGG-16網(wǎng)絡(luò),對于VGG-16網(wǎng)絡(luò),將整個(gè)教師網(wǎng)絡(luò)作為一個(gè)塊網(wǎng)絡(luò)進(jìn)行搜索.ResNet網(wǎng)絡(luò)使用的是ResNet-20網(wǎng)絡(luò)、ResNet-56網(wǎng)絡(luò)和Resnet-110網(wǎng)絡(luò),為保持ResNet網(wǎng)絡(luò)每個(gè)塊結(jié)構(gòu)的輸出通道不變,CCLA只修剪每個(gè)塊結(jié)構(gòu)中除最后一層以外的卷積層.對于ResNet-20網(wǎng)絡(luò),將3個(gè)Block作為一個(gè)塊網(wǎng)絡(luò),ResNet-56網(wǎng)絡(luò)和ResNet-110網(wǎng)絡(luò),均采用9個(gè)Block作為一個(gè)塊網(wǎng)絡(luò).

4.1 實(shí)驗(yàn)參數(shù)設(shè)置

基線模型訓(xùn)練過程中的參數(shù)設(shè)置如下:迭代次數(shù)(Epoch)設(shè)為300;批量大小(Batchsize)大小為256;學(xué)習(xí)率大小初始化為0.1,在迭代120次、180次和240次時(shí)分別遞減10倍;優(yōu)化器采用隨機(jī)梯下降算法,動量大小為0.9,權(quán)重衰減大小為5×10-4.剪枝網(wǎng)絡(luò)的微調(diào)參數(shù)設(shè)置如下:學(xué)習(xí)率率初始化為0.01,其它參數(shù)和基線網(wǎng)絡(luò)模型的訓(xùn)練參數(shù)一致.

本文遺傳算法中的參數(shù)設(shè)置如下:種群大小設(shè)置為100,進(jìn)化次數(shù)設(shè)置為300,重組的概率值設(shè)置為0.8,變異的概率值設(shè)置為0.05.

4.2 VGGNet網(wǎng)絡(luò)的實(shí)驗(yàn)結(jié)果與分析

為驗(yàn)證本文所提方法的有效性,本文首先在CIFAR-10數(shù)據(jù)集上對VGG-16網(wǎng)絡(luò)進(jìn)行壓縮實(shí)驗(yàn).CCLA在不同的壓縮目標(biāo)下修剪了兩次,然后選用SSS(Sparse Structure Selection)[29]、GAL(Generative Adversarial Learning)[8]和HRank(High Rank)[17]進(jìn)行比較,剪枝結(jié)果如表1所示.

表1 在CIFAR-10數(shù)據(jù)集上VGG-16網(wǎng)絡(luò)的剪枝結(jié)果CCLA_A和CCLA_B是不同F(xiàn)LOPs壓縮目標(biāo)下CCLA方法的剪枝結(jié)果Table 1 Pruning results of VGG-16 on CIFAR-10 CCLA_A and CCLA_B are pruning results of CCLA for different FLOPs compression targets

與現(xiàn)有方法相比,本文所提方法在網(wǎng)絡(luò)精度和計(jì)算成本之間可以實(shí)現(xiàn)較好的權(quán)衡.例如,SSS壓縮掉73.80%的參數(shù)和41.60%的FLOPs,精度下降0.94%.GAL壓縮掉82.20%的參數(shù)和45.20%的FLOPs,精度下降0.54%.HRank壓縮掉82.90%的參數(shù)和53.50%的FLOPs,精度損失為0.53%.而本文所提出的方法CCLA壓縮掉92.32%的參數(shù)和62.70%的FLOPs,精度損失僅為0.37%.此外,CCLA在0.43%的精度損失下,可壓縮掉87.82%的參數(shù)和70.40%的FLOPs,這是因?yàn)楸疚姆椒▽LOPs壓縮率作為優(yōu)化的目標(biāo),在更大的精度損失下,可以壓縮掉較多的FLOPs.以上實(shí)驗(yàn)結(jié)果表明,通過知識蒸餾的方式對剪枝網(wǎng)絡(luò)進(jìn)行監(jiān)督,使用遺傳方法可以有效地修剪掉網(wǎng)絡(luò)的冗余結(jié)構(gòu).

4.3 ResNet網(wǎng)絡(luò)的實(shí)驗(yàn)結(jié)果與分析

為驗(yàn)證本文所提方法的有效性,本文在CIFAR-10數(shù)據(jù)集上對ResNet-20網(wǎng)絡(luò)、ResNet-56網(wǎng)絡(luò)和ResNet-110網(wǎng)絡(luò)進(jìn)行壓縮實(shí)驗(yàn),在CIFAR-100數(shù)據(jù)集上對ResNet-56網(wǎng)絡(luò)行壓縮實(shí)驗(yàn).

如圖3所示,為驗(yàn)證公式(4)中超參數(shù)α對網(wǎng)絡(luò)剪枝的影響,本文選擇多個(gè)不同數(shù)值的α在CIFAR-10數(shù)據(jù)集上對ResNet-20網(wǎng)絡(luò)進(jìn)行剪枝實(shí)驗(yàn).設(shè)超參數(shù)α初始值為0.1,增量大小為0.1,取7個(gè)不同的數(shù)值,每個(gè)α值重復(fù)測試3次,并取3次的中值大小.隨著α值的增大,CCLA會傾向于修剪較多的FLOPs和參數(shù),而網(wǎng)絡(luò)精度逐漸下降.例如,在α=0.2時(shí),ResNet-20網(wǎng)絡(luò)可以壓縮掉44.65%的參數(shù)和39.36%的FLOPs.在α=0.3時(shí),ResNet-20網(wǎng)絡(luò)可以壓縮掉33.54%的參數(shù)和41.95%的FLOPs.但α=0.3時(shí)參數(shù)壓縮率低于α=0.2,這是由于本方法是以FLOPs壓縮率為搜索目標(biāo).以上實(shí)驗(yàn)結(jié)果表明,使用本方法在對網(wǎng)絡(luò)模型進(jìn)行剪枝過程中,可以通過設(shè)置適當(dāng)?shù)摩林狄缘玫讲煌∈瓒鹊木W(wǎng)絡(luò)模型.

圖3 不同的α對網(wǎng)絡(luò)剪枝的影響Fig.3 Effect of different α on network pruning

ResNet-56網(wǎng)絡(luò)在CIFAR-10數(shù)據(jù)集上測試準(zhǔn)確率為93.32%,在0.53%的精度損失下,CCLA可修剪掉ResNet-56網(wǎng)絡(luò)58.67%的FLOPs和54.48%的參數(shù),各層的剪枝結(jié)果如圖4(a)所示.在第1、11、12、16、26個(gè)Block中,CCLA的修剪力度最大,說明在該層中存在較多的冗余,而在第13、第22個(gè)Block中,CCLA沒有修剪,說明這些Block對網(wǎng)絡(luò)結(jié)構(gòu)較重要.ResNet-56網(wǎng)絡(luò)在CIFAR-100數(shù)據(jù)集上測試準(zhǔn)確率為70.53%,在1.26%的精度損失下,CCLA可以修剪掉29.39%的參數(shù)和48.86%的FLOPs,各層的剪枝結(jié)果如圖4(b)所示,CCLA可有效尋找網(wǎng)絡(luò)的冗余結(jié)構(gòu)并進(jìn)行修剪.實(shí)驗(yàn)結(jié)果表明,本文所提方法在簡單分類任務(wù)和復(fù)雜分類任務(wù)上,均可對網(wǎng)絡(luò)進(jìn)行有效的剪枝.

圖4 ResNet-56網(wǎng)絡(luò)修剪前后各層卷積核的對比Fig.4 Comparison of the convolutional kernels of each layer of the ResNet-56 before and after pruning

為了進(jìn)一步驗(yàn)證本文所提方法對復(fù)雜網(wǎng)絡(luò)修剪的有效性,本文在CIFAR-10數(shù)據(jù)集上對復(fù)雜網(wǎng)絡(luò)ResNet-110進(jìn)行壓縮實(shí)驗(yàn).然后選用GAL、SFP(Soft Filter Pruning)[30]、FPGM(Filter Pruning via Geometric Median)[31]、LFPC(Learning Filter Pruning Criteria)[32]和HRank進(jìn)行了比較,ResNet-110網(wǎng)絡(luò)的剪枝結(jié)果如表2所示.

表2 在CIFAR-10數(shù)據(jù)集上ResNet-110網(wǎng)絡(luò)的剪枝結(jié)果Table 2 Pruning results of ResNet-110 on CIFAR-10

在表2中,GAL修剪44.80%的參數(shù)和48.50%的FLOPs會導(dǎo)致0.76%的精度損失,而CCLA修剪62.04%的參數(shù)和62.10%的FLOPs,精度提升0.1%,結(jié)果表明使用知識蒸餾對網(wǎng)絡(luò)剪枝過程中,使用遺傳算法對網(wǎng)絡(luò)進(jìn)行分塊剪枝可更有效地找到網(wǎng)絡(luò)模型的最優(yōu)剪枝率.相比FPGM,F(xiàn)PGM修剪52.3%的FLOPs,精度可以提升0.17%,而CCLA在相近的精度提升下,可修剪較多的FLOPs.此外,與SFP、LFPC和HRank相比,CCLA對稀疏網(wǎng)絡(luò)的搜索都更加有效,可在無精度損失下,找到更加稀疏的網(wǎng)絡(luò)結(jié)構(gòu).以上實(shí)驗(yàn)結(jié)果表明,CCLA適用于復(fù)雜網(wǎng)絡(luò)的修剪,將復(fù)雜網(wǎng)絡(luò)進(jìn)行分塊之后,使用遺傳算法可準(zhǔn)確找到層內(nèi)和層間的冗余結(jié)構(gòu).

5 結(jié)束語

為減少網(wǎng)絡(luò)剪枝過程中,子網(wǎng)絡(luò)搜索空間較大的問題,本文提出基于遺傳算法的分塊壓縮學(xué)習(xí)算法(CCLA).不同于現(xiàn)有的剪枝方法,CCLA在剪枝過程中不是直接對大網(wǎng)絡(luò)進(jìn)行剪枝,而是將大的網(wǎng)絡(luò)分為多個(gè)塊網(wǎng)絡(luò),然后對每個(gè)塊網(wǎng)絡(luò)進(jìn)行剪枝,因此其效率更高.實(shí)驗(yàn)結(jié)果表明,在常規(guī)和更復(fù)雜的網(wǎng)絡(luò)模型上,CCLA可以準(zhǔn)確找到每層網(wǎng)絡(luò)的冗余結(jié)構(gòu).進(jìn)一步的工作,將在更大的數(shù)據(jù)集和具體的應(yīng)用場景中進(jìn)行測試,以驗(yàn)證CCLA的有效性和實(shí)用性.

猜你喜歡
剪枝網(wǎng)絡(luò)結(jié)構(gòu)遺傳算法
人到晚年宜“剪枝”
基于YOLOv4-Tiny模型剪枝算法
基于自適應(yīng)遺傳算法的CSAMT一維反演
一種基于遺傳算法的聚類分析方法在DNA序列比較中的應(yīng)用
基于遺傳算法和LS-SVM的財(cái)務(wù)危機(jī)預(yù)測
剪枝
天津詩人(2017年2期)2017-03-16 03:09:39
基于互信息的貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)學(xué)習(xí)
知識網(wǎng)絡(luò)結(jié)構(gòu)維對于創(chuàng)新績效的作用機(jī)制——遠(yuǎn)程創(chuàng)新搜尋的中介作用
滬港通下A+ H股票網(wǎng)絡(luò)結(jié)構(gòu)演化的實(shí)證分析
基于改進(jìn)的遺傳算法的模糊聚類算法
桃江县| 阜新市| 石门县| 乐安县| 乌拉特前旗| 大同县| 赣州市| 民勤县| 石门县| 册亨县| 和田县| 津南区| 泽州县| 虹口区| 桐乡市| 建阳市| 烟台市| 宣恩县| 巨野县| 浦城县| 阿拉善右旗| 仙居县| 泰顺县| 白沙| 荆州市| 泰和县| 合水县| 平昌县| 凌海市| 常宁市| 平山县| 米林县| 富阳市| 文昌市| 玉屏| 阿拉善盟| 沙洋县| 弋阳县| 阳谷县| 南靖县| 忻州市|