国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

融合MobileNetV3特征的結構化剪枝方法

2023-09-26 11:59雷雪梅
上海交通大學學報 2023年9期
關鍵詞:剪枝正則濾波器

劉 宇, 雷雪梅

(內蒙古大學 電子信息工程學院, 呼和浩特 010021)

近年來,深度神經網絡(Deep Neural Network, DNN)已經成為解決各種計算機視覺任務的主要方法,例如圖像分類[1]、目標識別檢測[2-3]、語義分割[4-5]等.隨著大數據時代的到來,數據集規(guī)模不斷擴大,計算硬件圖形處理單元(Graphics Processing Unit, GPU)的飛速發(fā)展使得前所未有的大型DNN模型可以被開發(fā).深層的大型DNN模型雖然有較強的表達能力,但對計算和存儲資源提出很多要求,導致其難以應用到硬件系統和移動設備中.為解決這些問題,模型壓縮[6-7]得到快速發(fā)展.

目前主流的網絡壓縮方法有參數量化與共享[8]、低秩近似[9]、知識蒸餾[10]、設計輕量級的模型[11-16]和網絡剪枝[17-26]等,其中網絡剪枝是基于某種準則判斷網絡參數的重要性,刪除冗余參數.針對網絡剪枝, Yann等[17]和Hassibi等[18]最早提出用loss函數的Hessian矩陣來確定網絡中的冗余參數,然而Hessian矩陣的計算本身就消耗大量時間.Han等[19]提出根據神經元連接權值的范數大小刪除范數值小于閾值的連接.Chen等[20]提出HashedNets模型,該模型使用低成本的哈希函數實現參數剪枝.上述方法都是非結構性剪枝,修剪網絡中權重小的不重要連接,得到的網絡權值大多為0,因此可以利用稀疏格式存儲模型來減少存儲空間.然而這些方法只能通過專門的稀疏矩陣操作庫或硬件來實現加速,運行時內存節(jié)省也非常有限.Li等[21]提出計算濾波器的L1范數,剪掉范數較小的濾波器.Chen等[22]提出使用Eyeriss處理器計算每一層能耗,優(yōu)先刪除能耗較大的層.Liu等[23]提出將批量歸一化層(Batch Normalization, BN)的縮放系數γ作為判斷濾波器重要性的依據,刪除γ值小的濾波器.然而,這些方法只單獨使用網絡中的一部分參數,可能會導致對冗余參數的判定不夠準確.韋越等[24]提出對模型進行稀疏化訓練,然后將濾波器權重L1范數和BN層縮放系數γ的乘積作為判定依據.盧海偉等[25]提出將注意力機制和BN層的縮放系數γ相結合來判斷濾波器重要性.上述方式可以更加準確地判斷濾波器重要性.但相比于L1范數和注意力機制,Liu等[26]使用的稀疏性公式可以準確地表示卷積層中的提取到的參數信息.

為了適用于移動設備,出現了一些構造特殊結構的濾波器、網絡層或網絡具有存儲量小、計算量低和網絡性能好等特點的輕量級模型,如Mobile~Net[11-13]、Xception[14]、NestedNet[15]、MicroNet[16]等.其中,谷歌提出的MobileNetV1采用深度可分離卷積結構代替普通卷積操作,在參數量、計算量大幅度減少的同時,在ImageNet數據集上取得與視覺幾何組(Visual Geometry Group, VGG)神經網絡相當的準確率,得到學界的廣泛關注.為提高準確率,MobileNet逐步從MobileNetV1發(fā)展到Mobile~NetV3,但模型體積越來越大,所需計算資源也越來越多,對移動設備中的資源要求越來越高.相較于傳統DNN,輕量級網絡設計更巧妙、結構更緊湊、計算方式更復雜,但可壓縮的部分越來越少,給深度學習模型壓縮的研究帶來新的挑戰(zhàn).另一方面,不同輕量級模型具有不同網絡結構特點,如何準確選擇冗余結構,是對輕量級網絡模型進行壓縮的關鍵,是本文研究的主要目標之一.因此,為了進一步降低Mobile~NetV3對移動設備的硬件資源要求,使其可以部署到低功耗、低延時的應用場景中,基于Mobile~NetV3的網絡結構特點提出一種新的模型壓縮剪枝方法.

