王憲保 劉鵬飛 項 圣 王辛剛
深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network, DNN)已在計算機視覺領(lǐng)域得到眾多應(yīng)用,表現(xiàn)出較優(yōu)能力.由于必須滿足不同的硬件約束,如何在不同的硬件平臺(如GPU、ASIC或嵌入式設(shè)備等)上有效部署這些深度學習模型正逐漸成為業(yè)界關(guān)注的問題.DNN的高性能往往以高存儲和計算成本為代價.例如,VGG-16[1]的模型參數(shù)超過138 M,訓練模型需消耗500 MB的存儲空間,對一幅圖像進行分類需要155億次浮點運算次數(shù)(Floating-Point Operations, FLO-Ps)[2].
減少模型的存儲需求和計算成本對于DNN更廣泛的適用性至關(guān)重要,于是學者們提出一些能夠解除效率瓶頸同時保持DNN高精度的方法和技術(shù),如模型壓縮(包括網(wǎng)絡(luò)剪枝[3-5]、知識蒸餾[6]、網(wǎng)絡(luò)量化[7-8]、低秩分解[9])、自動機器學習和高效硬件架構(gòu)設(shè)計[10-12]等,以實現(xiàn)高效的深度學習.
網(wǎng)絡(luò)剪枝已被證明是壓縮和加速卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)的有用技術(shù),它使深度網(wǎng)絡(luò)適應(yīng)受存儲或計算資源限制的硬件設(shè)備.根據(jù)現(xiàn)有文獻,網(wǎng)絡(luò)剪枝方法可以分為結(jié)構(gòu)化剪枝[3,13-14]和非結(jié)構(gòu)化剪枝[4-5,15]兩大類.
結(jié)構(gòu)化剪枝方法專注于修剪卷積濾波器、通道甚至網(wǎng)絡(luò)層,使修剪后的網(wǎng)絡(luò)適應(yīng)不同的環(huán)境或設(shè)備.Li等[3]提出FCF(Factorized Convolutional Filter),使用反向傳播法更新標準卷積濾波器,同時使用基于交替方向的乘法優(yōu)化方法更新二進制標量,訓練一個帶有因子化卷積濾波器的CNN.Chin等[13]提出LcP(Layer-Compensated Pruning),改善資源受限的濾波器的性能,使其成為一個全局濾波器排名問題.Ye等[14]提出一種通道修剪技術(shù),將稀疏性約束應(yīng)用于通道的縮放因子,確定哪些通道需要被裁剪.雖然結(jié)構(gòu)化剪枝方法更利于硬件加速,但卻犧牲一定的靈活性.
非結(jié)構(gòu)化剪枝試圖在不修改網(wǎng)絡(luò)結(jié)構(gòu)的情況下,從張量中移除冗余的權(quán)重參數(shù),使一個大的網(wǎng)絡(luò)變得稀疏.Han等[4]只學習重要的連接,用三步法修剪多余的連接,將神經(jīng)網(wǎng)絡(luò)所需的存儲和計算量減少一個數(shù)量級而不影響其準確性.Molchanov等[5]提出減少梯度估計器方差的方法,使用變分隨機失活修剪冗余的權(quán)重.Sehwag等[15]提出HYDRA,將修剪目標表述為一個經(jīng)驗風險最小化問題,并在剪枝步驟中優(yōu)化每個連接的重要性得分.相比結(jié)構(gòu)化剪枝,非結(jié)構(gòu)化剪枝具有優(yōu)越的靈活性和壓縮率.
由于神經(jīng)網(wǎng)絡(luò)在不同的抽象層次上提取特征,因此剪枝過程必須考慮網(wǎng)絡(luò)超參數(shù)的影響,針對不同層設(shè)置不同的剪枝策略.一方面,剪枝不足即網(wǎng)絡(luò)中保留過度冗余的連接和參數(shù),會對模型的計算和推理速度產(chǎn)生影響,導致模型泛化能力的下降.另一方面,過度剪枝可能造成網(wǎng)絡(luò)中剩余的連接和參數(shù)變得過于稀疏,使模型難以捕捉數(shù)據(jù)中的復(fù)雜信息,同時使準確性和泛化能力下降.
目前人類啟發(fā)式的剪枝方法難以平衡模型的復(fù)雜度和準確性,在高剪枝率的場景下往往導致網(wǎng)絡(luò)精度的下降,無法彌補與其它高效網(wǎng)絡(luò)設(shè)計(如MobileNetV2[16])的巨大差距.除了壓縮現(xiàn)有的深度神經(jīng)網(wǎng)絡(luò),設(shè)計新的神經(jīng)網(wǎng)絡(luò)架構(gòu)是另一種提高效率的方法.一些手工高效架構(gòu)已經(jīng)顯示出出色的性能,其核心在于高效卷積層的設(shè)計.例如,Mobile-NetV2在ImageNet數(shù)據(jù)集上實現(xiàn)72.0%的準確率,只用3億個乘積累加運算(Multiply Accumulate, MAC)和3.4億個參數(shù).
然而,網(wǎng)絡(luò)剪枝和高效架構(gòu)設(shè)計的方法都需要大量的理論思考和測試,設(shè)計者必須滿足更嚴格的標準,例如擁有既定的知識和大量的經(jīng)驗儲備,否則即使花費大量的人力和時間成本,也難以保證得到最優(yōu)的結(jié)果.
相比之下,神經(jīng)架構(gòu)搜索(Neural Architecture Search, NAS)自動生成和選擇神經(jīng)網(wǎng)絡(luò)的超參數(shù),允許在減少人類參與的情況下自動學習一個有效的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),在很大程度上解決超參數(shù)設(shè)置的問題.
目前很多NAS無法直接在資源有限的環(huán)境中使用.一種日益流行的解決方案是在搜索策略中考慮執(zhí)行延遲、能源消耗、內(nèi)存占用等因素,使用多目標優(yōu)化算法,這類NAS統(tǒng)稱為硬件感知NAS(Hardware-Aware NAS, HW-NAS).Cai等[17]提出ProxylessNAS,將模型搜索構(gòu)建成一個類似于剪枝的過程,并針對硬件指標進行聯(lián)合優(yōu)化,可以直接學習大規(guī)模目標任務(wù)和目標硬件平臺的架構(gòu).
HW-NAS常與網(wǎng)絡(luò)加速方法結(jié)合,以滿足多目標優(yōu)化的要求.Molchanov等[18]提出LANA(Latency-Aware Network Acceleration),使用NAS和師生蒸餾結(jié)合的方法,自動使用有效操作替換給定網(wǎng)絡(luò)中的低效操作.Li等[19]提出DLW-NAS,重建一個輕量級的搜索空間,設(shè)計一個具有計算復(fù)雜度約束的搜索策略,搜索具有顯著性能以及少量參數(shù)和浮點運算的CNN.
然而現(xiàn)有的多目標搜索方法總是被較低的搜索效率問題困擾,為了解決這個問題,Yang等[20]使用自適應(yīng)數(shù)據(jù)流映射,以細粒度的方式描述采樣網(wǎng)絡(luò)結(jié)構(gòu)的推理延遲,從而擴大可用網(wǎng)絡(luò)的搜索空間,滿足特定的推理延遲要求.Loni等[21]提出TAS(Ter-narized NAS),將量化整合到網(wǎng)絡(luò)設(shè)計中,通過最大梯度傳播單元模板和可學習量化器,大幅減少三元神經(jīng)網(wǎng)絡(luò)和全精度對應(yīng)物之間的精度差距.Peng等[22]提出PRE-NAS(Predictor-Assisted Evolutionary NAS),利用進化式NAS策略和高保真度的權(quán)重繼承方法,避免權(quán)重共享帶來的評估偏差,并通過拓撲同構(gòu)的后代候選提高預(yù)測準確性.Li等[23]提出ACGhostNet(Adder-Convolution GhostNet),設(shè)計融合新型加法器算子和傳統(tǒng)卷積算子的GhostNet輕量級網(wǎng)絡(luò)搜索策略,解決CNN在計算機視覺領(lǐng)域中的能量消耗問題,平衡加法器和卷積算子的權(quán)重.該策略能夠使加法器和卷積算子在搜索過程中得到公正的對待,從而得到更高能效和更優(yōu)性能的模型.
將NAS應(yīng)用在網(wǎng)絡(luò)剪枝上,可以避免超參數(shù)選擇和網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計的主觀性和復(fù)雜性,并且緩解網(wǎng)絡(luò)泛化性下降的問題.但NAS與網(wǎng)絡(luò)剪枝是兩個獨立的過程,算法需要制定一個新的搜索目標,同時更新剪枝參數(shù)和搜索架構(gòu)參數(shù).另外,剪枝操作需要選擇刪除的神經(jīng)單元,而目前NAS的搜索空間中僅包括卷積、池化和歸一化等操作,無法直接在搜索空間中進行.
針對上述問題,本文提出基于神經(jīng)架構(gòu)搜索的非結(jié)構(gòu)化剪枝方法(Unstructured Pruning Method Based on NAS, UPNAS),主要工作如下:1)提出一個支持剪枝操作的搜索空間,并將掩碼學習引入搜索空間的卷積和線性操作中.掩碼學習模塊為每個權(quán)重分配一個掩碼,實現(xiàn)對冗余權(quán)重的刪除.在搜索過程中,采用同時更新掩碼參數(shù)與網(wǎng)絡(luò)結(jié)構(gòu)的方式,訓練具有自適應(yīng)剪枝能力的模型.2)引入層級相關(guān)系數(shù)傳播(Layer-Wise Relevance Propagation, LRP)[24]作為剪枝標準,通過反向傳播相關(guān)性評估網(wǎng)絡(luò)中每個神經(jīng)元的重要性.同時,根據(jù)相關(guān)系數(shù)對二值掩碼進行更新.3)提出非結(jié)構(gòu)化剪枝方法,在預(yù)訓練階段同時對網(wǎng)絡(luò)權(quán)重和相關(guān)系數(shù)進行更新,實現(xiàn)自適應(yīng)剪枝,避免過度剪枝或剪枝不足的問題,提高方法的泛化性能.
針對深度網(wǎng)絡(luò)在內(nèi)存受限的硬件設(shè)備上的部署問題,本文提出基于神經(jīng)架構(gòu)搜索的非結(jié)構(gòu)化剪枝方法(UPNAS).方法引入一個掩碼學習模塊,并依據(jù)學習到的掩碼參數(shù)刪除冗余權(quán)重.為了更新二值掩碼,引入層級相關(guān)系數(shù)傳播(LRP)作為剪枝標準,評估網(wǎng)絡(luò)單元的重要性,保持網(wǎng)絡(luò)的功能完整性.此外,還提出搜索目標和優(yōu)化算法,對網(wǎng)絡(luò)權(quán)重、架構(gòu)參數(shù)和剪枝參數(shù)進行統(tǒng)一優(yōu)化.
本文提出一個具有支持網(wǎng)絡(luò)剪枝特性的搜索空間,允許在搜索過程中對網(wǎng)絡(luò)進行剪枝.
1.1.1 搜索空間與搜索網(wǎng)絡(luò)
為了從源頭上限制神經(jīng)網(wǎng)絡(luò)的參數(shù)和浮點計算,考慮將更輕量級的卷積操作引入搜索空間中,因此提出一個支持網(wǎng)絡(luò)剪枝的搜索空間,包含7個操作,即GhostConv[25]、3×3 深度可分離卷積、3×3 擴張卷積、3×3 最大池化、3×3 平均池化、恒等映射和零操作.其中GhostConv是一個便捷的卷積操作,參數(shù)和FLOPs約為3×3深度可分離卷積的一半.
NASNet[26]和DARTS(Differentiable Architecture Search)[27]在預(yù)定義的搜索空間中搜索兩種類型的單元,即正常單元和還原單元.正常單元用于返回相同維度的特征圖,而還原單元用于返回高度和寬度減少一半的特征圖.本文可借鑒這一思想.
單元的拓撲結(jié)構(gòu)是一個由n個節(jié)點組成的有向無環(huán)圖(Directed Acyclic Graph, DAG),按照規(guī)則有序連接.
具體來說,每個節(jié)點N表示卷積網(wǎng)絡(luò)的一個特征圖.節(jié)點Np和Nq連接,形成單元的一條邊E(p,q), 表示從搜索空間中選擇的某種操作.每個節(jié)點和所有前驅(qū)節(jié)點連接,并滿足
其中,o(p,q)表示從給定的操作集O中選擇一個操作,并應(yīng)用于邊E(p,q).為了使搜索空間連續(xù)化,對離散操作選擇進行連續(xù)松弛化:
完整的神經(jīng)網(wǎng)絡(luò)由若干個正常單元和還原單元堆疊組成,基本單元的搜索過程如圖1所示.在網(wǎng)絡(luò)總深度的1/3和2/3的位置為還原單元,其余位置為正常單元,這樣的設(shè)置有利于為任何尺寸的輸入圖像構(gòu)建可擴展的架構(gòu).
圖1 基本單元的搜索過程
1.1.2 掩碼學習模塊
由于NAS的搜索過程中缺乏對網(wǎng)絡(luò)剪枝的支持,本文提出一個掩碼學習模塊,結(jié)構(gòu)如圖2所示.模塊包含一組與權(quán)重參數(shù)維度相同的二值掩碼序列,將其引入搜索空間的卷積和線性操作中,為每個網(wǎng)絡(luò)權(quán)重分配一個掩碼.在搜索過程中,根據(jù)設(shè)立的剪枝標準,對網(wǎng)絡(luò)性能貢獻度低的權(quán)重進行掩碼,以便在后續(xù)的訓練中刪除該權(quán)重.
圖2 掩碼學習模塊結(jié)構(gòu)圖
由于掩碼是一組二進制參數(shù),直接更新具有挑戰(zhàn)性,因此引入層級相關(guān)系數(shù)傳播(LRP)[24],協(xié)助掩碼參數(shù)的更新,同時作為剪枝標準.LRP最初被用于機器學習的可解釋性,計算每個輸入特征對于網(wǎng)絡(luò)輸出的相對重要性,分析神經(jīng)網(wǎng)絡(luò)的決策過程.LRP的計算是通過反向傳播實現(xiàn)的,具體如圖3所示.
(a)網(wǎng)絡(luò)權(quán)重的前向傳播
在反向傳播過程中,通過對神經(jīng)元激活的正向傳播過程進行逆向傳播,計算每個網(wǎng)絡(luò)單元(神經(jīng)元或網(wǎng)絡(luò)權(quán)重)對于輸出的貢獻,并將這些貢獻值分配給相應(yīng)的網(wǎng)絡(luò)單元.
傳統(tǒng)的剪枝標準通常只考慮每個神經(jīng)元的權(quán)重大小和梯度信息,無法衡量每個神經(jīng)元在網(wǎng)絡(luò)中的作用.例如,基于權(quán)重的剪枝標準可能刪除網(wǎng)絡(luò)中重要的神經(jīng)元,導致網(wǎng)絡(luò)性能的衰退.
相比之下,LRP通過反向傳播重要性考慮每個權(quán)重在網(wǎng)絡(luò)中的作用,從而更好地評估其重要性.此外,使用LRP作為剪枝標準有助于保持網(wǎng)絡(luò)的功能完整性.
因為可基于每個權(quán)重的貢獻度進行剪枝,所以剪枝后的網(wǎng)絡(luò)仍然可以保持原有的功能,而不會失去關(guān)鍵的權(quán)重.
為了確保所有重要性得到正確的分配和保存,LRP的重新分配遵守分層守恒原則:
LRP與網(wǎng)絡(luò)輸出f(x)直接建立聯(lián)系,并在逐層分配中遵守分層守恒原則.即使在剪枝過程中神經(jīng)網(wǎng)絡(luò)隱藏層的大小以及神經(jīng)元的數(shù)量發(fā)生變化,分層守恒原則也能保證LRP的數(shù)量固定,從而保證剪枝程序的平穩(wěn)運行.
相關(guān)系數(shù)的分配是根據(jù)發(fā)送到前一層的神經(jīng)元的信息獲得的,這種信息為Ri←j.在非線性網(wǎng)絡(luò)中,神經(jīng)元的激活值zj是xj的非線性函數(shù).當激活函數(shù)單調(diào)遞增時,如雙曲切線和整流函數(shù),相關(guān)系數(shù)的分配基于局部和全局預(yù)激活的比率:
其中,
zij=xiwij,
表示第l層的神經(jīng)元i對第l+1層中神經(jīng)元j的加權(quán)激活值,
表示第l層所有與第l+1層神經(jīng)元j連接的神經(jīng)元對j的加權(quán)激活值,b表示偏置項.
當相關(guān)性被用作修剪標準時,無論隱藏層的大小和每層迭代修剪的神經(jīng)元數(shù)量如何變化,這一特性都有助于保持逐層相關(guān)性守恒.根據(jù)相關(guān)系數(shù)R∈(0,1)N學習用于剪枝的掩碼參數(shù)m∈{0,1}N,其中N表示預(yù)訓練網(wǎng)絡(luò)權(quán)重的數(shù)量.根據(jù)剪枝的要求,選擇前k個最大的相關(guān)系數(shù),可以表述為第l層的神經(jīng)元i與第l+1層中神經(jīng)元j之間的權(quán)重wij分配的掩碼值:
將第l層與第l+1層中所有的相關(guān)系數(shù)按照從大到小的順序排列,如果神經(jīng)元i與神經(jīng)元j之間的權(quán)重對應(yīng)的相關(guān)系數(shù)的絕對值
非結(jié)構(gòu)化剪枝通常需要三個階段:網(wǎng)絡(luò)預(yù)訓練、剪枝和微調(diào),流程如圖4所示.為了訓練有關(guān)剪枝權(quán)重的架構(gòu)參數(shù),方法將網(wǎng)絡(luò)權(quán)重和掩碼參數(shù)的更新轉(zhuǎn)化為雙層優(yōu)化中較低層次的優(yōu)化問題,使用基于梯度的方式與架構(gòu)參數(shù)交替更新.UPNAS的搜索目標在于獲得最優(yōu)的架構(gòu)參數(shù)α*,使剪枝后網(wǎng)絡(luò)的驗證損失Lval(wpruned(α),α)最小,即
圖4 非結(jié)構(gòu)化剪枝方法流程圖
其中,w(α)表示預(yù)訓練網(wǎng)絡(luò)的權(quán)重參數(shù),wpruned(α)表示微調(diào)網(wǎng)絡(luò)的權(quán)重參數(shù).
UPNAS依次實現(xiàn)對w(α)、m、wpruned(α)和α的學習.首先,給定一個初始化的搜索架構(gòu),架構(gòu)參數(shù)在預(yù)訓練階段保持不變,而網(wǎng)絡(luò)權(quán)重通過隨機梯度下降法(Stochastic Gradient Descent, SGD)進行更新.根據(jù)LRP的傳播規(guī)則,相關(guān)系數(shù)采用類似于反向傳播的方式進行更新.最小化預(yù)訓練損失Lpre-train
(w(α),α)以更新權(quán)重w*(α)與相關(guān)系數(shù)R*.然后,通過更新后的掩碼參數(shù)m*刪除網(wǎng)絡(luò)中冗余的權(quán)重參數(shù).在微調(diào)階段,對剪枝后的網(wǎng)絡(luò)重新訓練,更新非零權(quán)重wpruned(α)以達到最佳的網(wǎng)絡(luò)精度.最后,最小化驗證損失Lval(wpruned(α),α),即可獲得最優(yōu)的架構(gòu)參數(shù)α*.
本文在兩個公開的分類數(shù)據(jù)集CIFAR-10[28]和ImageNet[29]上進行實驗,用于評估UPNAS的有效性.CIFAR-10數(shù)據(jù)集是一個分類數(shù)據(jù)集,由60 000幅彩色圖像組成,平均分為10類,訓練圖像50 000幅和測試圖像10 000幅.ImageNet數(shù)據(jù)集共有1 000個類別,14 197 122幅圖像,是一個用于分類的大型計算機視覺數(shù)據(jù)集,每幅圖像都經(jīng)過手工標定.
將CIFAR-10數(shù)據(jù)集按照1∶1的比例劃分為訓練集和驗證集,便于在搜索過程中交替更新不同的參數(shù).使用Top-1準確率和網(wǎng)絡(luò)參數(shù)量作為評估指標.
本文使用SGD分別對預(yù)訓練網(wǎng)絡(luò)和微調(diào)網(wǎng)絡(luò)進行訓練,歷時60個迭代周期,動量設(shè)置為0.9,權(quán)重衰減為0.000 3,每個訓練批次由64幅圖像組成.預(yù)訓練和微調(diào)階段的起始學習率分別設(shè)置為0.025和0.01,使用余弦退火在每20個歷時后衰減為原來的1/10.搜索網(wǎng)絡(luò)由不同數(shù)量的單元堆疊構(gòu)成,網(wǎng)絡(luò)中1/3和2/3的位置為還原單元,其它為正常單元.
實驗使用PyTorch框架在英偉達Tesla V100上進行訓練和推理,搜索過程累積花費2.1~2.8個GPU-day.
為了權(quán)衡網(wǎng)絡(luò)的分類準確率和參數(shù)量,將剪枝率設(shè)置為95%,在CIFAR-10數(shù)據(jù)集上展開一組實驗,探究網(wǎng)絡(luò)層數(shù)和初始通道數(shù)對剪枝網(wǎng)絡(luò)的影響.分別取網(wǎng)絡(luò)層數(shù)為14,16,18,20,初始通道數(shù)為36,48,64,實驗結(jié)果如表1所示,表中黑體數(shù)字表示最優(yōu)值.由表可以發(fā)現(xiàn),搜索的剪枝網(wǎng)絡(luò)的參數(shù)量隨著網(wǎng)絡(luò)層數(shù)與通道數(shù)的增加而增大.而且,當保持網(wǎng)絡(luò)層數(shù)不變時,增大網(wǎng)絡(luò)的初始通道數(shù)有益于準確率的提升.但是,UPNAS在CIFAR-10數(shù)據(jù)集上取得的Top-1準確率與網(wǎng)絡(luò)層數(shù)并未呈現(xiàn)正相關(guān)的關(guān)系.可以看出,層數(shù)的加深導致網(wǎng)絡(luò)復(fù)雜度的增加,從而產(chǎn)生過擬合的現(xiàn)象,阻礙UPNAS取得更佳的表現(xiàn).
表1 網(wǎng)絡(luò)層數(shù)和初始通道數(shù)對算法的影響
實驗數(shù)據(jù)表明,當網(wǎng)絡(luò)層數(shù)設(shè)置為14,初始通道數(shù)設(shè)置為64時,NPF取得最高的分類準確率,為96.35%,網(wǎng)絡(luò)參數(shù)僅為0.367106個.PR-DARTS(Pruning-Based DARTS)[30]也測試DARTS網(wǎng)絡(luò)剪枝后的性能,在相同的剪枝率下,在CIFAR-10數(shù)據(jù)集上取得93.74%的Top-1準確率.相比之下,UPNAS在CIFAR-10數(shù)據(jù)集上的Top-1準確率提升2.61%.后續(xù)實驗將在網(wǎng)絡(luò)層數(shù)為14和初始通道數(shù)為64下搜索剪枝網(wǎng)絡(luò).
為了評估網(wǎng)絡(luò)在極端剪枝率場景下的準確率衰減情況,將網(wǎng)絡(luò)剪枝率設(shè)置為99%,在CIFAR-10數(shù)據(jù)集上進行實驗.HYDRA[15]作為目前先進的非結(jié)構(gòu)化剪枝方法之一,使用剪枝參數(shù)幫助掩碼的更新,能夠為網(wǎng)絡(luò)提供99%的剪枝率.因此,使用HYDRA對MobileNetV2[16]、DARTS[26]、EfficientNet[31]和ResNet-18[32]進行剪枝,并與UPNAS進行對比,實驗結(jié)果如表2所示,表中黑體數(shù)字表示最優(yōu)值.壓縮比是以DARTS的參數(shù)量(3.3×106)為基準.
表2 極端剪枝率下6種方法的結(jié)果對比
由表2可看出,在極端剪枝率下,不同網(wǎng)絡(luò)架構(gòu)的性能均出現(xiàn)退步,相比在95%剪枝率的場景下, UPNAS在CIFAR-10數(shù)據(jù)集上的Top-1準確率下降4.72%,但非剪枝場景設(shè)計的網(wǎng)絡(luò)架構(gòu)的性能下降得更快.例如,相比剪枝前,剪枝后的DARTS在CIFAR-10數(shù)據(jù)集上的準確率下降15.99%.這一結(jié)果也表明,盡管先進的剪枝技術(shù)能夠大幅削減網(wǎng)絡(luò)權(quán)重參數(shù)量,但由于人為設(shè)計的剪枝策略難以運用最優(yōu)方式保留或刪除網(wǎng)絡(luò)權(quán)重,因此導致網(wǎng)絡(luò)在剪枝前后的泛化差距較高.UPNAS將剪枝集成在架構(gòu)搜索過程中,通過優(yōu)化算法自動學習掩碼參數(shù)m,可避免此問題.
值得注意的是,相比DARTS架構(gòu),PR-DARTS(Small)在保持89.06%的準確率的同時取得194.12倍的網(wǎng)絡(luò)壓縮率.PR-DARTS與UPNAS類似,區(qū)別在于PR-DARTS在剪枝過程中遵從HYDRA提出的掩碼學習方式,而UPNAS使用層級相關(guān)系數(shù)[27]作為剪枝標準,能夠衡量每個權(quán)重的重要性.相比PR-DARTS(Small),UPNAS取得2.57%的準確率提升,網(wǎng)絡(luò)參數(shù)量幾乎相當.
本文選用如下3種壓縮方法:1)神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索方法.TAS[21]、ACGhostNet-B[23]、ACGhostNet-C[23].2)高效架構(gòu)手工設(shè)計方法.ShuffleNet[11]、MobileNetV2[16].3)知識蒸餾方法.文獻[33]方法、RKD(Relational Knowledge Distillation)[34]、PU(Po-sitive-Unlabeled)Method[35]、文獻[36]方法、DFND(Data-Free Noisy Distillation)[37].
在ImageNet數(shù)據(jù)集上重新訓練UPNAS,引入指標A/P,用于評估神經(jīng)網(wǎng)絡(luò)使用參數(shù)的效率.A/P結(jié)合模型的準確率和參數(shù)量,公式如下:
可以看出,A/P值越大,說明網(wǎng)絡(luò)使用參數(shù)的效率越高[38].
UPNAS和其它壓縮方法在CIFAR-10、ImageNet數(shù)據(jù)集上的指標值對比如表3所示,表中黑體數(shù)字表示最優(yōu)值.由表可知,相比其它方法,UPNAS性能最優(yōu).在CIFAR-10、ImageNet數(shù)據(jù)集上,UPNAS獲得96.35%和73.60%的Top-1準確率,相比MobileNetV2,分別獲得4.30%和1.60%的準確率提升,網(wǎng)絡(luò)參數(shù)量為0.367×106和0.480×106.相比ShuffleNet,UPNAS以10.34倍的A/P值在ImageNet數(shù)據(jù)集上獲得相同的分類精度.相比ACGhostNet-C,UPNAS在CIFAR-10上獲得1.25%的準確率提升,兩種方法在ImageNet數(shù)據(jù)集上獲得相等的精度,但UPNAS取得10.76倍的A/P值提升.此外,相比文獻[36]方法,UPNAS在兩個數(shù)據(jù)集上的準確率分別提升1.69%和1.11%,并取得262.53和152.33的A/P值.
表3 UPNAS與其它壓縮方法的指標值對比
為了進一步探究UPNAS的有效性,選擇如下剪枝方法:WRN(Wide Residual Networks)[7]、HRank(High Rank of Feature Maps)[39]、GAL(Generative Adversarial Learning)-0.5[40]、ABCPruner(A New Chan-nel Pruning Method Based on Artificial Bee Colony Algorithm)[41]、PKP(Progressive Kernel Pruning)[42]、FPGM(Filter Pruning via Geometric Median)[43]、SFP(Soft Filter Pruning)[44]、TAS(Transformable Archi-tecture Search)[45].
各方法在CIFAR-10、ImageNet數(shù)據(jù)集上的實驗結(jié)果如表4所示,表中黑體數(shù)字表示最優(yōu)值,壓縮率是根據(jù)使用GAL-0.5修剪后的網(wǎng)絡(luò)參數(shù)量計算的.由表可知,相比GAL-0.5,UPNAS在CIFAR-10、ImageNet數(shù)據(jù)集上獲得3.80%和1.65%的準確率提升.以GAL-0.5的網(wǎng)絡(luò)參數(shù)量為基準,UPNAS在CIFAR-10、ImageNet數(shù)據(jù)集上獲得2.59倍和44.17倍的網(wǎng)絡(luò)壓縮率,在CIFAR-10上取得最高的分類
表4 UPNAS與剪枝方法的指標值對比
精度,在ImageNet上的分類精度比ABCPruner降低0.26%,但獲得24.54倍的模型壓縮率,參數(shù)量大幅減少.可以看出,UPNAS不僅可以刪除大量冗余的網(wǎng)絡(luò)參數(shù),而且可以保持神經(jīng)網(wǎng)絡(luò)的泛化能力,提高網(wǎng)絡(luò)效率.
為了滿足模型部署的需要,本文提出基于神經(jīng)架構(gòu)搜索的非結(jié)構(gòu)化剪枝方法(UPNAS).在預(yù)定義的搜索空間中引入掩碼學習模塊,為每個權(quán)重分配一個掩碼,實現(xiàn)在搜索過程中對冗余權(quán)重的刪除.此外,為了解決掩碼參數(shù)的優(yōu)化問題,引入層級相關(guān)系數(shù)傳播(LRP)作為剪枝標準,評估權(quán)重對輸出的貢獻度,并根據(jù)相關(guān)系數(shù)更新每個掩碼參數(shù)值.實驗表明,UPNAS可以有效刪除相對冗余的參數(shù),并在最大程度上降低網(wǎng)絡(luò)性能的衰減程度,為實際場景下的模型部署問題提供一種有效的解決方案.今后將探索剪枝方法在更多計算機視覺任務(wù)上的應(yīng)用,解決現(xiàn)實中具體的模型部署問題.