譚俊波 趙鳴 李杰
摘要:為了進一步壓縮神經(jīng)網(wǎng)絡模型大小,使網(wǎng)絡能部署到移動設備上運行,該文提出了一種基于濾波器聚類與縮放系數(shù)的融合剪枝算法。該方法首先通過近鄰傳播聚類方法,找出相似濾波器,并刪除冗余部分,其次BN層縮放系數(shù)進一步對通道進行剪枝,最后,通過微調(diào)進行恢復精度訓練,達到在不損失網(wǎng)絡精度的前提下,減小網(wǎng)絡模型大小。在VGG16網(wǎng)絡上使用CIFAR-10數(shù)據(jù)集進行實驗,結(jié)果表明,在保持較高網(wǎng)絡精度的前提下,與原模型相比,該文提出的算法參數(shù)量減少了90.56%,計算量縮減為原來的74.58%,新模型的內(nèi)存占用和計算速度都優(yōu)于原模型,與同類算法比較,該算法在計算速度和模型大小等維度有明顯優(yōu)勢。
關(guān)鍵詞:BN層縮放系數(shù);聚類;模型壓縮;網(wǎng)絡剪枝;神經(jīng)網(wǎng)絡
中圖分類號:TP18? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)15-0085-03
1 概述
神經(jīng)網(wǎng)絡近年來迅速發(fā)展,從VGG[1]、GoogLeNet[2]、ResNet[3]和DenseNet[4],到新型網(wǎng)絡SqueezeNet[5]、MobileNet[6]和ShuffleNet[7],都取得了非常不錯的效果。伴隨著算法模型需要實現(xiàn)的功能越來越復雜,神經(jīng)網(wǎng)絡層數(shù)越來越多,參數(shù)量和計算量也隨之變大。然而,由于嵌入式設備硬件條件的限制,為了能將這種大型網(wǎng)絡模型成功部署在這類移動設備,模型壓縮算法因此得以發(fā)展。He等[8]提出新的濾波器剪枝,基于幾何中心標準而不是基于范數(shù),修剪冗余的卷積核,實現(xiàn)網(wǎng)絡的加速;ZHANG等人[9]提出了一種基于LASSO的濾波器選擇策略,識別有代表性的濾波器和一個最小二乘重建誤差,重建輸出;上述方法對神經(jīng)網(wǎng)絡模型精簡等相關(guān)維度在一定程度上都取得了進展,但是模型壓縮程度以及加速計算程度不夠,不一定適合部署到移動終端設備上?;诖?,本文提出了一種融合剪枝算法。本文剩余部分內(nèi)容安排如下:
第二章:詳細描述本文算法的步驟及細節(jié);第三章:陳述實驗結(jié)果并對結(jié)果進行分析解釋;第四章:對算法綜合性能進行總結(jié)及展望。
2? 融合剪枝算法
網(wǎng)絡剪枝的核心思想就是在保證模型性能的前提下,最大程度減少參數(shù)、壓縮網(wǎng)絡模型、實現(xiàn)模型加速。本文提出了基于濾波器聚類與縮放系數(shù)的融合剪枝算法,其流程示意圖如圖1所示。
2.1基于近鄰傳播聚類的濾波器剪枝
Affinity Propagation算法[10]是一個迭代過程,在這個過程中,每一個點有兩種屬性值(吸引度和歸屬度值)不斷地更新,最后,直到產(chǎn)生若干個高質(zhì)量的中心(類似于質(zhì)心),此時,將其余的數(shù)據(jù)分配到相應的聚類中。
如圖2所示,提出將每個濾波器作為一個高維數(shù)據(jù)點,將其重新格式化為向量形式,即:對于任意兩個濾波器,近鄰傳播將它們的相似圖作為輸入,反映了濾波器適合作為濾波器范例的程度。歐幾里得距離為:
[ski,j=-wki-wkj2s.t.? 1≦i,j≦ck, i≠j] (1)
當[i=j]時,表示濾波器對自身樣本的適應性(自相似性)??梢远x為:
[ski,i=medianwk]? ? ? ? ? ? ? ? ? ? ? ? ? (2)
median(·)返回輸入的中值。
更大的[sk(i,i)]導致更多的范例濾波器,然而,這將減少更少的復雜性。使用公式(2)中第k層整體權(quán)重的中值,可以得到中等數(shù)量的樣本。為求解,將公式(2)重新表述如下:
[ski,i=β*medianwki]? ? ? ? ? ? ? ? ?(3)
其中[β]是一個預先給定的超參數(shù)。公式(3)與公式(2)有兩個不同之處:首先,中值是在第i個濾波器上獲得的,而不是整個權(quán)值。因此,相似度可以更適應濾波器。其次,引入的β提供了一個可調(diào)的模型復雜度降低,較大的[β]降低很高的復雜性,反之亦然。
除了相似度以外,在濾波器之間傳遞的消息還有兩種,即吸引度和歸屬度,以決定哪些濾波器是范例,以及對于每個其他濾波器,它屬于哪個范例。
吸引度通過考慮濾波器[wki]的其他潛在范例,表明濾波器[wkj]是否適合作為濾波器[wki]的范例。[r(i,j)]的更新如下:
[ri,j←si,j-maxj's.t.? j'≠jai,j'+si,j's.t.? 1≦i,j≦ck, i≠j] ? (4)
其中[a(i,j)]是下面的歸屬度,并初始化為零。最初,[r(i,j)]被設置為[s(i,i)]減去濾波器和其他濾波器之間的最大相似點。之后,如果將一個濾波器分配給其他樣本,其歸屬度在下面的公式(6)中都小于零,這進一步降低了公式(4)中[s(i, j’)]的有效性,從而將從候選樣本中去除。
對于[i=j],“自我吸引度”給出如下定義:
[ri,i←si,i-maxi's.t.? i'≠isi,i']? ? ? ? ? ? ? (5)
它被設置為[s(i,i)]減去濾波器和其他濾波器之間的最大相似點。它反映了濾波器是一個范例的可能性。
至于歸屬度,首先給出它的更新規(guī)則: [ai,j←min0,ri,j+i's.t.? i'≠i,j'max0,ri,j's.t.? 1≦i,j≦ck, i≠j](6)
歸屬度[a(i,j)]被設置為[r(j,j)]加上濾波器的其他吸引度之和。max()排除了消極的吸引度,因為只需要關(guān)注好的濾波器(積極的吸引度)。[r(j,j)<0]表示濾波器更適合于屬于另一個范例而不是范例本身??梢钥闯?,如果其他一些濾波器對負有積極的吸引度,那么作為范例的濾波器的可用性就會增加。因此,歸屬度反映了選擇作為其范例的合適程度,因為它考慮了應該作為范例的其他濾波器的支持。最后,min函數(shù)限制了強大積極吸引度的影響,這樣總和不能超過零。
對于[i=j],“自我歸屬度”定義為:
[ai,i←i's.t.? i'≠i,imax0,ri,i']? ? ? ? ? ? ? ?(7)
這反映了基于其他濾波器的積極吸引度,濾波器[wki]是一個范例。
吸引度和歸屬度的更新是迭代的。為了避免數(shù)值振蕩,考慮每條消息在第t更新階段的加權(quán)和:
[rti,j=λ*rt-1i,j+1-λ*rti,j]? ? ? ? ? ? ? ?(8)
[αti,j=λ*αt-1i,j+1-λ*αti,j] (9)
其中[0≦λ≦1]為加權(quán)因子。
經(jīng)過固定的迭代次數(shù)后,濾波器作為它的范例,滿足:
[argmaxjri,j+αi,js.t.? 1≦j≦ck] (10)
當[i=j]時,濾波器選擇自身作為范例。所有選中的過濾器組成了示例。因此,樣本的數(shù)量是自適應的,沒有人為標識。
2.2基于BN層縮放因子的通道剪枝
由于BN層能加速網(wǎng)絡收斂,已經(jīng)在神經(jīng)網(wǎng)絡之中廣泛使用。在BN層中,兩個優(yōu)化參數(shù)(縮放系數(shù)和偏移系數(shù))能使網(wǎng)絡能夠?qū)W習到原網(wǎng)絡所要學習的特征分布。
[μB]是輸入的均值,[σ2β]是方差。在進行卷積操作時,每一個濾波器都會產(chǎn)生一個對應的特征圖,而在進行歸一化操作時,對于每個特征圖來說,有唯一對應的[γ]。因此,可以通過[γ]確定特征圖,再利用特征圖確定與其相對應的濾波器,由此判斷該濾波器的重要程度。
2.3融合剪枝
融合剪枝方法是結(jié)合濾波器AP聚類和BN層縮放因子通道剪枝兩種剪枝方法,去除掉冗余濾波器和通道,以此達到最精簡化的網(wǎng)絡模型結(jié)構(gòu)。本文通過上述融合剪枝方法對VGG16網(wǎng)絡進行剪枝,以盡可能達到最大比例壓縮的網(wǎng)絡模型。表2是融合剪枝算法具體過程:
3? 實驗
為了驗證模型剪枝算法的效果,本文實驗環(huán)節(jié)將基于Pytorch框架,在VGG模型上進行。本文使用的實驗設備基于Windows 10系統(tǒng),采用處理器 Intel(R) Core(TM) i5-10300H CPU @ 2.50GHz,顯卡NVIDIA GeForce GTX 1650,在虛擬環(huán)境PyCharm 2020.1.2 (Professional Edition),pytorch 1.8.0,torchversion 0.9.0,CUDA version 10.2.89下進行實驗。
首先,實驗針對包含10種常見物體的數(shù)據(jù)集CIFAR-10進行剪枝測試。選用文獻[11]和FPGM兩種網(wǎng)絡剪枝算法與本文提出算法對比,在準確率、參數(shù)量減少等各方面進行比較,驗證本文融合剪枝算法的優(yōu)劣。
經(jīng)過剪枝與微調(diào)后,幾種不同算法準確率變化如圖3所示,可以發(fā)現(xiàn),最后收斂值相差不大。所提出的剪枝方法準確率相比其他算法,準確率并未損失很多,這是符合實驗預期的。與其他算法相比,極大的壓縮參數(shù)量以及計算量,達到精簡和加速網(wǎng)絡模型的目的。
4 結(jié)論
為了保持模型精度得到一個更加精簡緊湊的網(wǎng)絡模型,本文提出了融合剪枝方法,首先采用濾波器聚類剪枝,去除冗余濾波器,然后根據(jù)基于BN層縮放系數(shù)剪枝去除不重要通道,兩種相結(jié)合以達到最大壓縮。實驗結(jié)果表明,與PF和FPGM相比,該算法在保持精度的前提下,使得計算量壓縮了3.9倍,參數(shù)量壓縮了10.6倍。下一步可以考慮對量化進行研究,進一步加速網(wǎng)絡模型計算速度。
參考文獻:
[1] Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition [EB/OL]. https://arxiv.org/abs/1409.CoRR, 2014,1409(15):1556-1563.
[2] Szegedy C,Liu W,Jia Y Q,et al.Going deeper with convolutions[C]//2015 IEEE Conference on Computer Vision and Pattern Recognition.June 7-12,2015,Boston,MA.IEEE,2015:1-9.
[3] He K M,Zhang X Y,Ren S Q,et al.Deep residual learning for image recognition[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition.June 27-30,2016,Las Vegas,NV,USA.IEEE,2016:770-778.
[4] Huang G,Liu Z,van der Maaten L,et al.Densely connected convolutional networks[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition.July 21-26,2017,Honolulu,HI,USA.IEEE,2017:2261-2269.
[5] Iandola F N, Han S, Moskewicz M W, et al. Squeeze Net: Alex Net-level accuracy with 50x fewer parameters and < 0.5 MB model size[J/OL].ArXiv Preprint .(2016-11-04).[2020-04-20]. https://arxiv.org/abs/1602.07360.
[6] Howard A G, Zhu M, Chen B, et al. Mobilenets: Efficient convolutional neural networks for mobile vision applications[J]. arXiv preprint arXiv:1704.04861, 2017.
[7] Zhang X Y,Zhou X Y,Lin M X,et al.ShuffleNet:an extremely efficient convolutional neural network for mobile devices[C]//2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition.June 18-23,2018,Salt Lake City,UT,USA.IEEE,2018:6848-6856.
[8] He Y,Liu P,Wang Z W,et al.Filter pruning via geometric Median for deep convolutional neural networks acceleration[C]//2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR).June 15-20,2019,Long Beach,CA,USA.IEEE,2019:4335-4344.
[9] He Y H,Zhang X Y,Sun J.Channel pruning for accelerating very deep neural networks[C]//2017 IEEE International Conference on Computer Vision.October 22-29,2017,Venice,Italy.IEEE,2017:1398-1406.
[10] Lin M,Ji R,Li S,et al.Network pruning using adaptive exemplar filters[J].IEEE Transactions on Neural Networks and Learning Systems,2021.
[11] Liu Z,Li J G,Shen Z Q,et al.Learning efficient convolutional networks through network slimming[C]//2017 IEEE International Conference on Computer Vision.October 22-29,2017,Venice,Italy.IEEE,2017:2755-2763.
【通聯(lián)編輯:唐一東】