冀樹偉 楊喜旺 黃晉英 尹寧



摘 要:為了在不降低準確率的前提下,減小卷積神經網絡模型的體積與計算量,提出一種基于特征復用的卷積神經網絡壓縮模塊——特征復用單元(FR-unit)。首先,針對不同類型的卷積神經網絡結構,提出不同的優化方法;然后,在對輸入特征圖進行卷積操作后,將輸入特征與輸出特征進行結合;最后,將結合后的特征傳遞給下一層。通過對低層特征的重復使用,使總的提取的特征數量不發生改變,以保證優化后的網絡的準確率不會發生改變。在CIFAR10數據集上進行驗證,實驗結果表明,優化后的VGG模型體積縮小為優化前的75.4%,預測時間縮短為優化前的43.5%;優化后的Resnet模型體積縮小為優化前的53.1%,預測時間縮短為優化前的60.9%,且在測試集上的準確率均未降低。
關鍵詞:卷積神經網絡;特征復用;網絡加速;模型壓縮
中圖分類號:TP183
文獻標志碼:A
Abstract: In order to reduce the volume and computational complexity of the convolutional neural network model without reducing the accuracy, a compression method of convolutional neural network model based on feature reuse unit called FR-unit (Feature-Reuse unit) was proposed. Firstly, different optimization methods were proposed for different types of convolution neural network structures. Then, after convoluting the input feature map, the input feature was combined with output feature. Finally, the combined feature was transferred to the next layer. Through the reuse of low-level features, the total number of extracted features would not change, so as to ensure that the accuracy of optimized network would not change. The experimental results on CIFAR10 dataset show that, the volume of? Visual Geometry Group (VGG) model is reduced to 75.4% and the prediction time is reduced to 43.5% after optimization, the volume of Resnet model is reduced to 53.1% and the prediction time is reduced to 60.9% after optimization, without reducing the accuracy on the test set.
0 引言
在2012年,AlexNet[1]以Top-5錯誤率16.4%的顯著優勢奪得了大規模視覺識別挑戰賽(Large Scale Visual Recognition Challenge, LSVRC)的冠軍,比第二名錯誤率降低了12.2%的成績,使得卷積神經網絡(Convolution Neural Network, CNN)受到了廣泛的關注與研究。之后,各種卷積神經網絡模型被不斷提出,如牛津大學計算機視覺組(Visual Geometry Group, VGG)提出的VGGNet[2]、Google提出的Inception Net[3]以及微軟研究院提出的Resnet[4]等,都刷新了AlexNet的記錄。深度學習[5]的研究發展極其迅速,從最初的圖像分類[1-6],到之后的目標檢測[7-8]、目標跟蹤[9]等諸多方面都取得了非常矚目的成就[10]。
但是,這些模型由于較大的計算量,往往需要運行于GPU或高性能的CPU上。如擁有8層網絡層數的AlexNet有著60×106的參數量,運行一次需要1.5GFLOPS(每秒10億次的浮點運算數)的運算量,需要249MB的存儲空間。VGG16有著138×106的參數量,需要15.5GFLOPS的運算量,需要528.7MB的存儲空間。Resnet152有19.4×106的參數量,11.3GFLOPS的運算量,需要230.34MB的存儲空間。VGG模型[2]通過疊加小卷積核代替大卷積核,而Resnet[4]則通過1×1的卷積操作,對特征圖的通道數進行了降維。這些操作均有效地降低了模型的參數量和計算量[1-2,4]。
1 傳統的卷積神經網絡模型壓縮方法
傳統的卷積神經網絡大多是由卷積層、池化層、激活層、全連接層等結構反復堆疊而組成的。卷積層是卷積神經網絡的核心部分,具有局部連接、權重共享等特點,這些特點使得卷積層的參數數量比全連接層少,但是計算量較大。計算量大導致前向傳播慢,推斷耗時長;參數量大則需要占用大量的存儲空間。模型的壓縮大多針對卷積層與全連接層來進行優化,常用的模型壓縮大多從以下三個方面入手[11]。
第一種方法為網絡的裁剪。由于深度神經網絡中的參數是經過多次訓練得到的,往往存在著一定程度的冗余,所以通過某種方式裁剪掉冗余的參數可完成模型的壓縮。模型的裁剪,主要是針對已經訓練完畢的模型,定義一個模型參數重要性的判別依據,將不重要的網絡參數裁剪掉[12]。網絡剪枝[13-14]方法在卷積層與全連接層都比較適用,但是不同的方法側重點不一樣。常用的方法有:1)基于激活響應熵的裁剪標準[15],在驗證數據集上,統計卷積層每個通道的平均激活值分布,計算分布熵,將熵較小的通道所對應的濾波器裁剪掉;2)將模型參數使用泰勒公式進行展開[16],將模型損失的變化以參數的函數來表示,來實現對模型參數重要性的評估,并將不重要的參數裁剪掉。
第二種方法是重新設計網絡結構。模型的運行速度受以下三方面的影響:模型的參數量、網絡結構與網絡的深度,因此,通過修改網絡結構、調整模型參數量等,可以有效降低模型運行時間。例如模型網絡層的組合以及改變網絡的連接關系等。常用的有深度可分離卷積(depthwise separable convolution)等。
第三種方法為權重分解。通過將權重張量分解為兩個或者多個張量,來降低模型的計算量,如奇異值分解(Singular Value Decomposition, SVD)方法[17],將矩陣分解為向量之間的乘積,來達到降低模型計算量與參數量的目的。
2.1 傳統的卷積操作
傳統卷積操作如下:輸入一個單通道或多通道的特征圖后,通過卷積核的卷積操作,得到一個單通道或多通道的特征圖。該次卷積操作結束后,將得到的特征圖傳給下一個卷積層或池化層。
因此,假設輸入通道數為I,輸出通道數為O,卷積核用C表示,n是卷積核大小,輸入為x,m是輸出的特征圖大小,B為偏置矩陣。輸出的單個神經元y的計算為:
2.2 特征復用的卷積操作
傳統的卷積神經網絡的網絡結構是一個遞進的層級結構,它通過用底層的卷積核提取基礎特征,用高層的卷積核提取抽象的特征來達到特征學習的目的。當該網絡提取高階特征的時候,前面提取的比較基礎的特征就會被遺棄掉。而隨機深度網絡(Deep networks with stochastic depth)[18]與密集連通卷積網絡(Densely Connected Convolution Network, DCCN)[19]的出現,則展示了一種新的方法。該方法指出,網絡中的某一層可以不僅僅依賴于上一層的特征,也可以依賴于較淺層的基礎特征, 同時該方法也說明卷積神經網絡中的卷積層存在一定的冗余。
本文的思路就是利用特征復用的思想,將前一層特征重復使用,以減少每次卷積操作所需提取的特征數量。該方法可以在不改變網絡總體特征提取數量的同時,來達到降低計算量和縮小模型體積的目的。
如圖1所示為傳統的卷積操作結構,圖2為本文提出的特征復用的卷積操作結構。圖中CONV是卷積層;POOL是池化層;FC是全連接層;CAT是連接操作,在特征圖通道這一維度上對特征圖進行連接。圖2中方框內為本文提出的一個基本的特征復用結構單元(Feature-Reuse unit, FR-unit)。本文將串聯的多次卷積操作稱為卷積塊。FR-unit可進行反復疊加,對卷積塊進行優化。
2.3 使用FR-unit對網絡的傳統卷積層進行優化
對于卷積神經網絡中不同情況的卷積層,使用不同的優化方式。
1)針對卷積神經網絡最底層基礎特征的提取,不使用FR-unit進行優化。
2)針對網絡中的單次卷積,使用一個FR-unit進行優化。FR-unit中卷積的輸出通道數為(O-I)/2,其中,I、O為被優化的卷積層的輸入通道數與輸出通道數。如圖3所示,使用一個卷積操作輸出為64的FR-unit對原卷積層進行優化。
3)針對網絡中的卷積塊,疊加與其卷積層數量相等的FR-unit來進行優化。FR-unit中卷積的輸出通道數為(O-I)/n,其中,I、O為被優化的卷積塊的最初輸入通道數與最終輸出通道數,n為卷積塊中卷積層的數量。如圖4所示,使用兩個輸出為32通道的FR-unit對含有兩個卷積層的卷積塊進行優化。
4)針對網絡中的輸入和輸出通道數沒有發生改變的卷積塊。FR-unit中卷積的輸出通道數為(O-I)/n,如圖5所示,使用兩個輸出為256通道的FR-unit對含有兩個卷積層的卷積塊進行優化,然后使用1×1卷積對特征圖進行通道降維。
3 實驗結果與分析
3.1 本文實驗配置
本文的實驗環境為CPU:i5-4210M,GPU:GTX960M,操作系統:Ubuntu16.04,深度學習框架:Pytorch0.3.1。為了加速訓練,在訓練時使用GPU訓練。在測試時,在CPU上進行預測時間的統計。
3.2 方法可行性實驗
為了驗證本文所提出的FR-unit結構的有效性,在CIFAR10數據集上分別進行特征復用單元針對單次卷積結構、卷積塊與多個特征復用單元疊加等三方面的實驗。CIFAR10數據集包含60000張32×32的彩色圖片,共分為10個類別。每類含有訓練圖像5000張,測試圖像1000張。
3.2.1 FR-unit對單次卷積結構的優化實驗
本實驗使用一個標準的卷積神經網絡作為本次實驗的基礎網絡Basenet,然后使用FR-unit對Basenet中的卷積結構進行優化,形成本文的特征復用網絡 (Feature-Reuse net,以下簡稱FRnet)。由于本文主要是對卷積層進行改進,為了減少干擾,故將Basenet全連接層設為一層。雖然此設定會降低模型的準確率與收斂的平穩性,但是對網絡的對比并不會產生影響。
在CIFAR10數據集上,分別對Basenet和FRnet進行訓練,對比訓練完畢后模型在測試集上的預測準確率(acc),以及預測運行時間(time)。如表1所示,為本實驗中所使用的基礎網絡Basenet_A與特征復用網絡 FRnet_A的模型參數。
其中Conv代表卷積層,參數3、32、3×3、1分別表示輸入通道、輸出通道、卷積核大小以及邊界擴展。FRlayer代表本文的特征復用層,參數分別代表卷積操作的輸入通道數、輸出通道數、卷積核大小以及邊界擴展。每個FRlayer層都會將卷積操作的輸入與輸出在通道維度上進行連接,然后作為最后的輸出。
3.2.2 FR-unit對卷積塊結構的優化實驗
本實驗所使用網絡如表3所示,其中Basenet_B為一個標準的卷積神經網絡,FRnet_B為其對應的優化后的特征復用網絡。
3.2.3 不同數量FR-unit疊加的對比實驗
本次實驗通過針對不同輸出通道數的FR-unit結構進行比較,測試FR-unit輸出通道數與疊加次數對網絡運行速度和預測準確率的影響。實驗所用網絡如表6所示。以FRlayer2層為例,C1網絡為2個輸出為32的FR-unit疊加,C2網絡為4個輸出為16的FR-unit疊加,C3網絡為8個輸出為8的FR-unit疊加。
對實驗結果數據分析可以看出,即使使用多次較少輸出通道的FR-unit疊加結構,準確率也并沒有顯著的變化,但是模型的訓練時間與預測時間卻更長,模型的體積也更大,所以在使用FR-unit對模型進行優化時,還是建議使用等數量的FR-unit來優化等數量卷積層數的卷積塊。
3.3 對VGG和Resnet的優化實驗
3.3.1 使用FR-unit對VGG進行優化
本次實驗使用FR-unit對VGG16網絡進行了優化實驗。為適應CIFAR10數據集,對VGG16模型結構作了些許調整,去掉了原模型中的第五個池化層,并將第一個全連接層的輸入和輸出均改為了2048。VGG網絡參數與其對應的FR_VGG網絡參數如表8所示,表中:Conv表示普通卷積操作;FR-unit表示本文提出的特征復用卷積單元;{}內分別表示輸入通道、輸出通道、卷積核大小、卷積步長與邊界擴展。
3.3.2 使用FR-unit對Resnet進行優化
本次實驗使用FR-unit對Resnet18網絡進行了優化實驗。為適應CIFAR10數據集,對Resnet18結構作了些許調整。Resnet網絡參數與其對應的FR_Resnet網絡參數如表10所示。表中[]內表示一個Resnet的殘差單元,Conv表示普通卷積操作。FR-unit表示本文提出的特征復用卷積單元。1×1、3×3表示卷積核大小,64、128等表示輸出通道數。
4 結語
本文提出了一種針對卷積層的特征復用的優化結構,即:在不降低總特征提取數量的同時,通過對已提取特征的重復使用,降低卷積層的卷積操作數量,來達到對卷積神經網絡的加速和模型壓縮的目的。通過實驗得到如下結果:
結論1 本文所提出的FR-unit結構對卷積神經網絡卷積層有良好的壓縮作用。優化后VGG與Resnet模型的體積分別縮小為優化前的75.4%和53.1%;預測時間分別縮短為優化前的43.5%和60.9%。
結論2 在使用FR-unit對網絡進行優化時,若選用多次較小輸出的FR-unit進行疊加雖然可以使網絡模型更深,但是對于模型的性能并沒有明顯的提升,因此,還是建議選用等量的FR-unit對模型的卷積層進行優化。
結論3 使用FR-unit對網絡進行優化后,模型性能并沒有降低。主要原因是沒有改變模型整體的結構:第一,雖然對網絡中結構進行了替換,但是提取的特征總數沒有發生改變;第二,該方法并未降低網絡的深度。
結論4 優化后的模型具有良好的抗擬合性能。這是由于FR-unit在訓練時,會結合低層的特征進行學習,而不只依賴于最高階的一層。
參考文獻 (References)
[1] KRIZHEVSKY A, SUTSKEVER I, HINTON G. ImageNet classification with deep convolutional neural networks [C]// Proceedings of the 25th International Conference on Neural Information Processing Systems. Piscataway, NJ: IEEE, 2012: 1097-1105.
[2] SERCU T, PUHRSCH C, KINGSBURY B, et al. Very deep multilingual convolutional neural networks for LVCSR [C]// Proceedings of the 2016 IEEE International Conference on Acoustics, Speech and Signal Processing. Piscataway, NJ: IEEE, 2016: 4955-4959.
[3] SZEGEDY C, LIU W, JIA Y, et al. Going deeper with convolutions [C]// Proceedings of the 2015 IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2015: 1-9.
[4] HE K, ZHANG X, REN S, et al. Deep residual learning for image recognition [C]// Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2016: 770-778.
[5] LECUN Y, BENGIO Y, HINTON G. Deep learning [J]. Nature, 2015, 521(7553): 436-444.
[6] ZEILER M D, FERGUS R. Visualizing and understanding convolutional networks [C]// ECCV 2014: Proceedings of the 2014 European Conference on Computer Vision. Berlin: Springer, 2014: 818-833.
[7] HARIHARAN B, ARBELAEZ P, ARBELAEZ R, et al. Simultaneous detection and segmentation[C]// ECCV 2014: Proceedings of the 2014 European Conference on Computer Vision. Berlin: Springer, 2014: 297-312.
[8] GIRSHICK R. Fast R-CNN [C]// Proceedings of the 2015 IEEE International Conference on Computer Vision. Piscataway, NJ: IEEE, 2015: 1440-1448.
[9] WANG N, YEUNG D Y. Learning a deep compact image representation for visual tracking [C]// Proceedings of the 26th International Conference on Neural Information Processing Systems. Piscataway, NJ: IEEE, 2013: 809-817.
[10] 周飛燕,金林鵬,董軍.卷積神經網絡研究綜述[J].計算機學報,2017,40(6):1229-1251.(ZHOU F Y, JIN L P, DONG J. Review of convolutional neural network [J]. Chinese Journal of Computers, 2017, 40(6): 1229-1251.)
[11] 雷杰,高鑫,宋杰,等.深度網絡模型壓縮綜述[J].軟件學報,2018,29(2):251-266.(LEI J, GAO X, SONG J, et al. Survey of deep neural network model compression [J]. Journal of Software, 2018, 29(2): 251-266.)
[12] OBERMAN S F, FLYNN M J. Design issues in division and other floating-point operations [J]. IEEE Transactions on Computers, 1997, 46(2): 154-161.
[13] SETIONO R, LIU H. Neural-network feature selector [J]. IEEE Transactions on Neural Networks, 1997, 8(3): 654-662.
[14] 孔英會,朱成誠,車轔轔.復雜背景下基于MobileNets的花卉識別與模型剪枝[J].科學技術與工程,2018,18(19):84-88.(KONG Y H, ZHU C C, CHE L L. Flower recognition in complex background and model pruning based on MobileNets [J]. Science Technology and Engineering, 2018, 18(19): 84-88.)
[15] HU H, PENG R, TAI Y W, et al. Network trimming: a data-driven neuron pruning approach towards efficient deep architectures [J]. arXiv Preprint, 2016, 2016: arXiv.1607.03250.[2016-06-12]. https://arxiv.org/abs/1607.03250
[16] ROSENBLUETH E. Point estimates for probability moments [J]. Proceedings of the National Academy of Sciences of the United States of America, 1975, 72(10): 3812-3814.
[17] GOLUB G H, REINSCH C. Singular value decomposition and least squares solutions [J]. Numerische Mathematik, 1970, 14(5): 403-420.
[18] HUANG G, SUN Y, LIU Z, et al. Deep networks with stochastic depth [C]// Proceedings of the 2016 14th European Conference on Computer Vision. Berlin: Springer, 2016: 646-661.
[19] HUANG G, LIU Z, van der MAATEN L, et al. Densely connected convolutional networks [C]// Proceedings of the 2017 IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2017: 2261-2269.