采用輕量級模型MobileNetV3-Large[13]與結構化剪枝相融合的方式,對網絡進行壓縮,提出一種新的剪枝準則.該方法令每個濾波器的稀疏值與BN層縮放系數相結合,從而對整體通道的重要性進行判別.首先,使用L1正則化對模型進行稀疏訓練,然后利用稀疏性公式[26]和BN層縮放系數[27]得到濾波器的重要性函數,利用重要性函數作為判定依據,刪除冗余濾波器.實驗證明:在相同剪枝率的情況下,對比4種剪枝方式,本文的方法在壓縮率相同的情況下具有更高準確率.

1 MobileNetV3

MobileNetV3[13]是谷歌在2019年提出的輕量級網絡架構,除了繼承MobileNetV1[11]和MobileNetV2[12]的特性之外,又擁有許多新特性.MobileNetV3使用的網絡架構是基于神經網絡架構搜索(Neural Architecture Search, NAS)實現的MnasNet,引入V1的深度可分離卷積、V2的具有線性瓶頸的倒殘差結構和壓縮激勵模塊(Squeeze and Excite,SE)結構的輕量級注意力模型,使用ReLU6函數和一種新的激活函數h-swish(x),如圖1所示.圖中:Dwise表示深度卷積,NL表示使用非線性激活函數,FC表示全連接運算,Pool表示下采樣,hard-α表示NL激活函數的“hard”形式.該結構首先采用1×1點卷積對輸入數據的維度進行擴充,然后進行逐深度卷積,再添加輕量級SE模塊提升模型對通道的敏感度,最后使用1×1點卷積對維度進行壓縮.其中V1的深度可分離卷積如圖2所示,V2具有線性瓶頸的倒殘差結構如圖3所示.圖中:C為濾波器層數(輸入);k為卷積核大小;N為濾波器數量.在MobileNetV3-Large中基本網絡單元占用大部分參數量計算量,具體如表1所示.MobileNetV3中使用ReLU6激活函數代替常規(guī)的線性修正單元(Linear rectification function, ReLU)函數,使激活函數輸出參數分布的更加均勻[28],適合使用稀疏性公式進行判別.

表1 MobileNetV3-Large主要資源占用Tab.1 Main resource occupation of MobileNetV3-Large

圖1 MobileNetV3基本網絡單元Fig.1 Basic network unit of MobileNetV3

圖2 深度可分離卷積示意圖Fig.2 Depthwise separable convolution

圖3 MobileNet-V2基本網絡單元Fig.3 Basic network unit of MobileNet-V2

2 結構化剪枝方法

根據MobileNetV3的結構特點,在不破壞原始網絡結構的情況下,減少卷積層濾波器可以大幅度減少網絡的計算量和參數量,提高網絡運算速度.因此,首先使用L1正則化對模型進行稀疏化訓練,再利用卷積層和BN層兩層的參數信息對網絡進行修剪,提出將縮放系數和稀疏值的乘積作為濾波器重要性的判斷標準,對網絡進行以濾波器為最小單位的結構化剪枝.

2.1 稀疏訓練

模型稀疏化是一種提升模型剪枝的有效方法,已有許多方法可使神經網絡變得稀疏,不僅可以得到稀疏的網絡參數,加快模型收斂速度,同時還可以保持網絡精度,得到更緊湊的網絡模型[29].稀疏化的方法有訓練中使用稀疏表示[30]、稀疏代價函數[31]、稀疏正則化[32]等.

由于易于實現且不會對網絡引入額外的開銷,所以選擇L1正則化對神經網絡進行稀疏訓練,懲罰一些不重要的參數,使得濾波器中的參數稀疏化.使用的損失函數如下:

L=LCE+λR(γ)

(1)

式中:LCE為交叉熵損失函數,對于特征縮放系數γ,R(γ)=|γ|;λ為一個超參數,λ越大懲罰的參數越多,BN層中的參數就會越接近0.

2.2 特征縮放系數

大多數卷積神經網絡都使用BN[27]結構,它是一種可以實現快速收斂和更好泛化能力的標準方式,一般置于卷積層的后一層,對卷積層的輸出進行歸一化處理.BN層有兩個可學習的參數γ和β,可以使特征值學習到每一層的特征分布.BN層輸入輸出關系如下:

(2)

