葉漢民,李志波,程小輝,陶小梅
(1.桂林理工大學 信息科學與工程學院,廣西 桂林 541006;2.桂林理工大學 廣西嵌入式技術與 智能系統重點實驗室,廣西 桂林 541004;3.廣西師范大學 廣西多源信息挖掘與 安全重點實驗室,廣西 桂林 541004)
深度卷積神經網絡因提取目標深度特征、泛化能力強等優勢在圖像識別[1]、語音處理[2]、物聯網[3]等應用領域[4]展現出巨大潛能。由于深度神經網絡的應用存在計算和存儲復雜度的條件約束,制約了深度神經網絡模型在資源受限應用場景中的使用及推廣,因此深度神經網絡如何在保證準確率的前提下實現網絡的精簡成為亟待解決的關鍵問題。
網絡剪枝[5-7]作為網絡壓縮方法中減小內存的關鍵技術之一,通過模型壓縮加速推理運算,有效減小模型內部參數存儲空間。為加快網絡訓練進度,多項研究工作集中于對隨機初始化模型進行策略剪枝:Lee等[8]根據小批次樣本結果評估不同權重連接必要性,依據預期剪枝目標創建相應的剪枝模板,縮短迭代微調周期時導致網絡出現退化問題。Wang等[9]通過保留梯度信號方法解決網絡崩塌及過早剪枝導致網絡不可訓練等問題,在初始化神經網絡中進行修剪,避免代價較大的訓練過程。在基于注意力機制對深度神經網絡模型壓縮研究中,引入注意力模塊衡量神經網絡層中濾波器對應輸出通道權重大小,動態調整網絡模型參數以學習網絡通道重要性程度實現網絡剪枝[10];通過分組注意力模塊[11]有效衡量網絡模型中卷積核的重要程度,篩選層與層間重要卷積核完成剪枝目標;文獻[12]提出卷積層與BN(batch-normalization)層雙層網絡參數信息有機結合的動態剪枝策略,通過結合注意力模塊和BN層縮放系數動態剔除冗余卷積核實現網絡優化,但忽略局部卷積核對模型整體的重要性。
基于以上研究,本文提出了基于通道和空間注意力機制的網絡剪枝稀疏化訓練方法,該方法通過融合通道和空間注意力提取關鍵特征信息,同時引入二值隨機變量轉化為權重及概率空間損失最小化問題,迭代更新掩碼矩陣和網絡權重矩陣實現深度神經網絡的修剪。在精度損失較小的條件下使得網絡計算及存儲資源達到最小化,使得精簡網絡模型在計算及存儲能力弱的嵌入式設備運行。
深度神經網絡的剪枝策略基于神經網絡中存在眾多冗余參數的前提,從理論層面來講,通過一個參數簡約的模型來達到與原網絡類似或等效的網絡性能,使得模型存儲及計算資源最小化,滿足移植部署及不同場景應用需求。在指定數據集Data和稀疏度k等條件下,深度神經網絡剪枝可以轉化為如下的約束優化問題
(1)


(2)
假設神經網絡初始化隨機掩碼矩陣M′、 初始化權重矩陣W′時,通過迭代訓練樣本中數據中來學習網絡的權重矩陣W
M′*W′=W
(3)
式中:W′為初始化網絡權重參數,M′為該網絡初始掩碼矩陣。當Mi,j=1時,表示其對應網絡中權重參數沒有被剔除,反之則進行了剪枝操作。由于在網絡初始化給定的隨機掩碼具有隨機性,需要不斷衡量其對目標函數的影響來確定剔除與否,故權重矩陣W需要不斷更新來獲得網絡最佳模型。
由于掩碼m∈{0,1} 最終收斂在[0,1]范圍之內,單個掩碼的取值可以視為二元隨機變量,將掩碼選取問題轉化為權重及概率空間損失最小化問題。通過對由0或1組成的掩碼矩陣及其相關的權重矩陣進行選擇性剪枝操作,進而評估網絡模型中層與層間參數的重要程度,引入掩碼矩陣隨機變量的選擇將離散問題轉化連續空間問題,最終轉化為求網絡損失最小化問題。我們觀察到掩碼mi最終收斂于0或者1,并且假設收斂于0的概率為pi, 則收斂于1的概率為1-pi, 其中pi∈{0,1}。 假設掩碼變量mi的選擇互不影響且相互獨立,則符合伯努利分布
(4)

