洪 亮, 高 尚, 李 翔
(吉林大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 長春 130012)
深度神經(jīng)網(wǎng)絡(luò)[1-2]目前已廣泛應(yīng)用于圖像分類、 物體檢測、 生物學(xué)研究、 語音合成和語義分割等領(lǐng)域[3-4]. 復(fù)雜網(wǎng)絡(luò)體系常具有一個體積巨大的模型, 消耗了大量的計(jì)算資源和能源. 當(dāng)在資源受限的設(shè)備上部署使用深度神經(jīng)網(wǎng)絡(luò)時, 模型過大導(dǎo)致的問題尤為突出[5].
模型壓縮可通過裁剪掉一部分參數(shù)、 改變數(shù)據(jù)的存儲方式或設(shè)計(jì)網(wǎng)絡(luò)結(jié)構(gòu)減少模型的體積. 作為模型壓縮的方法之一, 模型剪枝技術(shù)[6]已被證明是一種有效的方法[7-11], 可在盡量不損失精度(甚至更好)的情況下減小模型體積. 在剪枝技術(shù)中, 基于權(quán)重的剪枝是一種常用方法. 在范圍上, 剪枝技術(shù)可分為全局剪枝和分層剪枝. 分層剪枝方法對每層的參數(shù)單獨(dú)進(jìn)行處理, 如果某個參數(shù)低于該層的重要性最低閾值, 則將其裁剪掉. 例如: 使用權(quán)重的絕對值衡量重要性, 先移除權(quán)重值低于閾值的所有參數(shù), 然后重新訓(xùn)練剩余的稀疏網(wǎng)絡(luò)[8]或?qū)⑹S鄼?quán)重恢復(fù)到初始狀態(tài)再進(jìn)行訓(xùn)練[12]; 基于進(jìn)化算法評估各層對權(quán)重剪枝的敏感度, 進(jìn)而決定每層的剪枝率[13]; 使初始剪枝率漸變到目標(biāo)剪枝率, 使之適應(yīng)訓(xùn)練過程[14]; 基于相互信息自頂向下地進(jìn)行剪枝, 對于神經(jīng)網(wǎng)絡(luò)的每層, 相互關(guān)系值高于上一層保留神經(jīng)元的, 可以繼續(xù)保留[15]; 通過評估各層對特征表示的貢獻(xiàn)判斷各層重要性[16]等. 此外, 常見的還有優(yōu)化激活函數(shù)[17]、 進(jìn)行通道剪枝、 知識蒸餾[18]等. 但很多當(dāng)前的分層剪枝方法所提出的重要性衡量標(biāo)準(zhǔn)都是針對單獨(dú)某層的特點(diǎn), 或者僅考慮了相鄰層的關(guān)系, 進(jìn)而決定每層的剪枝率. Frankle等[12]的彩票假說實(shí)驗(yàn)結(jié)果表明, 采用單剪枝率的分層剪枝方法在效果上并不如全局剪枝. 這是因?yàn)榫W(wǎng)絡(luò)的層與層之間的信息傳遞是不同層次的[19], 每層對于剪枝的敏感度也不相同[8-10]. 而當(dāng)前很多分層剪枝方法對網(wǎng)絡(luò)層與層之間關(guān)系的利用并不充分.
針對上述問題, 本文提出一種基于網(wǎng)絡(luò)特征的分層剪枝方法NS-LPM(network-structure based layer-wised pruning method), 綜合考慮網(wǎng)絡(luò)結(jié)構(gòu)的信息及網(wǎng)絡(luò)各層次間的關(guān)系, 以解決分層剪枝方法的適用性問題. 網(wǎng)絡(luò)特征包括3個維度: 網(wǎng)絡(luò)的深度、 每層的寬度以及層間參數(shù)的重要性. 本文實(shí)驗(yàn)分別從這三方面討論它們對剪枝方法的影響和有效性. 為更準(zhǔn)確地去探討這3個維度的影響, NS-LPM實(shí)驗(yàn)基于彩票假說實(shí)驗(yàn)[12]進(jìn)行. 每次剪枝后, 將每層保留的權(quán)重回溯到初始網(wǎng)絡(luò)值, 以盡量減少除網(wǎng)絡(luò)結(jié)構(gòu)特征外的影響.
本文針對不同的網(wǎng)絡(luò)特征在數(shù)據(jù)集CIFAR-10上分別采用VGG-16和Resnet-20網(wǎng)絡(luò)架構(gòu)進(jìn)行對比實(shí)驗(yàn), 以探討不同的剪枝率變化方法對該指標(biāo)的影響. 實(shí)驗(yàn)結(jié)果表明, NS-LPM方法在VGG-16模型上表現(xiàn)良好, 優(yōu)于全局剪枝方法和傳統(tǒng)單剪枝率的分層剪枝方法; NS-LPM方法在Resnet-20模型上的表現(xiàn)優(yōu)于傳統(tǒng)單剪枝率的分層方法, 接近全局剪枝方法. 其在相同壓縮率下的準(zhǔn)確率更高, 且在訓(xùn)練初期收斂更快; 在訓(xùn)練后期可以自適應(yīng)地降低剪枝率, 盡量避免網(wǎng)絡(luò)性能突然下降. 為傳統(tǒng)分層剪枝方法的應(yīng)用受限情況提供了一種新的解決方案.
過度參數(shù)化是深度神經(jīng)網(wǎng)絡(luò)被廣泛認(rèn)可的特性[20], 但會導(dǎo)致推理的高計(jì)算成本和高內(nèi)存占用. 相關(guān)研究表明, 對一個過度參數(shù)化的、 足夠大的網(wǎng)絡(luò)進(jìn)行訓(xùn)練非常重要[21], 因?yàn)槠淇商峁└鼜?qiáng)的表達(dá)能力, 壓縮大網(wǎng)絡(luò)可得到比直接訓(xùn)練一個小網(wǎng)絡(luò)更好的結(jié)果. 模型剪枝作為模型壓縮的一種方法被廣泛關(guān)注主要有兩方面原因: 第一, 訓(xùn)練一個大的、 過度參數(shù)化的網(wǎng)絡(luò)很重要[22], 因?yàn)槠涮峁┝艘粋€高性能的模型, 給予模型更強(qiáng)的表示能力和優(yōu)化能力, 且在模型中裁剪掉一部分不重要的參數(shù), 不會明顯影響精度; 第二, 修剪后的架構(gòu)及其相關(guān)權(quán)重是獲得最終有效模型的關(guān)鍵, 剪枝后剩下的權(quán)重常具有深遠(yuǎn)的影響.
本文提出一種基于網(wǎng)絡(luò)特征的分層剪枝方法NS-LPM, 對網(wǎng)絡(luò)結(jié)構(gòu)如何影響剪枝過程進(jìn)行研究. NS-LPM方法采用迭代剪枝流程并進(jìn)行了改進(jìn). 同時, 為盡量減少其他因素對實(shí)驗(yàn)的影響, 實(shí)驗(yàn)基于彩票假說, 每輪剪枝后都將網(wǎng)絡(luò)參數(shù)恢復(fù)到剪枝前的初始狀態(tài).
剪枝流程主要分為一次性剪枝和迭代剪枝兩類. 典型的迭代剪枝過程包括3個階段: 預(yù)訓(xùn)練、 剪枝和微調(diào). 在迭代剪枝流程中, 如何確定重要性并通過重要性評價標(biāo)準(zhǔn)對網(wǎng)絡(luò)進(jìn)行裁剪是一個研究熱點(diǎn)[9-10,23]. NS-LPM方法采用迭代剪枝流程給出了如何根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)特征確定重要性以及它們作為評價標(biāo)準(zhǔn)的實(shí)驗(yàn)效果.
當(dāng)前的深度神經(jīng)網(wǎng)絡(luò)具有過度參數(shù)化的特性. 實(shí)驗(yàn)和相關(guān)研究結(jié)果表明, 在滿足過度參數(shù)化的條件下, 彩票假說值得信賴[24]. 彩票假說的主要內(nèi)容是: 在一個足夠大的網(wǎng)絡(luò)模型中, 存在一個稀疏子網(wǎng)絡(luò)(即彩票)可在不高于完整網(wǎng)絡(luò)的訓(xùn)練次數(shù)內(nèi), 達(dá)到初始網(wǎng)絡(luò)的相似性能. 而尋找這個稀疏子網(wǎng)絡(luò)的過程主要應(yīng)用迭代剪枝和全局剪枝. 特別地, 剪枝后保留的參數(shù)并未使用訓(xùn)練后的值, 而是恢復(fù)到初始網(wǎng)絡(luò)值. 實(shí)驗(yàn)結(jié)果表明, 在使用小型數(shù)據(jù)集的情況下(如MNIST,CIFAR-10), 實(shí)驗(yàn)中的網(wǎng)絡(luò)剪枝率在50%~90%時通常有更好的性能, 有些網(wǎng)絡(luò)在剪枝率達(dá)到95%以上時仍能得到相同的性能. 如果使用大型數(shù)據(jù)集, 可在此基礎(chǔ)上使用延遲回溯的方法[25].
目前, 對彩票假說的研究已有許多結(jié)果, 例如: 分析剪枝過程中的掩碼是如何影響訓(xùn)練過程的[26]; 證明彩票假說有效性, 并給出更普適的應(yīng)用條件[24]; 將彩票假說實(shí)驗(yàn)的方法應(yīng)用于其他網(wǎng)絡(luò)模型[27]; 研究基于彩票假說的剪枝方法[28]等. NS-LPM實(shí)驗(yàn)主要基于彩票假說, 并提出一種基于網(wǎng)絡(luò)特征的分層剪枝方法. 這主要是因?yàn)椋?1) 實(shí)驗(yàn)中使用標(biāo)準(zhǔn)的迭代剪枝流程和全局剪枝, 是剪枝領(lǐng)域廣泛使用的訓(xùn)練基準(zhǔn); 2) 將剪枝后的參數(shù)回退到初始狀態(tài), 可盡量減少網(wǎng)絡(luò)中其他因素的干擾, 更好地體現(xiàn)網(wǎng)絡(luò)結(jié)構(gòu)對剪枝過程的影響; 3) 彩票假說實(shí)驗(yàn)已經(jīng)被大量研究和實(shí)驗(yàn)證明是高效準(zhǔn)確的.
基于網(wǎng)絡(luò)特征的分層剪枝方法NS-LPM采用迭代剪枝流程. 為充分利用已訓(xùn)練網(wǎng)絡(luò)的結(jié)構(gòu)特征信息, 研究網(wǎng)絡(luò)特征對剪枝過程的影響, 本文算法分別從三方面進(jìn)行實(shí)驗(yàn)與研究: 網(wǎng)絡(luò)的深度、 每層的寬度和層間重要性評估. 算法流程如圖1所示.
圖1 基于網(wǎng)絡(luò)結(jié)構(gòu)分層剪枝方法的算法流程
基于網(wǎng)絡(luò)特征分層剪枝方法的第k層剪枝率定義為
(1)
1) 訓(xùn)練好一個大的網(wǎng)絡(luò)模型;
2) 遍歷網(wǎng)絡(luò)的每層, 對于網(wǎng)絡(luò)中的第k層參數(shù):
④ 通過剪枝系數(shù)計(jì)算得到每層的動態(tài)剪枝率pk;
3) 對剪枝網(wǎng)絡(luò)進(jìn)行微調(diào)再訓(xùn)練, 以恢復(fù)由于參數(shù)裁剪帶來的準(zhǔn)確度損失;
4) 當(dāng)網(wǎng)絡(luò)剪枝周期到達(dá)上限或壓縮率達(dá)標(biāo)時則結(jié)束, 否則轉(zhuǎn)步驟2).
一輪的剪枝流程如圖2所示.
圖2 基于網(wǎng)絡(luò)特征的分層剪枝方法
Ro等[19]研究表明, 網(wǎng)絡(luò)每層參數(shù)對于特征的提取均具有不同的特點(diǎn)[29], 即低層(靠近輸入端)會提取相對通用的特征, 而高層(靠近輸出端)會提取針對任務(wù)的特征. 文獻(xiàn)[19]進(jìn)行了一組對比實(shí)驗(yàn), 實(shí)驗(yàn)采用訓(xùn)練好的Resnet網(wǎng)絡(luò), 分別將完整網(wǎng)絡(luò)和移除最高兩層的網(wǎng)絡(luò)直接遷移到其他類似的數(shù)據(jù)集中測試, 發(fā)現(xiàn)移除最高兩層的網(wǎng)絡(luò)明顯優(yōu)于未移除前的完整網(wǎng)絡(luò). 表明高層提取的特征對之前的特定任務(wù)很重要. 文獻(xiàn)[19]的研究還表明, 網(wǎng)絡(luò)低層的權(quán)重變化水平明顯大于高層, 并且隨著訓(xùn)練每層的變化率逐漸減小. 實(shí)驗(yàn)采用Resnet-50網(wǎng)絡(luò), 第一層的權(quán)重變化率可達(dá)到最后一層的十幾倍. 即在低層的權(quán)重更容易實(shí)現(xiàn)從小變大, 權(quán)重在某時刻的重要性更有可能在下一時刻突然翻轉(zhuǎn).
在一個訓(xùn)練好的網(wǎng)絡(luò)中, 高層提取的特征針對特定任務(wù)尤其重要, 如果高層的剪枝率較大, 則顯然會更多地影響模型的性能, 使低層的權(quán)重變化率較大. 因此為得到更穩(wěn)定的模型, 降低了低層和高層的剪枝率. 算法期望網(wǎng)絡(luò)模型的變化趨勢如圖3所示.
圖3 網(wǎng)絡(luò)層寬隨網(wǎng)絡(luò)深度的變化期望
基于上述分析, 將基于網(wǎng)絡(luò)深度評價標(biāo)準(zhǔn)的第k層剪枝系數(shù)定義為
(2)
(3)
簡單地說, 就是調(diào)低高層和低層的剪枝率, 向中間層漸近式地提高到目標(biāo)剪枝率.高層和低層的變化空間通過降低高層和低層的剪枝率控制.剪枝率將在中間層變緩并保持穩(wěn)定, 進(jìn)而快速壓縮中間層網(wǎng)絡(luò)的權(quán)重, 加快模型的收斂, 增強(qiáng)模型的穩(wěn)定性.
低秩分解是模型壓縮的一種常用方法.矩陣的低秩稀疏分解是經(jīng)典機(jī)器學(xué)習(xí)方法, 假設(shè)一個大規(guī)模矩陣可分解為兩個或多個低維度矩陣的乘積與一個稀疏矩陣的和, 則可極大降低原矩陣表示的元素個數(shù)[30].如果網(wǎng)絡(luò)在深度上是充分冗余的, 則可嘗試進(jìn)行大量剪枝, 裁剪為多個低維度矩陣, 通過訓(xùn)練使其逼近一個高維度矩陣, 并達(dá)到幾乎相同的性能和效果.在高維度矩陣大小固定的條件下, 低維度矩陣的大小越接近, 其逼近高維度矩陣效果所需的有效參數(shù)就越少.
基于網(wǎng)絡(luò)寬度評價標(biāo)準(zhǔn)的第k層剪枝系數(shù)定義為
(4)
Han等[8]采用的基于權(quán)重的重要性評估方法目前應(yīng)用廣泛, 是一種很強(qiáng)的基線[11].在文獻(xiàn)[8]工作的基礎(chǔ)上, 本文充分考慮網(wǎng)絡(luò)的層間關(guān)系, 將基于層間重要性評價標(biāo)準(zhǔn)的第k層剪枝系數(shù)定義為
(5)
實(shí)驗(yàn)采用數(shù)據(jù)集CIFAR-10訓(xùn)練和測試卷積神經(jīng)網(wǎng)絡(luò)模型, 并進(jìn)行剪枝效果評估. CIFAR-10 是深度學(xué)習(xí)領(lǐng)域常用的用于物體識別的數(shù)據(jù)集, 共有50 000張訓(xùn)練圖片和10 000張測試圖片, 這些圖片共包含10個類別, 每張圖片都是大小為 32×32的彩色圖片.
本文實(shí)驗(yàn)在數(shù)據(jù)集CIFAR-10上訓(xùn)練了VGG-16和Resnet-20兩種卷積神經(jīng)網(wǎng)絡(luò)(CNN)模型. VGG-16模型有38層, 其中16層含參數(shù), 包括13層卷積層和3層全連接層; Resnet-20模型有20層, 除第一個卷積層和最后一個線性層, 網(wǎng)絡(luò)中有18個卷積層, 即有9個網(wǎng)絡(luò)模塊, 可分為三段.
本文實(shí)驗(yàn)均訓(xùn)練了40個周期, 接近1.7×104個迭代循環(huán), 采用的batch-size為128. 彩票假說的實(shí)驗(yàn)結(jié)果表明, 在對比剪枝率分別為0.4,0.2,0.1的情形時, 剪枝率0.2的準(zhǔn)確率和收斂速度都表現(xiàn)較好, 剪枝效率遠(yuǎn)大于其他情形[12], 所以本文采用0.2作為基礎(chǔ)剪枝率. 此外, 本文在VGG-16網(wǎng)絡(luò)上采用0.1的學(xué)習(xí)率; 在Resnet-20網(wǎng)絡(luò)上采用0.01的學(xué)習(xí)率. 實(shí)驗(yàn)環(huán)境為采用Ubuntu 16.04.7操作系統(tǒng), CPU為Intel(R) Xeon(R) CPU E5-2620 v4, GPU為Tesla P40, GTX 1650Ti, 內(nèi)存為32 GB, 深度學(xué)習(xí)框架采用Pytorch-1.11.0.
在綜合考慮網(wǎng)絡(luò)結(jié)構(gòu)的剪枝率時, 計(jì)算過程使用了超參數(shù), 以控制剪枝率的變化幅度和在網(wǎng)絡(luò)層間的傳遞速度. 本文實(shí)驗(yàn)中超參數(shù)的設(shè)置主要遵循以下兩個原則:
1) 保證剪枝率的平均水平與基礎(chǔ)剪枝率相同;
2) 保證剪枝率的變化幅度不超過網(wǎng)絡(luò)的承受極限, 從而避免網(wǎng)絡(luò)性能的急劇變化.
第一個原則表示當(dāng)基礎(chǔ)剪枝率為0.2時, 使各層的平均剪枝率盡量維持在0.2附近; 第二個原則需要保證剪枝率的變化在可控范圍內(nèi), 因?yàn)榧糁β实臄?shù)值很大程度影響剪枝過程的進(jìn)行, 一旦剪枝率的變化幅度超過網(wǎng)絡(luò)的承受極限, 模型的性能會急劇下降. 本文實(shí)驗(yàn)結(jié)果表明: 剪枝率為0.2和0.15時, 模型的擬合能力和性能趨勢一致; 分層剪枝方法的性能比全局剪枝方法更好, 但當(dāng)剪枝率為0.1時, 全局剪枝方法的性能反而明顯優(yōu)于分層剪枝方法. 因此, 當(dāng)基礎(chǔ)剪枝率為0.2時, 本文實(shí)驗(yàn)中控制剪枝率的變化幅度不小于0.15.
實(shí)驗(yàn)將NS-LPM方法與彩票實(shí)驗(yàn)中的全局剪枝方法、 單剪枝率的分層剪枝方法進(jìn)行對比. 實(shí)驗(yàn)主要從壓縮度(剩余權(quán)重?cái)?shù)量)、 準(zhǔn)確率、 訓(xùn)練速度三方面進(jìn)行衡量. 為保證公平性, 進(jìn)行多次實(shí)驗(yàn), 且采用多個指標(biāo), 如最大值、 前五平均值等. 實(shí)驗(yàn)將各種剪枝方法應(yīng)用于VGG-16和Resnet-20兩種模型上.
首先, 考察網(wǎng)絡(luò)的精確率隨不同參數(shù)壓縮率的變化情況. 分別將NS-LPM與單剪枝率的分層剪枝方法在VGG-16模型上的表現(xiàn)進(jìn)行對比, 實(shí)驗(yàn)結(jié)果如圖4所示. 其中, top-1準(zhǔn)確率表示在訓(xùn)練周期內(nèi)達(dá)到的最大準(zhǔn)確率; top-5平均準(zhǔn)確率表示在訓(xùn)練周期內(nèi)達(dá)到的最大5次準(zhǔn)確率的平均值. 由圖4可見, 在所有剪枝方法中, 模型的精確率都會隨著剪枝過程的進(jìn)行先增加后降低. 在相同參數(shù)壓縮率上, 基于網(wǎng)絡(luò)結(jié)構(gòu)特征的方法能達(dá)到更高的準(zhǔn)確率, 且其在訓(xùn)練初期剪枝率更高, 但在訓(xùn)練后期剪枝率會下降. 即在訓(xùn)練初期, 只需要5個剪枝周期即可達(dá)到單剪枝率方法6個剪枝周期的效果. 但在訓(xùn)練后期(參數(shù)壓縮率約達(dá)到90%), 其剪枝率會明顯下降. 在各項(xiàng)網(wǎng)絡(luò)特征中, 在參數(shù)壓縮率達(dá)到88%前, 基于網(wǎng)絡(luò)深度和網(wǎng)絡(luò)寬度評價指標(biāo)的準(zhǔn)確率明顯高于其他方法; 而基于層間重要性的方法更平穩(wěn), 在參數(shù)壓縮率達(dá)到99%時, 表現(xiàn)最好.
圖4 基于不同網(wǎng)絡(luò)特征的分層剪枝在VGG-16模型上的實(shí)驗(yàn)結(jié)果
其次, 對Resnet-20模型進(jìn)行實(shí)驗(yàn), 實(shí)驗(yàn)結(jié)果如圖5所示. 由圖5可見, 不同于在VGG-16模型上的表現(xiàn), 在參數(shù)壓縮率達(dá)到97.8%前, 基于各網(wǎng)絡(luò)特征的方法在Resnet上的表現(xiàn)與采用單剪枝率的方法表現(xiàn)幾乎一致, 盡管起點(diǎn)不同, 但準(zhǔn)確率隨參數(shù)壓縮率的變化趨勢完全相同. 但當(dāng)參數(shù)壓縮率達(dá)到97.8%后, 單剪枝率方法的準(zhǔn)確率急速下降, 而基于層間重要性和網(wǎng)絡(luò)深度的準(zhǔn)確率更穩(wěn)定. 單剪枝率方法在參數(shù)壓縮率為98.86%時, 準(zhǔn)確率為0.412; 而基于層間重要性的方法在參數(shù)壓縮率為98.94%時, 準(zhǔn)確率仍為0.618. 因此, 在VGG-16模型上, 基于網(wǎng)絡(luò)特征的各評價方法均優(yōu)于單剪枝率的評價方法; 而在Resnet-20模型上, 基于層間重要性的評價方法均優(yōu)于其他分層剪枝方法.
圖5 基于不同網(wǎng)絡(luò)特征的分層剪枝在Resnet-20模型上的實(shí)驗(yàn)結(jié)果
彩票假說實(shí)驗(yàn)在VGG-16和Resnet-20網(wǎng)絡(luò)上最終采用了全局剪枝方法, 因?yàn)閷?shí)驗(yàn)結(jié)果表明, 在大型網(wǎng)絡(luò)上全局剪枝優(yōu)于單剪枝率的剪枝方法. 這是因?yàn)槿旨糁υ诩糁笃跁r, 不需要考慮不同層之間參數(shù)個數(shù)相差太多導(dǎo)致的網(wǎng)絡(luò)結(jié)構(gòu)失衡, 進(jìn)而使網(wǎng)絡(luò)不滿足過度參數(shù)化的條件. 因此, 將綜合所有特征后的NS-LPM方法與全局剪枝方法、 單剪枝率的分層剪枝方法進(jìn)行對比, 結(jié)果如圖6所示, 由圖6可見, 在VGG-16模型上, 全局剪枝方法優(yōu)于單剪枝率的分層剪枝方法, 其可達(dá)到更高的準(zhǔn)確率, 同時也可達(dá)到更高的壓縮率. 而在相同的訓(xùn)練條件下, NS-LPM方法表現(xiàn)良好, 甚至在壓縮率和準(zhǔn)確率上超過了全局剪枝方法.
圖6 基于綜合網(wǎng)絡(luò)特征的剪枝方法在VGG-16模型上的實(shí)驗(yàn)結(jié)果
在Resnet-20模型上的實(shí)驗(yàn)結(jié)果如圖7所示. 由圖7可見, NS-LPM方法的表現(xiàn)幾乎不遜色全局剪枝方法, 當(dāng)參數(shù)壓縮率達(dá)到98.24%時, 仍能達(dá)到0.676的準(zhǔn)確率; 分層剪枝方法在參數(shù)壓縮率為98.21%時, 準(zhǔn)確率為0.652; 而全局剪枝方法的效果最好, 在98.20%的參數(shù)壓縮率時能到達(dá)0.701的準(zhǔn)確率. 對于NS-LPM方法在VGG-16和Resnet-20模型上表現(xiàn)的差異, 可能是由于Resnet網(wǎng)絡(luò)中層數(shù)過多, 使每層通道數(shù)的變化更平滑, 同時也需要考慮Resnet的殘差網(wǎng)絡(luò)及架構(gòu)設(shè)計(jì). 但相比于全局剪枝方法, NS-LPM方法在參數(shù)壓縮率達(dá)到90%后, 會自適應(yīng)降低剪枝率, 進(jìn)而避免網(wǎng)絡(luò)性能突然下降.
圖7 基于綜合網(wǎng)絡(luò)特征的剪枝方法在Resnet-20模型上的實(shí)驗(yàn)結(jié)果
不同剪枝方法在VGG-16和Resnet-20模型上的實(shí)驗(yàn)結(jié)果列于表1. 由表1可見, 在訓(xùn)練初期, NS-LPM方法只需要5個剪枝周期即可達(dá)到其他剪枝方法6個剪枝周期的效果. 而且在訓(xùn)練后期(參數(shù)壓縮率約達(dá)到90%), 其剪枝率會自適應(yīng)下降. 在VGG-16模型上, 原網(wǎng)絡(luò)使用全局剪枝方法, 壓縮率達(dá)到98.85%時, 準(zhǔn)確率達(dá)到85.0%; 使用單剪枝率的分層剪枝方法時, 壓縮率達(dá)到98.85%, 準(zhǔn)確率達(dá)到80.1%; 使用NS-LPM方法時, 進(jìn)行20輪剪枝迭代可使壓縮率達(dá)到99.41%, 準(zhǔn)確度率達(dá)到83.7%, 此時其參數(shù)個數(shù)只有單剪枝率方法的51%, 而在相同壓縮率時其性能甚至比全局剪枝更好. 在Resnet-20模型上, NS-LPM方法每輪的剪枝率都高于其他方法, 并且在參數(shù)壓縮率達(dá)到98.94%時, 準(zhǔn)確率仍為61.75%. 而單剪枝率的分層剪枝方法在參數(shù)壓縮率達(dá)到98.85%時, 準(zhǔn)確率只有41.2%. NS-LPM方法的表現(xiàn)在Resnet-20模型上已經(jīng)接近全局剪枝方法.
表1 不同剪枝方法在VGG-16和Resnet-20模型上的實(shí)驗(yàn)結(jié)果對比
綜上所述, 針對傳統(tǒng)分層剪枝方法在剪枝過程后期時, 網(wǎng)絡(luò)模型的準(zhǔn)確率會隨網(wǎng)絡(luò)結(jié)構(gòu)失衡陡然下降的問題, 本文提出了一種基于網(wǎng)絡(luò)結(jié)構(gòu)的分層剪枝方法NS-IPM, 其在進(jìn)行剪枝時, 創(chuàng)新性地結(jié)合了網(wǎng)絡(luò)結(jié)構(gòu)的特征信息. 不同于傳統(tǒng)的分層剪枝方法, NS-IPM方法通過對網(wǎng)絡(luò)深度、 網(wǎng)絡(luò)層寬和層間重要性評估綜合考慮, 構(gòu)建復(fù)合評分確定每層的動態(tài)剪枝率. 本文將單剪枝率的剪枝方法、 全局剪枝方法與NS-IPM方法進(jìn)行對比, 證明了NS-IPM方法的有效性, 并討論了不同的剪枝率變化方法對網(wǎng)絡(luò)性能的影響. 基于網(wǎng)絡(luò)結(jié)構(gòu)的分層剪枝方法NS-IPM在主流的VGG和Resnet網(wǎng)絡(luò)模型上都表現(xiàn)良好, 顯著改善了傳統(tǒng)分層剪枝方法在大型網(wǎng)絡(luò)模型上使用受限的情況, 與傳統(tǒng)剪枝方法相比優(yōu)勢明顯.