式中:Zin和Zout分別為輸入、輸出;μc和σc分別為對應激活通道c的均值和方差;ε為一個添加到小批量方差中的常數,用于數值穩(wěn)定性;β為對應激活通道的偏移系數.縮放系數γ與通道的激活程度一一對應,間接反映對應濾波器的重要性,可以作為判定濾波器重要性的依據,而且不會給網絡帶來額外開銷.

2.3 稀疏性公式

基于Liu等[26]提出的稀疏性公式,根據下式計算濾波器稀疏值:

(3)

式中:n、c、w、h為組成卷積核4維張量的參數,n為濾波器數量(輸出),c為濾波器層數(輸入),w和h分別為濾波器寬度和長度;n,c,w,h為正整數且n∈[1,N],c∈[1,C],h∈[1,H],w∈[1,W];σ(x)為公式Sl(n)中的一個變量,用于計算Sl(n);kl,nchw為卷積核權重.Sl(n)表示第l層中第n個濾波器的稀疏性,如果一個濾波器有越多系數小于該層的平均值Ml,那么Sl(n)越接近0,表示該濾波器與該層的其他濾波器相比更冗余.Ml是一個閾值,式(3)中Ml表示第l層卷積核權重平均值,根據下式計算:

(4)

相比于每個濾波器的L1范數平均值,以所有濾波器權重范數和的平均值Ml作為Sl(n)的閾值,計算每個濾波器的稀疏值,更能體現每個濾波器在整個網絡中的重要性.前者通過一個濾波器中的參數判定濾波器重要性,后者通過整個網絡中所有濾波器的參數來判斷一個濾波器對整個網絡的影響,后者不僅更加準確,也更適合全局閾值修剪網絡的方法.

2.4 濾波器重要性判定依據

利用卷積層的參數Sl(n)和BN層參數γ兩部分結合,作為濾波器重要性的判定依據,得出重要性判定函數如下:

mi=γiSi

(5)

式中:mi為第i個濾波器的重要性評分;γi為第i個濾波器對應的BN層縮放系數;Si為利用式(3)計算出的第i個濾波器的稀疏值.

根據重要性判定依據mi對網絡進行修剪.圖4是本文使用的剪枝方法圖,具體步驟如算法1所示,其中d表示權重的維度,一般情況下為4.

圖4 結合Sl(n) 與縮放系數γ的結構化剪枝方法圖Fig.4 Structured pruning method combining Sl(n) and scaling factor γ

算法1本文使用的剪枝方法

1: 使用隨機權重W0∈Rd初始化一個網絡,初始化剪枝掩碼θ=1d.

2: 作用參數λ訓練W0共200次,得到權重W1.

3: 從W1中計算mi,按順序排列mi得到一個索引index.

4: 當mi

5: 如果W2中的濾波器權重等于0,則刪除濾波器.

6: 得到緊湊的權重參數W3,對應新的網絡結構.

7: 重新訓練W3共150次,得到最終結果W4.

在MobileNetV3特殊的網絡結構中,倒置的殘差模塊占用大部分運算量和內存,因此本文主要對MobileNetV3 的基本網絡單元結構進行修剪.由于深度可分離卷積中深度卷積的存在,要求這層卷積運算輸入和輸出的濾波器個數一致,但直接裁剪會導致輸入和輸出濾波器個數不一致,網絡無法運行,而且深度可分離卷積中主要的計算量和參數量都來自于1×1 點卷積,深度卷積只占用很少的資源,所以只需要裁剪網絡單元中的1×1卷積的濾波器,間接影射到深度卷積和后續(xù)的運算,就可以最大幅度減少網絡的參數量和計算量.具體對模型的裁剪如圖5所示,其中虛線部分表示裁剪的濾波器,首先裁剪1×1濾波器的個數,進而影響3×3濾波器維度和最后的1×1濾波器維度,灰色部分為裁剪濾波器后減少的對應特征圖.

圖5 在MobileNetV3上剪枝后的結構圖Fig.5 Structure of MobileNetV3 after pruning

3 實驗

3.1 實驗環(huán)境