(5)
由于隨機初始化網絡模型中含有大量冗余參數,根據上述公式的條件限制,大量的mi以較高概率收斂于0或1,從而使得M矩陣收斂為確定性掩碼矩陣,使得經過剪枝訓練的掩碼的損失不斷逼近預期損失。此外,上述損失最小化問題轉化為連續空間中求解不同參數的概率問題,可作為全局衡量準則進而評估權重在不同網絡層的重要程度。在此過程中,網絡中每層參數能夠自動學習,避免手動設置網絡中每一層的剪枝率。
根據不同剪枝率設置,神經網絡計算資源和內存消耗都會有所不同,且當剪枝程度逐漸升高時導致網絡中計算開銷持續下降,使得模型性能出現準確率下降的情況,因此如何在稀疏度逐步上升時避免準確度下降速率過快是關鍵影響因素。
為避免在稀疏度較大條件下隨機初始化網絡中剪枝出現準確度衰退速率大等網絡退化問題,通過在網絡初始化模型中創建掩碼層[13]的方式,初始掩碼設定為1,根據目標稀疏度權重閾值動態調整為0或1(0表示通過通道重要性評估該通道剔除,1表示該通道保留),并在訓練過程中從初始稀疏度ki經歷n次剪枝動態更新為目標稀疏度kd, 通過不斷迭代訓練次數來逐層完成剪枝,實現密集網絡平滑轉化為稀疏網絡,實現稀疏度轉化流程
(6)
式中:e為當前網絡迭代次數,取值范圍e∈{e0,e1,…,en};kd為目標剪枝網絡稀疏度;ki為模型初始化稀疏度,通常取值為0,kt當前時刻網絡稀疏值;n為稀疏化剪枝次數,Δt為稀疏化剪枝頻率。
本文實驗中選擇隨機梯度下降作為優化算法。為確保網絡的訓練效率,在網絡架構中嵌入了批標準化層。在網絡剪枝的優化過程中,BN層可以有效地計算各批次樣本數據的均值和方差,優化模型中的梯度傳播,提高模型訓練的收斂性能
(7)
(8)

(9)
為確保上式在梯度傳播過程中的穩定性,實驗采用ε進行平滑操作,ε取值為le-3。經過批標準化處理后的輸出為
(10)
式中:γ,β為神經網絡中的特征圖中學習參數。
本文將結合通道和空間注意力進行稀疏化網絡剪枝訓練。對于卷積網絡特征圖而言,通道中包含許多神經網絡可以學習到圖片或其它文本序列中需要注意的關鍵點,將更多的注意力分配在關鍵信息上,通過有效提取和學習樣本中關鍵信息從而使得網絡做出最佳判斷。除此之外,空間上的注意力[13]也被證明符合人眼感知機制,根據任務分類不同能夠有效提取到相應的有效信息,聚集于局部關鍵點,進而提高網絡模型的性能。
為了讓網絡高效地學習到樣本中關鍵信息,進而獲取更加精簡剪枝網絡,采用通道維度和空間維度的注意力模塊模擬人類選擇性注意力機制,融合于網絡迭代更新掩碼矩陣進行剪枝訓練,通過注意力模塊有效地讓網絡資源集中在與任務密切相關的特征學習中,利用目標函數反饋于特征圖進行權重更新,實現網絡的高效剪枝。該注意力模塊考慮到不同通道像素的重要程度不同,包含的語義信息存在差異,同時也增加了SE(squeeze-and-excitation)模塊中未考慮到同一通道不同位置像素之間信息差異這一特征,拓展同一通道和不同通道之間的語義差異信息,讓網絡自適應關注局部重要信息。
其中,通道注意力機制模塊對經過數據預處理特征輸入圖(C×H×W)進行以下操作:首先將數據預處理圖片進行輸入,進行MaxPool(最大池化層)和AvgPool(平均池化層)操作,生成兩個C×1×1權重向量,在一定程度上減少模型計算量;其次,將權重向量依次送入參數共享的多層神經網絡,映射為通道權重;將權重相加并經過Sigmoid函數進行激活,使得特征輸出圖與未經處理的輸入特征圖有機結合生成最終通道注意力特征。空間注意力模塊將通道注意力模塊輸出作為特征輸入圖,分別經過Maxpooling(最大池化)和Avgpooling(平均池化)生成H×W×1權重向量;將上述權重變量堆疊為H×W×2空間特征權重,隨后進行卷積操作將特征維度轉化為H×W×1,該特征圖描述圖中各個點的重要性程度;最后將得到的空間權重與未經處理特征輸入圖相結合,得到空間注意力機制所生成的圖像特征,如圖1所示。

圖1 通道注意力與空間注意力結合模塊
ResNet32模型架構中輸入圖像為32像素×32像素,該網絡架構包含31個卷積層、1個全連接層,其基本架構如圖2所示。該結構中31個卷積層漸進式學習圖片由低層到高層信息特征。當指定數據集輸入到ResNet32模型中,3×3卷積層首先提取圖片低層次特征,隨后進入殘差塊中學習圖像高層特征,并通過殘差連接保證一定程度卷積層堆疊的梯度傳遞,最后通過全連接層根據學習到的特征對數據集圖像進行識別分類。

