陳靚,錢亞冠,何志強,關(guān)曉惠,王濱,王星
研究與開發(fā)
深度卷積神經(jīng)網(wǎng)絡(luò)的柔性剪枝策略
陳靚1,2,錢亞冠1,2,何志強1,2,關(guān)曉惠3,王濱4,王星4
(1. 浙江科技學(xué)院理學(xué)院/大數(shù)據(jù)學(xué)院,浙江 杭州 310023;2. ??低?浙江科技學(xué)院邊緣智能安全聯(lián)合實驗室,浙江 杭州 310023; 3. 浙江水利水電學(xué)院信息工程與藝術(shù)設(shè)計學(xué)院,浙江 杭州 310023;4. 浙江大學(xué)電氣工程學(xué)院,浙江 杭州 310063)
盡管深度卷積神經(jīng)網(wǎng)絡(luò)在多種應(yīng)用中取得了極大的成功,但其結(jié)構(gòu)的冗余性導(dǎo)致模型過大的存儲容量和過高的計算代價,難以部署到資源受限的邊緣設(shè)備中。網(wǎng)絡(luò)剪枝是消除網(wǎng)絡(luò)冗余的一種有效途徑,為了找到在有限資源下最佳的神經(jīng)網(wǎng)絡(luò)模型架構(gòu),提出了一種高效的柔性剪枝策略。一方面,通過計算通道貢獻量,兼顧通道縮放系數(shù)的分布情況;另一方面,通過對剪枝結(jié)果的合理估計及預(yù)先模擬,提高剪枝過程的效率?;赩GG16與ResNet56在CIFAR-10的實驗結(jié)果表明,柔性剪枝策略分別降低了71.3%和54.3%的浮點運算量,而準確率僅分別下降0.15個百分點和0.20個百分點。
卷積神經(jīng)網(wǎng)絡(luò);網(wǎng)絡(luò)剪枝;縮放系數(shù);通道貢獻量
從最初的8層AlexNet[1],到上百層的ResNet[2],深度學(xué)習(xí)技術(shù)的發(fā)展得益于日益加深的網(wǎng)絡(luò)結(jié)構(gòu),但同時受其制約。一個152層的ResNet有超過6 000萬個參數(shù),在推斷分辨率為224dpi×224 dpi的圖像時需要超過200億次浮點運算(floating point operation,F(xiàn)LOP)。盡管這在擁有大量高性能GPU的云平臺上不成問題,但對于移動設(shè)備、可穿戴設(shè)備或物聯(lián)網(wǎng)設(shè)備等資源受限的平臺是無法承受的。然而,集中化的云端推理服務(wù)存在帶寬資源消耗大、圖像數(shù)據(jù)隱私泄密嚴重、時效性難以保證等問題[3]。因此,如何在邊緣端部署深度神經(jīng)網(wǎng)絡(luò)模型是解決問題的關(guān)鍵。
為此學(xué)術(shù)界提出了很多壓縮卷積神經(jīng)網(wǎng)絡(luò)的方法,包括低秩近似[4]、網(wǎng)絡(luò)量化[5]和網(wǎng)絡(luò)剪枝等,其中剪枝技術(shù)被證實是一種有效的方法。剪枝方法按照移除的粒度大小可以被分為兩大類:權(quán)重剪枝和結(jié)構(gòu)化剪枝。權(quán)重剪枝[6]也被稱作非結(jié)構(gòu)化剪枝,可以剪除網(wǎng)絡(luò)中的任意連接權(quán)重。盡管它具有較高的剪枝率,但稀疏權(quán)重矩陣的存儲和關(guān)聯(lián)索引需要特定的計算環(huán)境,在實際中難以實現(xiàn)硬件加速[7-8]。結(jié)構(gòu)化剪枝[9-12]直接減小權(quán)重矩陣的大小,同時保持完整矩陣的形式,因此它可以更好地兼容硬件進行加速,成為目前的主流研究方向。
早期的剪枝方法[12-14]通常根據(jù)權(quán)重重要性決定哪些通道被剪除,忽略權(quán)重重要性之間相互聯(lián)系,從而容易造成過度剪枝或剪枝不足的問題,導(dǎo)致剪枝后模型性能不可復(fù)原地下降。最新的研究通常使用漸進的迭代剪枝方法[15],或?qū)⒕W(wǎng)絡(luò)結(jié)構(gòu)搜索問題轉(zhuǎn)化為優(yōu)化問題[16],逐步逼近最佳的網(wǎng)絡(luò)架構(gòu)。然而當(dāng)這些方法應(yīng)用于大剪枝率時,受到網(wǎng)絡(luò)稀疏程度的影響,在實際剪枝過程中會帶來額外的計算量。
為了能夠更高效地剪枝得到最佳的模型結(jié)構(gòu),本文提出一種柔性剪枝策略。該方法以通道為單位剪枝,首先結(jié)合批歸一化(batch normalization,BN)層的縮放系數(shù)值及其分布情況,計算通道貢獻量作為衡量通道重要性的依據(jù),并初步估算每層的剪枝比例。然后通過模擬剪枝調(diào)優(yōu)剪枝策略,以此快速逼近最佳的網(wǎng)絡(luò)架構(gòu)。最后根據(jù)得到的架構(gòu)對每一層分別剪枝,獲得緊湊的模型。本文提出的剪枝方法,采用全局的結(jié)構(gòu)化剪枝方式,過程中不需要對局部手動調(diào)參,剪枝后的模型無須特定的環(huán)境支持,是一種高效的模型壓縮方法。
剪枝作為網(wǎng)絡(luò)壓縮的有效方法之一,通過裁剪網(wǎng)絡(luò)中不重要的權(quán)重,在不影響性能的情況下,提升網(wǎng)絡(luò)運算速度,減少存儲容量。早在1989年,LECUN等[17]就指出神經(jīng)網(wǎng)絡(luò)中存在大量冗余,刪除網(wǎng)絡(luò)中不重要的權(quán)重能夠獲得更好的泛化能力,消耗更少的訓(xùn)練和推理時間。文獻[6]通過修剪網(wǎng)絡(luò)中的不重要連接,減少網(wǎng)絡(luò)所需要的參數(shù),減少內(nèi)存和計算消耗。盡管權(quán)重剪枝在降低網(wǎng)絡(luò)參數(shù)上有顯著的效果,但會導(dǎo)致模型的非結(jié)構(gòu)化,很難實現(xiàn)硬件加速[7-8]。
為兼容現(xiàn)有的硬件加速,近期的剪枝工作[9-12]集中在結(jié)構(gòu)化剪枝上,通過修剪整個通道或者卷積核以保持結(jié)構(gòu)的規(guī)則性,并提出了多種重要性度量標準。文獻[9]使用卷積核的L1范數(shù)作為重要性度量,計算卷積核中所有權(quán)值的絕對值之和,從而規(guī)則地刪除數(shù)值較小的卷積核避免稀疏連接。文獻[10]通過計算激活層后神經(jīng)元中數(shù)值為0的比例衡量神經(jīng)元的重要性。文獻[11]根據(jù)刪除一個通道后對下一層激活值的影響衡量該通道重要性,尋找這一層輸入的最優(yōu)子集代替原來的輸入,得到盡可能相似的輸出,剪除子集外的通道。文獻[12]提出網(wǎng)絡(luò)瘦身(network slimming,NS)方法,用BN層的縮放系數(shù)作為通道重要性的評價標準,根據(jù)全局閾值剪除縮放系數(shù)小于閾值的通道。
NS方法[12]是一種經(jīng)典的自動化剪枝方法[18],可以根據(jù)整體剪枝率自動地生成剪枝后的網(wǎng)絡(luò)架構(gòu),無須人為設(shè)計每層的剪枝比例。文獻[19]指出,NS方法中基于預(yù)定義的全局閾值(optimal thresholding,OT)的設(shè)計忽略了不同層之間的變化和權(quán)重分布,并提出一種最優(yōu)閾值設(shè)定策略,根據(jù)不同層的權(quán)重分布設(shè)計各層的最優(yōu)閾值。文獻[20]同樣基于NS方法,提出了一種極化正則化器(polarization regularizer,PR),通過調(diào)整稀疏化訓(xùn)練的策略,對不同重要性的通道進行區(qū)分。
常規(guī)的剪枝方法是一個不可逆過程,被剪除的通道或者卷積核不參與后續(xù)訓(xùn)練過程,也被稱為“剪枝”。文獻[21]和文獻[15]提出“剪枝”法,在訓(xùn)練期間將被剪除的卷積核參數(shù)重置為零,并在后續(xù)訓(xùn)練階段持續(xù)更新,以此降低過度剪枝風(fēng)險。文獻[22]在此基礎(chǔ)上提出ASRFP方法,漸進地修剪卷積核,使得訓(xùn)練和剪枝過程更加穩(wěn)定。文獻[23]提出BN-SFP方法,根據(jù)BN層縮放系數(shù)進行軟剪枝,實現(xiàn)性能的提升。
最新的研究工作通過自動搜索最優(yōu)子網(wǎng)絡(luò)結(jié)構(gòu)實現(xiàn)網(wǎng)絡(luò)剪枝,文獻[24]預(yù)先訓(xùn)練大型PruningNet預(yù)測剪枝模型的權(quán)重,通過一種進化搜索方法搜索性能良好的修剪網(wǎng)絡(luò)。文獻[25]提出了近似的Oracle過濾器剪枝,用二分搜索的方式確定每層的剪枝數(shù)。文獻[26]基于人工蜂群算法,搜索最優(yōu)的剪枝架構(gòu)。
相比于以往的剪枝方法通過去除冗余或者結(jié)構(gòu)搜索的方式,漸進地逼近目標壓縮模型,柔性方法的優(yōu)越性體現(xiàn)在,通過分析模型的權(quán)值分布和對目標壓縮模型的快速模擬,以少量計算成本獲得高性能的壓縮模型架構(gòu)。
神經(jīng)網(wǎng)絡(luò)的前向傳播是一個連續(xù)過程,剪除其中一部分權(quán)重必然對后續(xù)的計算產(chǎn)生影響。原先的NS方法中基于預(yù)定義全局閾值的設(shè)計忽略了權(quán)重的關(guān)聯(lián)性。另外,網(wǎng)絡(luò)架構(gòu)的改變會對權(quán)重的分布產(chǎn)生影響,即當(dāng)對神經(jīng)網(wǎng)絡(luò)模型進行迭代剪枝時,每輪迭代后的模型由于架構(gòu)發(fā)生改變,權(quán)重分布也會相應(yīng)發(fā)生變化。當(dāng)網(wǎng)絡(luò)架構(gòu)越接近于最佳的剪枝后架構(gòu)時,權(quán)重分布也越接近。據(jù)此本文提出柔性剪枝策略,結(jié)合BN層縮放系數(shù)的分布情況,構(gòu)建一個新的通道重要性評價指標——通道貢獻量。并提出一種通道等效重組方法,對剪枝后的網(wǎng)絡(luò)架構(gòu)進行模擬,獲得接近于最佳網(wǎng)絡(luò)架構(gòu)的權(quán)重分布。
柔性剪枝算法的流程如圖1所示,整個流程可以分為獲取架構(gòu)和獲取參數(shù)兩個部分。通過計算通道貢獻量、通道等效重組和適配調(diào)整縮放系數(shù)3個步驟獲取壓縮模型的架構(gòu),即剪枝后模型各層剩余的通道數(shù)。然后以此進行硬剪枝,微調(diào)獲取壓縮模型參數(shù)。其中,通道貢獻量的計算包括閾值函數(shù)平滑和位序相關(guān)性加權(quán)兩步,本文將在下面詳細地闡述實施細節(jié)。需要指出的是,本文提出的柔性剪枝在模擬訓(xùn)練過程中提供了更多的網(wǎng)絡(luò)架構(gòu)調(diào)整機會,有效地避免一次性剪枝帶來的過度剪枝問題。
圖1 柔性剪枝的流程
由于縮放系數(shù)局限于反映單個通道的重要性,因此在縮放系數(shù)的基礎(chǔ)上提出通道貢獻量,以便于擴展到對整個層的度量。通道貢獻量的設(shè)計初衷是用于抑制通道的輸出,實現(xiàn)模擬剪枝。NS方法根據(jù)全局閾值,剪除縮放系數(shù)小于全局閾值的通道,保留縮放系數(shù)大于全局閾值的通道。其剪枝過程可以視為將通道輸出乘以一個關(guān)于縮放系數(shù)的閾值函數(shù),類似于階躍函數(shù),即縮放系數(shù)小于閾值的通道輸出乘以0,縮放系數(shù)大于閾值的通道輸出乘以1。然而這會造成被剪除部分信息不可恢復(fù)的損失,并且無法體現(xiàn)不同通道的重要性差異,因此為便于對剪枝后架構(gòu)的模擬,將其改造成平滑度可控的函數(shù)。
首先,根據(jù)通道縮放系數(shù)的大小,設(shè)計一個平滑函數(shù):
圖2 不同平滑系數(shù)下的平滑函數(shù)
其中,表示在加權(quán)過程中使用了當(dāng)前通道位序前后項的值,體現(xiàn)了序列中的相鄰?fù)ǖ缹τ诋?dāng)前通道貢獻量的影響程度。
使用通道貢獻量對初始模型進行等效重組的過程,可以視作一種模擬剪枝方法,此時雖然保留了模型所有信息的完整,但是各層的輸出近似于被剪枝之后的輸出。
圖4 通道等效重組的過程示意圖
通過上述步驟,能夠獲取目標剪枝率下壓縮模型的架構(gòu)。根據(jù)各層的剩余通道數(shù),分別進行硬剪枝,根據(jù)此時各通道通過式(5)得到的縮放系數(shù)大小,剪除數(shù)值較低的部分通道。由于柔性剪枝是一步式的剪枝方法,因此最后的訓(xùn)練過程根據(jù)剪枝率的大小,提供兩種方案。當(dāng)剪枝率較小時,對剪枝后的模型微調(diào)。當(dāng)剪枝率較大時,考慮使用壓縮模型架構(gòu)直接從頭訓(xùn)練(train from scratch)。
本文實驗代碼采用Pytorch編程框架,所使用的GPU為NVIDIA RTX 2080Ti。本節(jié)將結(jié)合實驗驗證深度卷積神經(jīng)網(wǎng)絡(luò)柔性剪枝策略的實際性能。
實驗采用CIFAR-10/100[28]數(shù)據(jù)集,其被廣泛應(yīng)用于評價網(wǎng)絡(luò)剪枝方法。CIFAR-10/100數(shù)據(jù)集都包括50 000個訓(xùn)練數(shù)據(jù)和10 000個測試數(shù)據(jù),每張圖像的大小是32 dpi×32 dpi,分別有10個和100個類。按照文獻[12]的方法對CIFAR-10/100進行預(yù)處理圖像。
本文選取經(jīng)典的VGG[27]和ResNet[2]作為剪枝的預(yù)訓(xùn)練網(wǎng)絡(luò)。這兩個網(wǎng)絡(luò)分別作為無跨層連接和有跨層連接的代表,能夠最直觀地反映出網(wǎng)絡(luò)壓縮對于一般網(wǎng)絡(luò)模型的效果。需要指出的是,當(dāng)對ResNet上的跨層連接進行剪枝時,通過剪枝得到一個錢包型(wallet)[29]的結(jié)構(gòu)會更有利于剪枝后的網(wǎng)絡(luò)架構(gòu)。因此,本文設(shè)計一種相對保守的剪枝策略:對于跨層連接的通道,以每次跨層連接前后的BN層縮放系數(shù)中的最大值作為它的重要性度量,再計算得到跨層連接所需要的通道數(shù)。相比于NS剪枝完全不對跨層的通道進行裁剪,通過這一策略能夠在最大程度保證剪枝后準確率不會驟降的同時,對跨層連接的通道進行裁剪。
實驗主要通過剪枝后模型的準確率、浮點運算量和參數(shù)量3個評價指標與其他剪枝方法對比。準確率指的是分類神經(jīng)網(wǎng)絡(luò)在測試數(shù)據(jù)集上的Top-1分類準確率。浮點運算量用于衡量模型的計算復(fù)雜度,浮點運算量越低說明模型實際運算所需的計算量越少,模型加速的效果越好。參數(shù)量表示模型占用的內(nèi)存大小量,參數(shù)量的減少可以直接體現(xiàn)模型壓縮的效果。
稀疏訓(xùn)練:與NS[12]一樣,通過對BN層縮放系數(shù)施加L1懲罰項進行稀疏化訓(xùn)練。在CIFAR數(shù)據(jù)集上,對于VGG16選擇10?4作為稀疏率,ResNet56則選擇10?5。所有其他設(shè)置與正常訓(xùn)練保持一致。
在CIFAR10/100數(shù)據(jù)集上修剪VGG16的比較結(jié)果見表1。為了保證數(shù)據(jù)的準確性,直接使用文獻[19-20, 25]中的實驗數(shù)據(jù)與柔性剪枝方法進行對比。由于NS[12]最先提出使用BN層的縮放系數(shù)作為衡量通道重要性的度量,OT[19]、PR[20]是基于NS的最新改進工作,AOFP降低剪枝過程的運算成本,這些都與柔性剪枝有一定關(guān)聯(lián),因此后續(xù)實驗主要與這些工作進行比較。首先修剪VGG16模型使其減少與PR方法相當(dāng)?shù)母↑c運算量,實驗結(jié)果顯示在CIFAR10/100數(shù)據(jù)集上,柔性剪枝方法在浮點運算量較基線模型分別降低55%和45%時,準確率為94.04%和74.33%,分別比PR提高0.12%和0.08%,比OT提高0.17%和0.71%。其中在CIFAR10數(shù)據(jù)集上,柔性剪枝比AOFP多減少14%的浮點運算量,但準確度基本一致。
表1 在CIFAR10/100數(shù)據(jù)集上修剪VGG16的比較結(jié)果
大剪枝率下CIFAR10數(shù)據(jù)集上修剪VGG16的比較結(jié)果見表2。為公平地比較壓縮模型網(wǎng)絡(luò)架構(gòu)的性能,分別使用文獻[18]提出的兩種訓(xùn)練方法Scratch-E、Scratch-B對各網(wǎng)絡(luò)架構(gòu)進行從頭訓(xùn)練。其中,Scratch-E表示使用與預(yù)訓(xùn)練相同的160個訓(xùn)練輪次,Scratch-B則使用相同計算預(yù)算,如剪枝后的網(wǎng)絡(luò)比初始模式減少了一半的浮點運算量,則用兩倍的訓(xùn)練輪次。表2中依次展示通道剪枝率為74%、76%、80%和86%時柔性剪枝后壓縮模型的網(wǎng)絡(luò)架構(gòu)。與OT相比,當(dāng)剪枝率相同時,柔性剪枝方法(剪枝率74%)得到的架構(gòu)準確率更高,但浮點運算量更大。而當(dāng)浮點運算量相當(dāng)時,柔性剪枝方法(剪枝率76%)與OT[19]的結(jié)果準確率非常接近。從架構(gòu)上看,柔性剪枝方法(剪枝率76%)與OT在前6層的通道數(shù)非常接近,每層的通道數(shù)差別都在10以內(nèi),而在后面幾層,柔性剪枝方法則保留了更少的通道。RBP[30]是一種在貝葉斯框架下的層遞歸貝葉斯剪枝方法,與其相比,在相同的浮點運算量下,柔性剪枝方法(剪枝率80%)在兩種訓(xùn)練方法下的準確率比RBP分別提高了0.49%和0.53%。在相同的剪枝率下,柔性剪枝方法(剪枝率86%)雖然在Scratch-E訓(xùn)練下的準確率比RBP降低了0.51%,但在Scratch-B訓(xùn)練下的準確率提高了0.17%。其主要原因是柔性剪枝方法(剪枝率86%)得到的架構(gòu)浮點運算量太低,只有RBP架構(gòu)的一半。實驗結(jié)果表明,在大剪枝率下,柔性剪枝方法得到的網(wǎng)絡(luò)架構(gòu)性能超過了一些當(dāng)下最新的剪枝方法。
表2 大剪枝率下CIFAR10數(shù)據(jù)集上修剪VGG16的比較結(jié)果
在CIFAR10/100數(shù)據(jù)集上修剪ResNet56的比較結(jié)果見表3。為了保證數(shù)據(jù)的準確性,使用文獻[12,15,20-21,23,26]中的實驗數(shù)據(jù)與柔性剪枝方法對比,其中,NS[12]、PR[20]、BN-SFP[23]是基于BN層縮放系數(shù)的剪枝方法,SFP[21]、BN-SFP、ASFP[15]是軟剪枝方法,與柔性剪枝方法存在一定關(guān)聯(lián)。從表3中可以看出,在相同浮點運算量下,柔性剪枝方法在CIFAR10/100數(shù)據(jù)集上分別比NS[12]提高了0.58%和1.11%,而與PR的方法結(jié)果非常接近,僅提高了0.02%和0.08%。與軟剪枝方法對比中,柔性剪枝具有一定優(yōu)勢,在CIFAR10數(shù)據(jù)集上的準確率分別比SFP、BN-SFP、ASFP提高了0.25%、0.31%、0.48%。除此以外,柔性剪枝方法在浮點計算量減少48%時,準確率達到93.85%,優(yōu)于一些其他最新剪枝ABCPruner[26]、DCP[31]、DeepHoyer[32]、LPEC[33]。
表3 在CIFAR10/100數(shù)據(jù)集上修剪ResNet56的比較結(jié)果
為了進一步驗證柔性剪枝策略的高效性,本節(jié)設(shè)計實驗分析柔性剪枝方法所需的迭代次數(shù)以及每次迭代后再訓(xùn)練的輪次對剪枝效果的影響,如圖6所示。首先,如圖6(a)所示,固定總訓(xùn)練輪次為80輪,分別測試1次、2次、4次迭代,每次迭代后再訓(xùn)練輪次相同。結(jié)果顯示,迭代次數(shù)的增加不會對柔性剪枝的性能產(chǎn)生較大影響。其次,如圖6(b)所示,測試更多的總訓(xùn)練輪次是否導(dǎo)致更好的剪枝效果,實驗中分別測試80次、160次、240次總訓(xùn)練輪次。結(jié)果顯示,隨著總訓(xùn)練輪次的增加,剪枝性能沒有顯著提升。通過迭代訓(xùn)練的實驗可知,柔性剪枝方法的優(yōu)越性在于,與傳統(tǒng)的迭代剪枝方法不同,柔性剪枝的過程不需要重復(fù)“剪枝?再訓(xùn)練”的過程,僅需要消耗較少的運算成本,獲得高性能的壓縮模型架構(gòu)。
圖5 超參數(shù)對剪枝的影響
圖6 迭代訓(xùn)練對剪枝的影響
柔性剪枝方法不僅適用于網(wǎng)絡(luò)壓縮,同時還可以在浮點運算量相同的條件下,對原網(wǎng)絡(luò)重構(gòu),提高分類準確率。具體地,通過先將原網(wǎng)絡(luò)架構(gòu)等比例放大,再對其進行剪枝,從而獲得與原網(wǎng)絡(luò)浮點運算量相同的網(wǎng)絡(luò)架構(gòu),并使得其中一些層的通道數(shù)多于原網(wǎng)絡(luò)中該層的通道數(shù)。以此在不減少網(wǎng)絡(luò)計算的同時調(diào)整其各層的通道數(shù),獲得更高的準確率。在CIFAR10/100數(shù)據(jù)集上重構(gòu)VGG16、ResNet56的效果見表4,對VGG16和ResNet56進行重構(gòu)后,再重新訓(xùn)練得到的準確率提升。結(jié)果顯示,相比原始網(wǎng)絡(luò)架構(gòu),在同等的浮點運算量下,柔性剪枝方法重構(gòu)的VGG16準確率分別提升超過0.32%和0.37%,重構(gòu)的ResNet56準確率分別提升超過0.24%和0.23%。通過重構(gòu)實驗說明,人工預(yù)定義的網(wǎng)絡(luò)架構(gòu)對于特定的分類任務(wù)往往不是最優(yōu)的,通過剪枝的方法可以獲得同等浮點運算量下準確率更高的架構(gòu)。
表4 在CIFAR10/100數(shù)據(jù)集上重構(gòu)VGG16、ResNet56的效果
本文提出了一種柔性剪枝策略,一方面,結(jié)合神經(jīng)網(wǎng)絡(luò)模型中的權(quán)重分布情況,設(shè)計了通道貢獻量作為通道重要性評價指標,以層的視角宏觀地設(shè)計整層的剪枝方案;另一方面,創(chuàng)造性地提出了一種模擬剪枝方案,使用較少的計算消耗獲取高性能的網(wǎng)絡(luò)架構(gòu)。在公開數(shù)據(jù)集上的對比實驗表明,柔性剪枝后模型架構(gòu)的性能優(yōu)于其他最新的剪枝方法,是一種非常高效的剪枝方法。在后續(xù)的工作中,將進一步測試在跨層連接上的剪枝策略,以及將柔性剪枝策略應(yīng)用于其他最新的輕量級網(wǎng)絡(luò)。
[1] KRIZHEVSKY A, SUTSKEVER I, HINTON G E. ImageNet classification with deep convolutional neural networks[J]. Communications of the ACM, 2017, 60(6): 84-90.
[2] HE K M, ZHANG X Y, REN S Q, et al. Deep residual learning for image recognition[C]//Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Piscataway: IEEE Press, 2016: 770-778.
[3] 唐博恒, 柴鑫剛. 基于云邊協(xié)同的計算機視覺推理機制[J]. 電信科學(xué), 2021, 37(5): 72-81.
TANG B H, CHAI X G. Cloud-edge collaboration based computer vision inference mechanism[J]. Telecommunications Science, 2021, 37(5): 72-81.
[4] WANG Y, BIAN Z P, HOU J H, et al. Convolutional neural networks with dynamic regularization[EB]. 2019.
[5] COURBARIAUX M, BENGIO Y, DAVID J P. Binary Connect: training deep neural networks with binary weights during propagations[J]. CoRR, 2015.
[6] HAN S, POOL J, TRAN J, et al. Learning both weights and connections for efficient neural networks[J]. CoRR, 2015.
[7] WEN W J, YANG F, SU Y F, et al. Learning low-rank structured sparsity in recurrent neural networks[C]//Proceedings of 2020 IEEE International Symposium on Circuits and Systems (ISCAS). Piscataway: IEEE Press, 2020: 1-4.
[8] HE Y H, ZHANG X Y, SUN J. Channel pruning for accelerating very deep neural networks[C]//Proceedings of 2017 IEEE International Conference on Computer Vision (ICCV). Piscataway: IEEE Press, 2017: 1398-1406.
[9] LI H, KADAV A, DURDANOVIC I, et al. Pruning filters for efficient ConvNets[EB]. 2016.
[10] HU H Y, PENG R, TAI Y W, et al. Network trimming: a data-driven neuron pruning approach towards efficient deep architectures[EB]. 2016.
[11] LUO J H, WU J X, LIN W Y. ThiNet: a filter level pruning method for deep neural network compression[C]//Proceedings of 2017 IEEE International Conference on Computer Vision (ICCV). Piscataway: IEEE Press, 2017: 5068-5076.
[12] LIU Z, LI J G, SHEN Z Q, et al. Learning efficient convolutional networks through network slimming[C]//Proceedings of 2017 IEEE International Conference on Computer Vision (ICCV). Piscataway: IEEE Press, 2017: 2755-2763.
[13] YE J B, LU X, LIN Z, et al. Rethinking the smaller-norm-less-informative assumption in channel pruning of convolution layers[EB]. 2018.
[14] IOFFE S, SZEGEDY C. Batch normalization: accelerating deep network training by reducing internal covariate shift[J]. CoRR, 2015.
[15] HE Y, DONG X Y, KANG G L, et al. Asymptotic soft filter pruning for deep convolutional neural networks[J]. IEEE Transactions on Cybernetics, 2020, 50(8): 3594-3604.
[16] LIN M B, JI R R, ZHANG Y X, et al. Channel pruning via automatic structure search[C]//Proceedings of Proceedings of the Twenty-Ninth International Joint Conference on Artificial Intelligence. California: International Joint Conferences on Artificial Intelligence Organization, 2020.
[17] LECUN Y, DENKER J S, Solla S A. Optimal brain damage[C]// Proceedings of the Advances in Neural Information Processing Systems. Berlin: Springer, 1989: 598-605.
[18] LIU Z, SUN M J, ZHOU T H, et al. Rethinking the value of network pruning[EB]. 2018.
[19] YE Y, YOU G M, FWU J K, et al. Channel pruning via optimal thresholding[M]//Communications in Computer and Information Science. Cham: Springer International Publishing, 2020: 508-516.
[20] ZHUANG T, ZHANG Z X, HUANG Y H, et al. Neuron-level structured pruning using polarization regularizer[C]// Advances in Neural Information Processing Systems. 2020: 1-13.
[21] RONG J T, YU X Y, ZHANG M Y, et al. Soft Taylor pruning for accelerating deep convolutional neural networks[C]//Proceedings of IECON 2020 The 46th Annual Conference of the IEEE Industrial Electronics Society. Piscataway: IEEE Press, 2020: 5343-5349.
[22] CAI L H, AN Z L, YANG C G, et al. Softer pruning, incremental regularization[C]//Proceedings of 2020 25th International Conference on Pattern Recognition (ICPR). Piscataway: IEEE Press, 2021: 224-230.
[23] XU X Z, CHEN Q M, XIE L, et al. Batch-normalization-based soft filter pruning for deep convolutional neural networks[C]//Proceedings of 2020 16th International Conference on Control, Automation, Robotics and Vision (ICARCV). Piscataway: IEEE Press, 2020: 951-956.
[24] LIU Z C, MU H Y, ZHANG X Y, et al. MetaPruning: meta learning for automatic neural network channel pruning[C]// Proceedings of 2019 IEEE/CVF International Conference on Computer Vision (ICCV). Piscataway: IEEE Press, 2019: 3295-3304.
[25] DING Y X, ZHAO W G, WANG Z P, et al. Automaticlly learning featurs of android apps using CNN[C]//Proceedings of 2018 International Conference on Machine Learning and Cybernetics (ICMLC). Piscataway: IEEE Press, 2018: 331-336.
[26] LIN M B, JI R R, ZHANG Y X, et al. Channel pruning via automatic structure search[C]//Proceedings of Proceedings of the Twenty-Ninth International Joint Conference on Artificial Intelligence. California: International Joint Conferences on Artificial Intelligence Organization, 2020: 673-679.
[27] SIMONYAN K, ZISSERMAN A. Very deep convolutional networks for large-scale image recognition[J]. CoRR, 2014.
[28] KRIZHEVSKY A, HINTON G. Learning multiple layers of features from tiny images[J]. Handbook of Systemic Autoimmune Diseases. 2009,1(4).
[29] LUO J H, WU J X. Neural network pruning with residual-connections and limited-data[C]//Proceedings of 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). Piscataway: IEEE Press, 2020: 1455-1464.
[30] ZHOU Y F, ZHANG Y, WANG Y F, et al. Accelerate CNN via recursive Bayesian pruning[C]//Proceedings of 2019 IEEE/CVF International Conference on Computer Vision (ICCV). Piscataway: IEEE Press, 2019: 3305-3314.
[31] PENG H Y, WU J X, CHEN S F, et al. Collaborative channel pruning for deep networks[C]//Proceedings of the International Conference on Machine Learning. New York: ACM Press, 2019:5113-5122.
[32] YANG H R, WEN W, LI H. DeepHoyer: learning sparser neural network with differentiable scale-invariant sparsity measures[EB]. 2019.
[33] HE Y, DING Y H, LIU P, et al. Learning filter pruning criteria for deep convolutional neural networks acceleration[C]//Proceedings of 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). Piscataway: IEEE Press, 2020: 2006-2015.
A flexible pruning on deep convolutional neural networks
CHEN Liang1,2, QIAN Yaguan1,2, HE Zhiqiang1,2, GUAN Xiaohui3, WANG Bin4, WANG Xing4
1. School of Science/School of Big-data Science, Zhejiang University of Science and Technology, Hangzhou 310023, China 2. Hikvision-Zhejiang University of Science and Technology Edge Intelligence Security Lab, Hangzhou 310023, China 3. College of Information Engineering & Art Design, Zhejiang University of Water Resources and Electric Power, Hangzhou 310023, China 4. College of Electrical Engineering, Zhejiang University, Hangzhou 310063, China
Despite the successful application of deep convolutional neural networks, due to the redundancy of its structure, the large memory requirements and the high computing cost lead it hard to be well deployed to the edge devices with limited resources. Network pruning is an effective way to eliminate network redundancy. An efficient flexible pruning strategy was proposed in the purpose of the best architecture under the limited resources. The contribution of channels was calculated considering the distribution of channel scaling factors. Estimating the pruning result and simulating in advance increase efficiency. Experimental results based on VGG16 and ResNet56 on CIFAR-10 show that the flexible pruning reduces FLOPs by 71.3% and 54.3%, respectively, while accuracy by only 0.15 percentage points and 0.20 percentage points compared to the benchmark model.
convolutional neural network, network pruning, scaling factor, channel contribution
TP183
A
10.11959/j.issn.1000?0801.2022004
2021?08?04;
2021?12?13
國家重點研發(fā)計劃項目(No.2018YFB2100400);國家自然科學(xué)基金資助項目(No.61902082)
The National Key Research and Development Program of China (No.2018YFB2100400), The National Natural Science Foundation of China (No.61902082)
陳靚(1995?),男,浙江科技學(xué)院碩士生,主要研究方向為網(wǎng)絡(luò)剪枝。
錢亞冠(1976?),男,博士,浙江科技學(xué)院副教授,主要研究方向為深度學(xué)習(xí)、人工智能安全、大數(shù)據(jù)處理。
何志強(1996?),男,浙江科技學(xué)院碩士生,主要研究方向為網(wǎng)絡(luò)剪枝。
關(guān)曉惠(1977?),女,博士,浙江水利水電學(xué)院副教授,主要研究方向為數(shù)字圖像處理與模式識別。
王濱(1978?),男,博士,浙江大學(xué)研究員,主要研究方向為人工智能安全、物聯(lián)網(wǎng)安全、密碼學(xué)。
王星(1985?),男,博士,浙江大學(xué)在站博士后,主要研究方向為機器學(xué)習(xí)與物聯(lián)網(wǎng)安全。