為保證實驗的準確性和客觀性,使用經典數據集CIFAR-10和CIFAR-100作為實驗數據集.CIFAR-10是一個10分類數據集,每個類包含 6 000 張圖片,共有 60 000 張彩色圖片,其中 50 000 張作為訓練集,10 000 張作為測試集,圖片分辨率為32像素×32像素,在實驗過程中將圖片調整大小為224像素×224像素.CIFAR-100是CIFAR-10衍生出來的數據集,區(qū)別是CIFAR-100數據集包含100個分類,每個類包括600張圖片.使用NVDIA GeForce RTX 3060 6 G顯卡,采用Pytorch深度學習框架進行搭建、訓練和測試.實驗過程中使用Adam優(yōu)化器,初始學習率為0.001,正則化系數選擇 105對模型MobileNetV3-Large進行稀疏訓練,初始訓練迭代200次,微調 150次,微調時不進行稀疏訓練.

3.2 實驗結果與分析

3.2.1正則化系數的選擇 綜合考慮準確率和稀疏化效果,為了找出最恰當的正則化系數λ,對網絡進行稀疏化訓練時,同時設置多個λ,評估不同λ對模型準確率和稀疏化的影響.在實驗過程中發(fā)現L1正則化系數λ大小不同基本不影響Sl(n)的分布,但會導致BN層參數γ分布不同,如圖6所示.當λ=0時,BN層參數γ近似正態(tài)分布,當使用γ作為其中一個判定標準對模型進行剪枝時會刪除部分有用的參數信息,影響剪枝效果.而隨著λ增加,越來越多的參數γ聚集在0附近,對于模型剪枝而言,可以更加準確地判斷冗余濾波器.因此,在選擇BN層系數作為其中一個濾波器判定標準時,稀疏化訓練至關重要.

圖6 不同正則化系數下的γ值分布圖Fig.6 γ value distribution at different regularization coefficients

不同的正則化系數λ對網絡參數的約束程度不相同,網絡準確率也不相同.越大的正則化系數會懲罰越多的參數,使濾波器參數越稀疏.但是懲罰過多的參數對網絡的準確率也有很大的影響,參數越稀疏,網絡準確率也會越低.λ=0,10-3,10-4,10-5,10-6時,對應的準確率分別為88.28%、85.50%、87.22%、88.15%、88.15%.λ大于10-3時,網絡中參數過于稀疏,導致模型不收斂;λ小于10-3時,模型精度與稀疏程度會有一個折中.綜合準確率和稀疏程度兩種指標,選擇10-5作為正則化系數,在保持準確率不變的情況下,對濾波器參數進行約束.

3.2.2重要性評分 經過正則化訓練之后,確定了正則化系數λ后,通過確定對應的γ、Sl(n)可以得出相應的重要性評分m,分布規(guī)律如圖7所示,不同剪枝率下對應的m的值及γ和Sl(n)的范圍如表2所示.由圖7可知,γ、Sl(n)兩個參數相對獨立,m可以更準確地判別濾波器的冗余程度.

表2 不同剪枝率下對應的m值及γ和Sl(n)的范圍Tab.2 m,γ, and Sl(n) at different pruning rates

圖7 正則化訓練后的參數分布(λ=10-5)Fig.7 Parameter distribution after regularization trainning (λ=10-5)

3.2.3剪枝率 使用全局閾值對網絡進行一次性剪枝.為了尋找最合適的剪枝率,設置14個不同的剪枝率在CIFAR-10數據集上對MobileNetV3-Large進行測試.由于裁剪到70%時會刪除某個層的所有濾波器,導致網絡結構被破壞,所以將剪枝率設置在0%~60%.模型在剪枝45%時,重新訓練準確率最高達到88.82%,比沒有剪枝前稀疏訓練的模型高0.67%,比未剪枝未稀疏訓練的模型高0.54%,說明本文剪枝方法減少部分影響判斷結果的無用參數,減少神經元之間錯綜復雜的依賴關系,增強模型的泛化能力,提高模型的魯棒性.不同剪枝率下模型參數量和計算量對比如表3所示.

表3 不同剪枝率下參數量計算量Tab.3 Parameters and FLOPs at different pruning rates

3.2.4不同剪枝方法對比 為了進一步說明本文剪枝方法的有效性,在同一實驗環(huán)境,盡可能壓縮網絡且保存網絡精度的條件下將全局剪枝率設置為50%,在CIFAR-10上測試對比4種剪枝方式, 實驗結果如表4所示.在剪枝率相同的情況下,本文剪枝方式準確率略高于其他方式,同時在參數量和計算量上也有很大程度的壓縮.在剪枝率50%的情況下,參數量下降44.5%, 計算量下降40.0%, 準確率上升0.4%.