圖2 本文中ResNet32網絡架構
為了讓網絡高效地學習到樣本中關鍵信息,使得網絡更注重局部重要信息,抑制其它信息的干擾,采用通道維度和空間維度的注意力模塊模擬人類選擇性注意力機制,分別在結構連接處①、②、③、④中進行實驗測試,選擇注意力機制模塊最佳位置結構;隨后在此基礎上進行稀疏化網絡剪枝訓練,在大量冗余信息中篩選出當前任務中重要信息。通過注意力模塊可以有效地讓網絡資源集中在與任務密切相關的特征學習中,利用網絡輸出結果反饋于特征圖進行權重更新,實現資源集中化高效完成任務。
本文剪枝方法流程有以下步驟:
網絡輸入:剪枝率k,數據集Data,訓練周期t,學習率α,損失函數L(.)。
網絡輸出:精簡網絡模型w′。
(1)隨機初始化神經網絡權重w。
(2)根據式(3)計算初始網絡權重矩陣W。
(3)通過式(4)計算當前網絡中掩碼矩陣M分布情況完成剪枝操作。
(4)根據式(5)、式(6)迭代更新稀疏度,檢驗網絡剪枝空間損失變化情況及動態更新掩碼矩陣M。
(5)迭代更新執行(3)、(4)流程,得到穩定高效精簡網絡模型w′。
實驗平臺是Ubuntu 18.04.6 LTS操作系統;處理器為:Intel(R)Core(TM)i5-8500CPU@3.00 GH;采用深度學習框架PyTorch1.9.0、CUDA11.4、cudnn8.2.2系列編程框架進行網絡剪枝訓練;實驗硬件配置GPU:NVIDIA RTX 1080Ti,顯存為11 GB;使用Matlab2018a軟件進行剪枝實驗數據可視化操作。
本章節將開展基于通道與空間注意力機制的神經網絡進行稀疏化訓練剪枝,首先通過對比實驗選取通道和空間注意力機制嵌入網絡架構中的最佳位置,隨后在該網絡架構結合稀疏化剪枝,同時對比同類剪枝算法及驗證該方法的有效性,以便為后續在存儲計算能力較弱的嵌入式設備移植部署。
本文實驗選擇在公共數據集CIFAR10/100[14,15]上進行算法驗證。CIFAR10/100數據集分別包含10個類別和100個類別,每個類別中分別有6000張和600張32×32同等尺寸彩照,兩者樣本總量同為60 000張。為更好更快地讓數據適應當前網絡模型,對數據進行預處理:對樣本數據進行高斯分布設置,數據之間保持相互獨立,進行批標準化操作使得數據標準化,易于后續開展算法對比實驗。
本文選取經典的ResNet32作為網絡基礎結構。ResNe32網絡架構作為參數冗余程度較小的卷積神經網絡代表,提供了網絡剪枝后影響模型性能的有效參考。通過剪枝后網絡模型的識別精度、剪枝率、模型參數量進行算法對比,其中識別準確度展現了基于注意力機制進行網絡剪枝后的網絡模型在CIFAR10/CIFAR100數據集上的Top-1準確度;實驗設定了90%、95%和98%的剪枝率,并與同領域的算法進行了比較;參數量反映網絡模型占用內存的大小,與模型的存儲需求相關。通過降低網絡的參數量和計算量,本研究旨在實現參數量的大幅減少同時保持網絡性能的穩定與高效。
本文實驗基于數據集CIFAR10/100進行算法對比,網絡訓練和測試batch分別設置為64和50,網絡訓練設為160輪,其中網絡初始學習率為0.1。為確保網絡學習過程的穩定性,當網絡總訓練到達50%與75%進度時分別進行學習率衰減操作,將其設置為當前學習率的10%。在訓練過程中,權重初始化采用Kaiming Normal方法。在梯度優化方面,我們采用了隨機梯度下降策略,其中動量參數設為0.9,衰減系數為10-4。
為使模型壓縮得到最佳性能,進而獲取更加精簡剪枝網絡,通過融合通道維度和空間維度的雙注意力模塊,在網絡架構結構連接處:①、②、③、④中分布進行初步性能測試,選擇雙注意力機制模塊最佳位置結構,模型測試結果見表1。
對比表中實驗結果,可以得出通道注意力和空間注意力機制模塊相結合在數據集CIFAR10、CIFAR100中的最佳結構位置是ResNet32-③架構,故在此網絡架構基礎上基于不同數據集上開展剪枝算法實驗。同時也表明基于通道和空間注意力機制在提取層次由低層次到高層次變化的過程中,由感受野較小的局部特征上升至紋理特征結構、與圖像語義特征相關的全局特征中,注意力機制在較高層次的特征中與圖像識別任務關聯性更強。

