劉 宇, 雷雪梅
(內(nèi)蒙古大學(xué) 電子信息工程學(xué)院, 呼和浩特 010021)
近年來,深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network, DNN)已經(jīng)成為解決各種計(jì)算機(jī)視覺任務(wù)的主要方法,例如圖像分類[1]、目標(biāo)識別檢測[2-3]、語義分割[4-5]等.隨著大數(shù)據(jù)時代的到來,數(shù)據(jù)集規(guī)模不斷擴(kuò)大,計(jì)算硬件圖形處理單元(Graphics Processing Unit, GPU)的飛速發(fā)展使得前所未有的大型DNN模型可以被開發(fā).深層的大型DNN模型雖然有較強(qiáng)的表達(dá)能力,但對計(jì)算和存儲資源提出很多要求,導(dǎo)致其難以應(yīng)用到硬件系統(tǒng)和移動設(shè)備中.為解決這些問題,模型壓縮[6-7]得到快速發(fā)展.
目前主流的網(wǎng)絡(luò)壓縮方法有參數(shù)量化與共享[8]、低秩近似[9]、知識蒸餾[10]、設(shè)計(jì)輕量級的模型[11-16]和網(wǎng)絡(luò)剪枝[17-26]等,其中網(wǎng)絡(luò)剪枝是基于某種準(zhǔn)則判斷網(wǎng)絡(luò)參數(shù)的重要性,刪除冗余參數(shù).針對網(wǎng)絡(luò)剪枝, Yann等[17]和Hassibi等[18]最早提出用loss函數(shù)的Hessian矩陣來確定網(wǎng)絡(luò)中的冗余參數(shù),然而Hessian矩陣的計(jì)算本身就消耗大量時間.Han等[19]提出根據(jù)神經(jīng)元連接權(quán)值的范數(shù)大小刪除范數(shù)值小于閾值的連接.Chen等[20]提出HashedNets模型,該模型使用低成本的哈希函數(shù)實(shí)現(xiàn)參數(shù)剪枝.上述方法都是非結(jié)構(gòu)性剪枝,修剪網(wǎng)絡(luò)中權(quán)重小的不重要連接,得到的網(wǎng)絡(luò)權(quán)值大多為0,因此可以利用稀疏格式存儲模型來減少存儲空間.然而這些方法只能通過專門的稀疏矩陣操作庫或硬件來實(shí)現(xiàn)加速,運(yùn)行時內(nèi)存節(jié)省也非常有限.Li等[21]提出計(jì)算濾波器的L1范數(shù),剪掉范數(shù)較小的濾波器.Chen等[22]提出使用Eyeriss處理器計(jì)算每一層能耗,優(yōu)先刪除能耗較大的層.Liu等[23]提出將批量歸一化層(Batch Normalization, BN)的縮放系數(shù)γ作為判斷濾波器重要性的依據(jù),刪除γ值小的濾波器.然而,這些方法只單獨(dú)使用網(wǎng)絡(luò)中的一部分參數(shù),可能會導(dǎo)致對冗余參數(shù)的判定不夠準(zhǔn)確.韋越等[24]提出對模型進(jìn)行稀疏化訓(xùn)練,然后將濾波器權(quán)重L1范數(shù)和BN層縮放系數(shù)γ的乘積作為判定依據(jù).盧海偉等[25]提出將注意力機(jī)制和BN層的縮放系數(shù)γ相結(jié)合來判斷濾波器重要性.上述方式可以更加準(zhǔn)確地判斷濾波器重要性.但相比于L1范數(shù)和注意力機(jī)制,Liu等[26]使用的稀疏性公式可以準(zhǔn)確地表示卷積層中的提取到的參數(shù)信息.
為了適用于移動設(shè)備,出現(xiàn)了一些構(gòu)造特殊結(jié)構(gòu)的濾波器、網(wǎng)絡(luò)層或網(wǎng)絡(luò)具有存儲量小、計(jì)算量低和網(wǎng)絡(luò)性能好等特點(diǎn)的輕量級模型,如Mobile~Net[11-13]、Xception[14]、NestedNet[15]、MicroNet[16]等.其中,谷歌提出的MobileNetV1采用深度可分離卷積結(jié)構(gòu)代替普通卷積操作,在參數(shù)量、計(jì)算量大幅度減少的同時,在ImageNet數(shù)據(jù)集上取得與視覺幾何組(Visual Geometry Group, VGG)神經(jīng)網(wǎng)絡(luò)相當(dāng)?shù)臏?zhǔn)確率,得到學(xué)界的廣泛關(guān)注.為提高準(zhǔn)確率,MobileNet逐步從MobileNetV1發(fā)展到Mobile~NetV3,但模型體積越來越大,所需計(jì)算資源也越來越多,對移動設(shè)備中的資源要求越來越高.相較于傳統(tǒng)DNN,輕量級網(wǎng)絡(luò)設(shè)計(jì)更巧妙、結(jié)構(gòu)更緊湊、計(jì)算方式更復(fù)雜,但可壓縮的部分越來越少,給深度學(xué)習(xí)模型壓縮的研究帶來新的挑戰(zhàn).另一方面,不同輕量級模型具有不同網(wǎng)絡(luò)結(jié)構(gòu)特點(diǎn),如何準(zhǔn)確選擇冗余結(jié)構(gòu),是對輕量級網(wǎng)絡(luò)模型進(jìn)行壓縮的關(guān)鍵,是本文研究的主要目標(biāo)之一.因此,為了進(jìn)一步降低Mobile~NetV3對移動設(shè)備的硬件資源要求,使其可以部署到低功耗、低延時的應(yīng)用場景中,基于Mobile~NetV3的網(wǎng)絡(luò)結(jié)構(gòu)特點(diǎn)提出一種新的模型壓縮剪枝方法.
采用輕量級模型MobileNetV3-Large[13]與結(jié)構(gòu)化剪枝相融合的方式,對網(wǎng)絡(luò)進(jìn)行壓縮,提出一種新的剪枝準(zhǔn)則.該方法令每個濾波器的稀疏值與BN層縮放系數(shù)相結(jié)合,從而對整體通道的重要性進(jìn)行判別.首先,使用L1正則化對模型進(jìn)行稀疏訓(xùn)練,然后利用稀疏性公式[26]和BN層縮放系數(shù)[27]得到濾波器的重要性函數(shù),利用重要性函數(shù)作為判定依據(jù),刪除冗余濾波器.實(shí)驗(yàn)證明:在相同剪枝率的情況下,對比4種剪枝方式,本文的方法在壓縮率相同的情況下具有更高準(zhǔn)確率.
MobileNetV3[13]是谷歌在2019年提出的輕量級網(wǎng)絡(luò)架構(gòu),除了繼承MobileNetV1[11]和MobileNetV2[12]的特性之外,又擁有許多新特性.MobileNetV3使用的網(wǎng)絡(luò)架構(gòu)是基于神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索(Neural Architecture Search, NAS)實(shí)現(xiàn)的MnasNet,引入V1的深度可分離卷積、V2的具有線性瓶頸的倒殘差結(jié)構(gòu)和壓縮激勵模塊(Squeeze and Excite,SE)結(jié)構(gòu)的輕量級注意力模型,使用ReLU6函數(shù)和一種新的激活函數(shù)h-swish(x),如圖1所示.圖中:Dwise表示深度卷積,NL表示使用非線性激活函數(shù),FC表示全連接運(yùn)算,Pool表示下采樣,hard-α表示NL激活函數(shù)的“hard”形式.該結(jié)構(gòu)首先采用1×1點(diǎn)卷積對輸入數(shù)據(jù)的維度進(jìn)行擴(kuò)充,然后進(jìn)行逐深度卷積,再添加輕量級SE模塊提升模型對通道的敏感度,最后使用1×1點(diǎn)卷積對維度進(jìn)行壓縮.其中V1的深度可分離卷積如圖2所示,V2具有線性瓶頸的倒殘差結(jié)構(gòu)如圖3所示.圖中:C為濾波器層數(shù)(輸入);k為卷積核大小;N為濾波器數(shù)量.在MobileNetV3-Large中基本網(wǎng)絡(luò)單元占用大部分參數(shù)量計(jì)算量,具體如表1所示.MobileNetV3中使用ReLU6激活函數(shù)代替常規(guī)的線性修正單元(Linear rectification function, ReLU)函數(shù),使激活函數(shù)輸出參數(shù)分布的更加均勻[28],適合使用稀疏性公式進(jìn)行判別.
表1 MobileNetV3-Large主要資源占用Tab.1 Main resource occupation of MobileNetV3-Large
圖1 MobileNetV3基本網(wǎng)絡(luò)單元Fig.1 Basic network unit of MobileNetV3
圖2 深度可分離卷積示意圖Fig.2 Depthwise separable convolution
圖3 MobileNet-V2基本網(wǎng)絡(luò)單元Fig.3 Basic network unit of MobileNet-V2
根據(jù)MobileNetV3的結(jié)構(gòu)特點(diǎn),在不破壞原始網(wǎng)絡(luò)結(jié)構(gòu)的情況下,減少卷積層濾波器可以大幅度減少網(wǎng)絡(luò)的計(jì)算量和參數(shù)量,提高網(wǎng)絡(luò)運(yùn)算速度.因此,首先使用L1正則化對模型進(jìn)行稀疏化訓(xùn)練,再利用卷積層和BN層兩層的參數(shù)信息對網(wǎng)絡(luò)進(jìn)行修剪,提出將縮放系數(shù)和稀疏值的乘積作為濾波器重要性的判斷標(biāo)準(zhǔn),對網(wǎng)絡(luò)進(jìn)行以濾波器為最小單位的結(jié)構(gòu)化剪枝.
模型稀疏化是一種提升模型剪枝的有效方法,已有許多方法可使神經(jīng)網(wǎng)絡(luò)變得稀疏,不僅可以得到稀疏的網(wǎng)絡(luò)參數(shù),加快模型收斂速度,同時還可以保持網(wǎng)絡(luò)精度,得到更緊湊的網(wǎng)絡(luò)模型[29].稀疏化的方法有訓(xùn)練中使用稀疏表示[30]、稀疏代價函數(shù)[31]、稀疏正則化[32]等.
由于易于實(shí)現(xiàn)且不會對網(wǎng)絡(luò)引入額外的開銷,所以選擇L1正則化對神經(jīng)網(wǎng)絡(luò)進(jìn)行稀疏訓(xùn)練,懲罰一些不重要的參數(shù),使得濾波器中的參數(shù)稀疏化.使用的損失函數(shù)如下:
L=LCE+λR(γ)
(1)
式中:LCE為交叉熵?fù)p失函數(shù),對于特征縮放系數(shù)γ,R(γ)=|γ|;λ為一個超參數(shù),λ越大懲罰的參數(shù)越多,BN層中的參數(shù)就會越接近0.
大多數(shù)卷積神經(jīng)網(wǎng)絡(luò)都使用BN[27]結(jié)構(gòu),它是一種可以實(shí)現(xiàn)快速收斂和更好泛化能力的標(biāo)準(zhǔn)方式,一般置于卷積層的后一層,對卷積層的輸出進(jìn)行歸一化處理.BN層有兩個可學(xué)習(xí)的參數(shù)γ和β,可以使特征值學(xué)習(xí)到每一層的特征分布.BN層輸入輸出關(guān)系如下:
(2)
式中:Zin和Zout分別為輸入、輸出;μc和σc分別為對應(yīng)激活通道c的均值和方差;ε為一個添加到小批量方差中的常數(shù),用于數(shù)值穩(wěn)定性;β為對應(yīng)激活通道的偏移系數(shù).縮放系數(shù)γ與通道的激活程度一一對應(yīng),間接反映對應(yīng)濾波器的重要性,可以作為判定濾波器重要性的依據(jù),而且不會給網(wǎng)絡(luò)帶來額外開銷.
基于Liu等[26]提出的稀疏性公式,根據(jù)下式計(jì)算濾波器稀疏值:
(3)
式中:n、c、w、h為組成卷積核4維張量的參數(shù),n為濾波器數(shù)量(輸出),c為濾波器層數(shù)(輸入),w和h分別為濾波器寬度和長度;n,c,w,h為正整數(shù)且n∈[1,N],c∈[1,C],h∈[1,H],w∈[1,W];σ(x)為公式Sl(n)中的一個變量,用于計(jì)算Sl(n);kl,nchw為卷積核權(quán)重.Sl(n)表示第l層中第n個濾波器的稀疏性,如果一個濾波器有越多系數(shù)小于該層的平均值Ml,那么Sl(n)越接近0,表示該濾波器與該層的其他濾波器相比更冗余.Ml是一個閾值,式(3)中Ml表示第l層卷積核權(quán)重平均值,根據(jù)下式計(jì)算:
(4)
相比于每個濾波器的L1范數(shù)平均值,以所有濾波器權(quán)重范數(shù)和的平均值Ml作為Sl(n)的閾值,計(jì)算每個濾波器的稀疏值,更能體現(xiàn)每個濾波器在整個網(wǎng)絡(luò)中的重要性.前者通過一個濾波器中的參數(shù)判定濾波器重要性,后者通過整個網(wǎng)絡(luò)中所有濾波器的參數(shù)來判斷一個濾波器對整個網(wǎng)絡(luò)的影響,后者不僅更加準(zhǔn)確,也更適合全局閾值修剪網(wǎng)絡(luò)的方法.
利用卷積層的參數(shù)Sl(n)和BN層參數(shù)γ兩部分結(jié)合,作為濾波器重要性的判定依據(jù),得出重要性判定函數(shù)如下:
mi=γiSi
(5)
式中:mi為第i個濾波器的重要性評分;γi為第i個濾波器對應(yīng)的BN層縮放系數(shù);Si為利用式(3)計(jì)算出的第i個濾波器的稀疏值.
根據(jù)重要性判定依據(jù)mi對網(wǎng)絡(luò)進(jìn)行修剪.圖4是本文使用的剪枝方法圖,具體步驟如算法1所示,其中d表示權(quán)重的維度,一般情況下為4.
圖4 結(jié)合Sl(n) 與縮放系數(shù)γ的結(jié)構(gòu)化剪枝方法圖Fig.4 Structured pruning method combining Sl(n) and scaling factor γ
算法1本文使用的剪枝方法
1: 使用隨機(jī)權(quán)重W0∈Rd初始化一個網(wǎng)絡(luò),初始化剪枝掩碼θ=1d.
2: 作用參數(shù)λ訓(xùn)練W0共200次,得到權(quán)重W1.
3: 從W1中計(jì)算mi,按順序排列mi得到一個索引index.
4: 當(dāng)mi 5: 如果W2中的濾波器權(quán)重等于0,則刪除濾波器. 6: 得到緊湊的權(quán)重參數(shù)W3,對應(yīng)新的網(wǎng)絡(luò)結(jié)構(gòu). 7: 重新訓(xùn)練W3共150次,得到最終結(jié)果W4. 在MobileNetV3特殊的網(wǎng)絡(luò)結(jié)構(gòu)中,倒置的殘差模塊占用大部分運(yùn)算量和內(nèi)存,因此本文主要對MobileNetV3 的基本網(wǎng)絡(luò)單元結(jié)構(gòu)進(jìn)行修剪.由于深度可分離卷積中深度卷積的存在,要求這層卷積運(yùn)算輸入和輸出的濾波器個數(shù)一致,但直接裁剪會導(dǎo)致輸入和輸出濾波器個數(shù)不一致,網(wǎng)絡(luò)無法運(yùn)行,而且深度可分離卷積中主要的計(jì)算量和參數(shù)量都來自于1×1 點(diǎn)卷積,深度卷積只占用很少的資源,所以只需要裁剪網(wǎng)絡(luò)單元中的1×1卷積的濾波器,間接影射到深度卷積和后續(xù)的運(yùn)算,就可以最大幅度減少網(wǎng)絡(luò)的參數(shù)量和計(jì)算量.具體對模型的裁剪如圖5所示,其中虛線部分表示裁剪的濾波器,首先裁剪1×1濾波器的個數(shù),進(jìn)而影響3×3濾波器維度和最后的1×1濾波器維度,灰色部分為裁剪濾波器后減少的對應(yīng)特征圖. 圖5 在MobileNetV3上剪枝后的結(jié)構(gòu)圖Fig.5 Structure of MobileNetV3 after pruning 為保證實(shí)驗(yàn)的準(zhǔn)確性和客觀性,使用經(jīng)典數(shù)據(jù)集CIFAR-10和CIFAR-100作為實(shí)驗(yàn)數(shù)據(jù)集.CIFAR-10是一個10分類數(shù)據(jù)集,每個類包含 6 000 張圖片,共有 60 000 張彩色圖片,其中 50 000 張作為訓(xùn)練集,10 000 張作為測試集,圖片分辨率為32像素×32像素,在實(shí)驗(yàn)過程中將圖片調(diào)整大小為224像素×224像素.CIFAR-100是CIFAR-10衍生出來的數(shù)據(jù)集,區(qū)別是CIFAR-100數(shù)據(jù)集包含100個分類,每個類包括600張圖片.使用NVDIA GeForce RTX 3060 6 G顯卡,采用Pytorch深度學(xué)習(xí)框架進(jìn)行搭建、訓(xùn)練和測試.實(shí)驗(yàn)過程中使用Adam優(yōu)化器,初始學(xué)習(xí)率為0.001,正則化系數(shù)選擇 105對模型MobileNetV3-Large進(jìn)行稀疏訓(xùn)練,初始訓(xùn)練迭代200次,微調(diào) 150次,微調(diào)時不進(jìn)行稀疏訓(xùn)練. 3.2.1正則化系數(shù)的選擇 綜合考慮準(zhǔn)確率和稀疏化效果,為了找出最恰當(dāng)?shù)恼齽t化系數(shù)λ,對網(wǎng)絡(luò)進(jìn)行稀疏化訓(xùn)練時,同時設(shè)置多個λ,評估不同λ對模型準(zhǔn)確率和稀疏化的影響.在實(shí)驗(yàn)過程中發(fā)現(xiàn)L1正則化系數(shù)λ大小不同基本不影響Sl(n)的分布,但會導(dǎo)致BN層參數(shù)γ分布不同,如圖6所示.當(dāng)λ=0時,BN層參數(shù)γ近似正態(tài)分布,當(dāng)使用γ作為其中一個判定標(biāo)準(zhǔn)對模型進(jìn)行剪枝時會刪除部分有用的參數(shù)信息,影響剪枝效果.而隨著λ增加,越來越多的參數(shù)γ聚集在0附近,對于模型剪枝而言,可以更加準(zhǔn)確地判斷冗余濾波器.因此,在選擇BN層系數(shù)作為其中一個濾波器判定標(biāo)準(zhǔn)時,稀疏化訓(xùn)練至關(guān)重要. 圖6 不同正則化系數(shù)下的γ值分布圖Fig.6 γ value distribution at different regularization coefficients 不同的正則化系數(shù)λ對網(wǎng)絡(luò)參數(shù)的約束程度不相同,網(wǎng)絡(luò)準(zhǔn)確率也不相同.越大的正則化系數(shù)會懲罰越多的參數(shù),使濾波器參數(shù)越稀疏.但是懲罰過多的參數(shù)對網(wǎng)絡(luò)的準(zhǔn)確率也有很大的影響,參數(shù)越稀疏,網(wǎng)絡(luò)準(zhǔn)確率也會越低.λ=0,10-3,10-4,10-5,10-6時,對應(yīng)的準(zhǔn)確率分別為88.28%、85.50%、87.22%、88.15%、88.15%.λ大于10-3時,網(wǎng)絡(luò)中參數(shù)過于稀疏,導(dǎo)致模型不收斂;λ小于10-3時,模型精度與稀疏程度會有一個折中.綜合準(zhǔn)確率和稀疏程度兩種指標(biāo),選擇10-5作為正則化系數(shù),在保持準(zhǔn)確率不變的情況下,對濾波器參數(shù)進(jìn)行約束. 3.2.2重要性評分 經(jīng)過正則化訓(xùn)練之后,確定了正則化系數(shù)λ后,通過確定對應(yīng)的γ、Sl(n)可以得出相應(yīng)的重要性評分m,分布規(guī)律如圖7所示,不同剪枝率下對應(yīng)的m的值及γ和Sl(n)的范圍如表2所示.由圖7可知,γ、Sl(n)兩個參數(shù)相對獨(dú)立,m可以更準(zhǔn)確地判別濾波器的冗余程度. 表2 不同剪枝率下對應(yīng)的m值及γ和Sl(n)的范圍Tab.2 m,γ, and Sl(n) at different pruning rates 圖7 正則化訓(xùn)練后的參數(shù)分布(λ=10-5)Fig.7 Parameter distribution after regularization trainning (λ=10-5) 3.2.3剪枝率 使用全局閾值對網(wǎng)絡(luò)進(jìn)行一次性剪枝.為了尋找最合適的剪枝率,設(shè)置14個不同的剪枝率在CIFAR-10數(shù)據(jù)集上對MobileNetV3-Large進(jìn)行測試.由于裁剪到70%時會刪除某個層的所有濾波器,導(dǎo)致網(wǎng)絡(luò)結(jié)構(gòu)被破壞,所以將剪枝率設(shè)置在0%~60%.模型在剪枝45%時,重新訓(xùn)練準(zhǔn)確率最高達(dá)到88.82%,比沒有剪枝前稀疏訓(xùn)練的模型高0.67%,比未剪枝未稀疏訓(xùn)練的模型高0.54%,說明本文剪枝方法減少部分影響判斷結(jié)果的無用參數(shù),減少神經(jīng)元之間錯綜復(fù)雜的依賴關(guān)系,增強(qiáng)模型的泛化能力,提高模型的魯棒性.不同剪枝率下模型參數(shù)量和計(jì)算量對比如表3所示. 表3 不同剪枝率下參數(shù)量計(jì)算量Tab.3 Parameters and FLOPs at different pruning rates 3.2.4不同剪枝方法對比 為了進(jìn)一步說明本文剪枝方法的有效性,在同一實(shí)驗(yàn)環(huán)境,盡可能壓縮網(wǎng)絡(luò)且保存網(wǎng)絡(luò)精度的條件下將全局剪枝率設(shè)置為50%,在CIFAR-10上測試對比4種剪枝方式, 實(shí)驗(yàn)結(jié)果如表4所示.在剪枝率相同的情況下,本文剪枝方式準(zhǔn)確率略高于其他方式,同時在參數(shù)量和計(jì)算量上也有很大程度的壓縮.在剪枝率50%的情況下,參數(shù)量下降44.5%, 計(jì)算量下降40.0%, 準(zhǔn)確率上升0.4%. 表4 幾種剪枝準(zhǔn)則在CIFAR-10上的對比(裁剪50%)Tab.4 Comparison of several pruning criteria on CIFAR-10 (50% pruned) 實(shí)驗(yàn)結(jié)果表明,在相同剪枝率的情況下本文的剪枝方法獲得較好的剪枝結(jié)果,與單獨(dú)使用BN層參數(shù)γ和單獨(dú)使用卷積層參數(shù)相比,本文將兩者結(jié)合的方法對冗余濾波器判別更加準(zhǔn)確,獲得更高的準(zhǔn)確率和參數(shù)壓縮率. 3.2.5剪枝前后模型結(jié)構(gòu)可視化對比 圖8為MobileNetV3-Large網(wǎng)絡(luò)剪枝前后對圖像特征提取的熱力圖,由于使用CIFAR-10數(shù)據(jù)集訓(xùn)練網(wǎng)絡(luò),所以選擇數(shù)據(jù)集中的貓和狗兩個分類,在網(wǎng)絡(luò)上隨機(jī)選取兩張圖片.首先原始網(wǎng)絡(luò)抓取到很多的特征,當(dāng)對網(wǎng)絡(luò)逐步裁剪10%時,網(wǎng)絡(luò)刪除了大部分特征,此時網(wǎng)絡(luò)準(zhǔn)確率最低(見表3),這表明網(wǎng)絡(luò)刪除少量冗余信息,但微調(diào)過程中又?jǐn)U大其他冗余信息.隨著冗余信息刪除越來越多,直到裁剪40%時,網(wǎng)絡(luò)微調(diào)后開始獲得越來越多特征信息,網(wǎng)絡(luò)精度也在上升,同時網(wǎng)絡(luò)結(jié)構(gòu)也越來越小,表明此時網(wǎng)絡(luò)得到最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)信息.當(dāng)網(wǎng)絡(luò)再進(jìn)行裁剪到50%時,網(wǎng)絡(luò)抓取的特征又會逐漸減小,網(wǎng)絡(luò)精度開始下降. 圖8 剪枝前后模型結(jié)果可視化對比Fig.8 Comparison of visualization of model result before and after pruning 從結(jié)果上來看,裁剪網(wǎng)絡(luò)結(jié)構(gòu)會減少網(wǎng)絡(luò)中提取到的部分特征,但使用剩余特征進(jìn)行網(wǎng)絡(luò)微調(diào)可以讓剩余特征學(xué)習(xí)到比原始網(wǎng)絡(luò)更多的特征,也即突出了剩余特征.這里的剩余特征也就是最開始網(wǎng)絡(luò)判定的重要特征.因此網(wǎng)絡(luò)準(zhǔn)確率保持不變甚至優(yōu)于原始網(wǎng)絡(luò),也表明本文剪枝方法可以準(zhǔn)確地判斷冗余信息. 3.2.6剪枝后的模型 在不改變模型整體結(jié)構(gòu)的情況下,保持準(zhǔn)確率基本不變所能達(dá)到的最大剪枝率為50%,為了進(jìn)一步說明剪枝后模塊中的濾波器變化情況,對比剪枝前[13]和剪枝后模型每層濾波器個數(shù),如表5所示.由于主要對block模塊進(jìn)行裁剪,所以主要影響模塊中通道數(shù).bneck表示使用MobileNetV3的主要結(jié)構(gòu)單元,激勵模塊表示在bneck中加入Squeeze-and-Excite模塊,HS和RE分別為激活函數(shù)H-swish和ReLU6,NBN表示卷積層后不加入BN層,—表示沒有這部分結(jié)構(gòu),√表示有結(jié)構(gòu),q表示網(wǎng)絡(luò)輸出分類數(shù). 表5 剪枝前后模型通道數(shù)對比Tab.5 Comparison of model channels before and after pruning 3.2.7在CIFAR-100上進(jìn)行測試 為了進(jìn)一步證明本文剪枝方法的有效性,在標(biāo)準(zhǔn)數(shù)據(jù)集CIFAR-100上進(jìn)行測試,將剪枝率設(shè)置為0%~60%,實(shí)驗(yàn)結(jié)果如表6所示. 表6 不同剪枝率下參數(shù)量計(jì)算量(CIFAR-100) 基于深度神經(jīng)網(wǎng)絡(luò)壓縮理論,采用結(jié)構(gòu)化剪枝對輕量級模型MobileNetV3-Large進(jìn)行壓縮.在保證網(wǎng)絡(luò)精度略有上升的情況下,對模型中的濾波器進(jìn)行修剪,達(dá)到壓縮網(wǎng)絡(luò)的效果.提出一種判斷濾波器重要性的方式,利用稀疏性公式和BN層縮放系數(shù)γ的乘積作為判斷濾波器重要性的準(zhǔn)則.實(shí)驗(yàn)證明:一方面,計(jì)算濾波器的稀疏性信息可以提取到具有判別性的信息;另一方面,特征縮放系數(shù)γ也衡量了濾波器重要性.綜合兩種判斷指標(biāo),證實(shí)本文的判定方式能夠更加準(zhǔn)確地選取冗余濾波器,在模型準(zhǔn)確率基本保持不變的情況下,實(shí)現(xiàn)模型最大程度上的壓縮,提高網(wǎng)絡(luò)的泛化能力.3 實(shí)驗(yàn)
3.1 實(shí)驗(yàn)環(huán)境
3.2 實(shí)驗(yàn)結(jié)果與分析
4 結(jié)語