表4 幾種剪枝準則在CIFAR-10上的對比(裁剪50%)Tab.4 Comparison of several pruning criteria on CIFAR-10 (50% pruned)

實驗結果表明,在相同剪枝率的情況下本文的剪枝方法獲得較好的剪枝結果,與單獨使用BN層參數γ和單獨使用卷積層參數相比,本文將兩者結合的方法對冗余濾波器判別更加準確,獲得更高的準確率和參數壓縮率.

3.2.5剪枝前后模型結構可視化對比 圖8為MobileNetV3-Large網絡剪枝前后對圖像特征提取的熱力圖,由于使用CIFAR-10數據集訓練網絡,所以選擇數據集中的貓和狗兩個分類,在網絡上隨機選取兩張圖片.首先原始網絡抓取到很多的特征,當對網絡逐步裁剪10%時,網絡刪除了大部分特征,此時網絡準確率最低(見表3),這表明網絡刪除少量冗余信息,但微調過程中又擴大其他冗余信息.隨著冗余信息刪除越來越多,直到裁剪40%時,網絡微調后開始獲得越來越多特征信息,網絡精度也在上升,同時網絡結構也越來越小,表明此時網絡得到最優(yōu)的網絡結構和參數信息.當網絡再進行裁剪到50%時,網絡抓取的特征又會逐漸減小,網絡精度開始下降.

圖8 剪枝前后模型結果可視化對比Fig.8 Comparison of visualization of model result before and after pruning

從結果上來看,裁剪網絡結構會減少網絡中提取到的部分特征,但使用剩余特征進行網絡微調可以讓剩余特征學習到比原始網絡更多的特征,也即突出了剩余特征.這里的剩余特征也就是最開始網絡判定的重要特征.因此網絡準確率保持不變甚至優(yōu)于原始網絡,也表明本文剪枝方法可以準確地判斷冗余信息.

3.2.6剪枝后的模型 在不改變模型整體結構的情況下,保持準確率基本不變所能達到的最大剪枝率為50%,為了進一步說明剪枝后模塊中的濾波器變化情況,對比剪枝前[13]和剪枝后模型每層濾波器個數,如表5所示.由于主要對block模塊進行裁剪,所以主要影響模塊中通道數.bneck表示使用MobileNetV3的主要結構單元,激勵模塊表示在bneck中加入Squeeze-and-Excite模塊,HS和RE分別為激活函數H-swish和ReLU6,NBN表示卷積層后不加入BN層,—表示沒有這部分結構,√表示有結構,q表示網絡輸出分類數.

表5 剪枝前后模型通道數對比Tab.5 Comparison of model channels before and after pruning

3.2.7在CIFAR-100上進行測試 為了進一步證明本文剪枝方法的有效性,在標準數據集CIFAR-100上進行測試,將剪枝率設置為0%~60%,實驗結果如表6所示.

表6 不同剪枝率下參數量計算量(CIFAR-100)

4 結語

基于深度神經網絡壓縮理論,采用結構化剪枝對輕量級模型MobileNetV3-Large進行壓縮.在保證網絡精度略有上升的情況下,對模型中的濾波器進行修剪,達到壓縮網絡的效果.提出一種判斷濾波器重要性的方式,利用稀疏性公式和BN層縮放系數γ的乘積作為判斷濾波器重要性的準則.實驗證明:一方面,計算濾波器的稀疏性信息可以提取到具有判別性的信息;另一方面,特征縮放系數γ也衡量了濾波器重要性.綜合兩種判斷指標,證實本文的判定方式能夠更加準確地選取冗余濾波器,在模型準確率基本保持不變的情況下,實現模型最大程度上的壓縮,提高網絡的泛化能力.

猜你喜歡
剪枝正則濾波器
人到晚年宜“剪枝”
基于YOLOv4-Tiny模型剪枝算法
從濾波器理解卷積
剩余有限Minimax可解群的4階正則自同構
開關電源EMI濾波器的應用方法探討
類似于VNL環(huán)的環(huán)
剪枝
基于Canny振蕩抑制準則的改進匹配濾波器
基于TMS320C6678的SAR方位向預濾波器的并行實現
有限秩的可解群的正則自同構