表1 基于通道及空間注意力機制ResNet32架構測試結果
為獲取在時間、空間、效率等方面資源利用達到最大合理化網絡模型,本文將網絡剪枝率依次設置為90%、95%、98%,旨在較大程度剔除網絡中冗余參數,減小模型參數量,降低運算時間,滿足實際應用需求的精簡網絡。表2為CIFAR10數據集上基于ResNet32架構不同方法在不同剪枝率的實驗結果。根據實驗結果顯示,本文方法在剪枝率90%、95%、98%時在CIFAR10數據集上識別準確度上分別達到93.01%、91.69%、89.11%。當剪枝率為90%時,本文方法在CIFAR10數據集上準確度分別比LT、MLPrune、SNIP、GraSP提高了0.59%、0.63%、0.48%、0.42%,表明基于注意力機制模塊可以為剪枝提供有價值的信息,進而衡量并選擇貢獻程度較小權重剔除。

表2 CIFAR10數據集上不同剪枝方法對比結果
值得注意的是,在剪枝過程中需要注意學習率的調整情況,避免產生不必要的誤差損失。當剪枝率設定為95%時,本文方法相比于GraSP算法準確度降低了0.11%,但在較高剪枝率98%的條件下較其性能提高了0.45%,而MLPrune算法則是對不同層的權重重要度評估且進行歸一化處理,利用全局閾值去除某些層中幾乎所有權值,剔除貢獻程度小的非必要權重,從而達到較高的修剪率效果,進而實現較高的識別精度。
圖3是在ResNet32網絡架構中基于CIFAR10數據集上不同方法實驗對比結果。為直觀地觀察不同方法最終剪枝效果,將表3中各個剪枝方法分別基于不同剪枝率的條件進行驗證,在Tensorboard可視化工具下轉化為.CSV文件,利用Matlab2018a軟件讀取后半程訓練進度進行可視化,對比不同方法在訓練過程中模型精度的變化效果。

圖3 CIFAR10數據集上各剪枝算法實驗對比
在CIFAR100數據集上,本文為獲取更為穩定和精簡網絡架構,將網絡剪枝率分別設置為90%、95%、98%,通過剔除貢獻程度較小的參數獲取在保證精度前提下資源利用最小化的網絡模型。表3為CIFAR100數據集上基于ResNet32架構上不同方法在不同剪枝率的實驗結果。根據實驗結果顯示,在處理較為復雜數據集且較高剪枝率情況下,采用注意力機制模塊進行剪枝產生的優勢變得較為明顯,在剪枝率90%、95%、98%時分別達到69.69%、67.15%、60.18%,在不同剪枝率情況下較其它算法均有所提高,尤其在較高剪枝率98%條件下,在CIFAR100數據集上準確度分別比LT、MLPrune、SNIP、GraSP提高了0.27%、0.09%、5.59%、0.71%。SNIP在較為復雜數據集CIFAR100上剪枝率逐步上升時,深度網絡連接模板可能存在反饋權重重要性時延問題,導致網絡出現退化甚至崩潰情況,導致該方法在數據集精度測試出現較大誤差。相比而言,GraSP能夠取得較為良好結果,說明該算法剪枝準則與剪枝后的梯度流傳遞直接相關的優勢。本文方法在高修剪率所取得的優勢歸結于全局稀疏性約束,允許不同網絡層進行非均勻稀疏性預算。但基于CIFAR100數據集進行剪枝率變化時,準確度出現驟減情況,在一定程度上說明在較高剪枝率的條件下基于多目標識別易出現誤差。

表3 CIFAR100數據集上不同剪枝方法對比結果
圖4為在ResNet32網絡架構中基于CIFAR100數據集上不同剪枝方法實驗結果對比。為進一步地檢驗方法的有效性,分別將各個剪枝方法基于不同剪枝率的條件進行對比實驗,利用Matlab2018a軟件讀取由Tensorboard導出的測試數據,繪制剪枝方法精度曲線變化圖并進行數據可視化,有效對比不同算法在不同剪枝率約束下的模型精度。

圖4 CIFAR100數據集上各剪枝算法實驗對比
針對神經網絡存在計算及中間過程存儲開銷較大等問題,本文提出了基于通道和空間注意力機制的網絡剪枝稀疏化訓練方法,將通道和空間注意力機制融入網絡剪枝過程中,利用連續空間損失變化情況評估不同網絡層重要程度,進而篩選精簡網絡模型。在未來工作研究中,進一步探索對于剪枝及蒸餾進行模型壓縮,融合知識蒸餾中間層知識傳遞方法及剪枝技術實現更大程度網絡優化和加速,得到更為精簡的網絡模型以便在端設備上進行移植部署。