邱飛岳,孔德偉,張志勇,章國道
1(浙江工業大學 教育科學與技術學院,杭州 310023) 2(浙江工業大學 計算機科學與技術學院,杭州 310023) 3(東華理工大學 信息工程學院,南昌 330013) E-mail:david_kong860@163.com
卷積神經網絡在當前最先進的圖像分類、目標檢測[1]、語義分割[2,3]、語音識別[4]等領域下都有非常出色的表現.早在1998年,Lecun[5]等設計最原始的卷積神經網絡結構LeNet-5對手寫數字進行識別.2012年Krizhevsky[6]等在ImageNet圖像分類競賽憑借60M參數量模型獲勝.2014年Deepface[7]使用9層卷積神經網絡構建120M參數模型進行人臉分類.2015年Gong[8]等人將ImageNet模型參數大小從200M壓縮至10M.2016年Mohammad[9]等人提出基于二元權值和XNOR網絡結構,使用二進制值作為濾波器輸入能節省近32倍內存消耗,在XNOR網絡中,使用二進制值作為濾波器和卷積層的輸入,卷積運算速度提高了近58倍,且內存消耗減少近32倍.2017年Zhou[10]等人通過引入權值劃分、分組量化、重訓練方式將預訓練卷積網絡每一層權值劃分為兩個不相交的組,通過迭代訓練將所有權值轉位低精度的權值,最終將預訓練的卷積網絡模型轉換為權值約束為0或2的低精度模型進而應用與嵌入式設備.2020年Li[11]等提出一種全卷積多并聯殘差神經網絡,將每一層的特征信息同時傳輸到池化層,取得較好分類效果.應用于圖像分類[12]、人臉識別[13]、超分辨率算法[14]等大型神經網絡結構識別每年都有突破,但是模型的大小對于嵌入式移動設備來說,是一種相當大的存儲占用以及計算資源消耗使得很多優秀的網絡框架難以應用于實際場景中.
本文針對以上研究問題,提出了一種基于改進適配并行通道藍圖分離卷積算法,本文算法主要有以下特點:
1)使用卷積神經網絡構建端到端訓練映射模型,無需特征工程.
2)采用殘差網絡結構,使用改進適配的BS層作為卷積操作,大幅減少模型參數以及模型復雜度.
3)借助SE模塊中通道權重自適應的思想,設計網絡結構B2SE,使用并行SE通道,修改SE通道中全連接卷積層,減少全連接層參數,降低模型訓練成本.
4)在嵌入式設備的輕量級網絡結構上表現出色,算法性能提升效果明顯.
本文提出基于改進適配并行通道藍圖分離卷積網絡層結構模型如圖1所示.

圖1 改進適配并行通道藍圖分離卷積層結構模型Fig.1 Model of blueprint separation convolution is embedded in parallel channels
一般來說,模型剪枝首先構建一個基本的神經網絡模型,然后依據一定標準對構建模型進行剪枝操作,最后對剪枝后的神經網絡模型進行參數微調從而恢復剪枝過程中損耗的性能.早在1993年,Hassibi等人[15]提出了一種OBS方法,使用誤差函數的二階導數對網絡剪枝,通過訓練數據和網絡結構信息計算逆Hessian矩陣,對于Thrun[16]提出的3個MONK基準,在反向傳播過程中分別允許90%、76%、62%的權重減少.對比Sejnowski等人[17],Hassibi等人提出的OBS方法對模型更好泛化前提下將NET talk網絡權重從18000減少至1560.Han等人[18]針對嵌入式系統的輕量化網絡結構,設計網絡自訓練連接層的重要性,通過修剪冗余連接,自我重新訓練,微調剩余網絡連接層的權重,將AlexNet[6]的網絡層參數降低90%,VGG-16[19]的網絡層參數降低92.5%,而不增加誤差率.Li等人[20]對于模型剪枝過程中,卷積層的權值剪枝由于減少了全連接網絡層的大量參數容易導致剪枝網絡出現不規則稀疏性的問題.提出一種加速卷積網絡訓練的方法,刪除對模型精度影響小的卷積操作,不同于刪除權重連接層導致的稀疏連接性問題,在VGG-16[19]上的計算成本減少34.2%,110的殘差網絡[21]上計算成本減少38.6%.通常來說修剪結構和權值賦予是構建最終模型的關鍵,然而現在多數的修剪方式不是從頭開始訓練一個模型,而是選擇去微調一個修剪模型[20],但是從一個修剪模型中繼承權值不一定是最優的,從而導致使得修剪后的模型陷入局部最優問題出現.
對于嵌入式設備的有限資源,通常卷積神經網絡涉及很多層以及數百萬個參數,從而導致很難在手機或者嵌入式設備中使用訓練完的模型.2015年Gong等人[8]提出一種通過向量化的方式壓縮CNN參數方式,且實驗結果向量化方法明顯優于矩陣分解方法.在嵌入式設備上,將ImageNet模型大小從200MB壓縮至10MB,驗證了Denil等人[22]提出的卷積參數實際有效率僅5%.2016年Han等人[23]設計一種具有“修剪、量化訓練、霍夫曼編碼”的深度壓縮方式,在不影響精度前提下,將模型存儲減小35-49倍.在ImageNet數據上,將AlexNet[6]網絡模型存儲減少35倍,從240MB減少至6.9MB,VGG-16[19]的模型減小49倍,從552MB減少至11.3MB.Tan等人[24]提出一種自動化可移動神經網絡結構搜索模型MNASNet,將模型延遲性納入主要目標中,以便搜索能夠識別在準確性和延遲性之間一個平衡的模型,在ImageNet分類中,MNASNet能在移動嵌入式設備上實現75.2%的top-1準確率,比MobileNetV2[25]高0.5%,速度快1.8倍,比NASNet[26]高1.2%,快2.3倍.嵌入式設備資源通常作為瓶頸限制,具體表現在DRAM中操作權重模型比在ALU中,資金的消耗貴兩個數量級以上,且電量的消耗也是一筆巨大的開支.所以設計一種體積小、速度快、準確率高的移動設備模型是非常有必要的.
Srivastava等人[27]早在2015年提出一種使用門禁單元的雙分支架構調整網絡信息流,從而緩解隨機梯度的深層網絡訓練.提出了一種基于決策森林的深度神經網絡,通過引入一種隨機可微決策樹模型,聯合全局優化的分裂葉節點參數,構建具有學習分裂功能的多分支樹狀結構.Szegedy等人[27]提出了一個基于Inception的深度卷積神經網絡架構GoogLeNet,通過設計基于Hebbian原則和多尺度直覺處理,擴大神經網絡寬度,提高對網絡內部計算資源的利用.Gastaldi等人[28]通過構建三分支正則化殘差網絡結構,使用隨機仿射組合替換平行分支的標準總和用來解決模型過擬合問題.Abdi等人[29]則提出一種多殘差塊的卷積神經網絡架構,使用模型并行化技術處理殘差塊,使得計算復雜度降低15%.一般來說,通過增加網絡深度來提高模型的能力是非常有效的一種方式,但是網絡深度的提高會導致梯度消失和梯度爆炸[30,31]等問題,2015年He等人提出的殘差網絡[32]結構通過跳躍式傳遞解決了數千層網絡的訓練難題,但是殘差網絡結構明顯的缺點是隨著深度增加,計算和內存開銷成線性增加,1001層的計算復雜度是164層的6倍.
基于深度卷積神經網絡的模型,可以通過卷積核學習到輸入圖像的不同特征,并且能夠促進特征的重復利用,大多數深度神經網絡依靠其縱向的網絡深度收斂模型,但是隨著深度遞增,模型容易出現退化現象[3,33],Zhang等人[34]提出的RL模型在深度網絡中有效降低網絡復雜度,加快網絡收斂,有效解決了網絡退化現象.受到以上問題的啟發,本文設計了一種并行通道的殘差結構,通過聚合并行通道的信息,增強特征圖全局感受野,有效獲取對梯度更新有重大貢獻的信息,使用適配藍圖可分離卷積降低計算和運行成本,并且在并行通道融合過程中引入注意力機制,獲取通道權重系數,強化模型對特征的自適應性.
傳統的基于殘差結構網絡一般是通過一個7 ×7卷積對輸入圖片降采樣提取特征,然后使用3×3池化下采樣降低特征維度,再經過殘差塊,最后通過7×7全局平均池化、全連接、softmax激活進行分類.針對相關工作所述問題,通過研究,本文提出基于嵌入并行通道藍圖可分離卷積的圖像分類算法(The parallel channel blueprint separates the convolutional network,簡稱B2SE),主要改進在殘差塊的設計上,在殘差塊的內部保留1×1卷積層,使用改進適配B2SE卷積塊取代原始3×3卷積層,B2SE與傳統殘差網絡框架對比如圖2所示.

圖2 并行通道藍圖分離卷積核心層框架結構Fig.2 Core layer framework structure of blueprint separates convolution in parallel channels
雙通道SE卷積塊對比單通道的SE,輸入特征圖適應不同卷積核,使得特征圖的全局感受野增強,多視野域卷積能使得特征圖合并和分離操作后全局感受野自適應調整,雙通道SE能對讀入特征圖各通道之間自適應其卷積核的權重,使得模型的準確率得到更有效的提升.特征圖S由不同卷積核操作后的特征圖A和B融合、自適應平均池化降采樣操作生成,特征圖S為1×1尺寸,H、W為輸入特征圖的高和寬,如公式(1)所示:
(1)
特征圖S經過FC全連接層、BN歸一化、ReLU激活操作后,得到特征圖Z,如公式(2)、公式(3)所示:
s=Fex(Z,W)=σ(g(Z,W))=σ(W2δ(W1Z))
(2)
Z=Ffc(s)=δ(B(Ws))
(3)

特征圖Z通過scale變換,對于每個通道的輸出特征,借助Channel soft attention機制應用于通道方向,得到對應通道的soft attention向量,然后將對應通道不同attention權重對應特征進行加權后得到特征圖V,其中Vc∈RH×W,如公式(4)、公式(5)所示.
(4)
(5)
深度分離卷積層depthwise,卷積核數量為輸入特征的通道,卷積核為單通道,每個卷積核與輸入特征的一個通道進行卷積操作,輸出特征的通道為卷積核的數量,如圖3所示.

圖3 深度卷積特征Fig.3 Depth convolution feature
點卷積層pointwise,卷積核為1×1,每個卷積核對應通道對輸入特征圖對應通道進行卷積操作,輸入特征在深度方向上進行加權操作得到輸出特征,如圖4所示.

圖4 點卷積特征Fig.4 Point convolution feature
藍圖可分離卷積層由兩層點卷積和一層深度卷積構成.使用1×1卷積核對原始輸入特征圖U先進行點卷積操作,獲取到原始特征在深度方向上的加權值,再將獲得的加權值U′,作為第2層1×1點卷積的輸入特征,經過兩層點卷積后,能有效提取對于不同通道在相通空間位置上的特征信息.
將輸出特征圖V′作為1×1深度卷積的輸入,深度卷積負責在深度方向上提取特征信息,輸出特征為每個卷積核在輸入特征對應通道上的卷積結果,M輸入特征通道,N為卷積核數量,Y、X為輸入特征大小,如圖5所示.

圖5 藍圖分離卷積層Fig.5 Blueprint separation convolution layer
原始圖特征X在卷積操作之前先經過BN層歸一化,BN層公式如下:
(6)
E[x]為均值,Var[x]為方差.
(7)

特征圖S經過改進藍圖可分離全連接層提取每個通道的權重系數,卷積神經網絡主要通過反向傳播算法訓練權重和偏置,其次提高不同類別標簽間的最小漢明距離[35],反向傳播過程中能根據loss能自動學習特征權重,相比一般全連接層,在提升有效特征通道權重大的同時能降低參數值以及計算量.
如表1所示,4列分別是基于ResNet-50[21]、BS-ResNet-50[36]、BS-SENet-50[37]、B2SE-RseNet-50網絡結構,經過最大3×3卷積的池化操作后,4種網絡結構在殘差層有所區別,殘差塊堆疊的數量在最左側,fc層括號內表示SE塊中兩個全連接層的輸出維數,本文的B2SE塊內使用參數M表示并行通道,r表示參數縮減率.

表1 50層殘差網絡結構對比Table 1 Structure comparison of 50-layer residual network
實驗數據集CIFAR-10/100由5萬訓練樣本和1萬測試樣本組成.另外為了評估本研究提出的模型在大規模圖像分類場景中的性能,本文同時在ImageNet 2012數據集上進行了實驗,它包含大約128萬張用于訓練的樣本和5萬張用于測試的樣本.
本文采用一個通用的訓練方案,CIFAR數據訓練使用300個epoch,batch size設置為128,初始學習率CIFAR-10為0.1,CIFAR-100為0.05,在epoch的50%和75%降低學習率,本文使用SGD優化網絡參數,優化器參數momentum設置為0.9,權重衰減系數為1e-4.
在ImageNet 2012數據集上我們訓練了100個epoch,batch size設置為256,初始學習率為0.1,每30個epoch降低一次學習率,同樣本文使用SGD優化網絡參數,優化器參數momentum設置為0.9,權重衰減系數為1e-4.
本文設置WarmUp預熱學習率為5個epoch,學習率更新分為兩個階段,模型預熱階段和正式訓練階段,使用預熱學習率能使得模型收斂速度變得更快.
模型訓練預熱階段,學習率更新公式如公式(8)所示:
(8)
模型正式訓練階段,學習率更新規則公式如公式(9)所示:
lr=0.1SUM(f(step))×base_lr
(9)
模型使用交叉熵作為損失函數,在每batch_size樣本被訓練后,初始化梯度為0,反向傳播求得梯度,更新模型參數.
實驗環境為Windows 10操作系統,深度學習框架Pytorch 1.6.0版本,該框架支持GPU加速,配置NVIDIA CUDA 10.1+cuDNN-V7.6深度學習庫加速GPU,python版本為3.6,用于訓練和測試的硬件配置為:NVIDIA RTX 2080Ti顯卡,128G內存.
為了評估改進嵌入B2SE塊在小規模數據集CIFAR10上收益,本研究訓練殘差網絡(ResNet-20/56/110)不同網絡層數表現.CIFAR數據集由32×32像素的彩色圖像組成,訓練集包含5萬張圖片,測試集包含1萬張圖片,CIFAR-10數據包含10個圖像類別.
AlexNet[6]和VGG[19]網絡框架經常被演示用于模型參數壓縮,但是對比殘差網絡結構以及在殘差網絡中結合Inception的ResNeXt,全連接層中的參數實測更少,所以如果能使殘差網絡結構的參數進一步壓縮,對于在嵌入式設備中使用的可行性將提高.本研究修改殘差結構的卷積層,在每一個Bottleneck中,將卷積核為3×3的層使用B2SE卷積操作,將隨后的批處理、歸一化的權重刪除.
為了獲得每個網絡的基線精度,本研究對Bottleneck修改后的模型重新開始訓練,訓練數據預處理增強和超參數設置保持和ResNet[32]一樣,而后使用恒定學習率0.001,增加40個epoch[20].
結果如表2所示,ResNet-20、ResNet-56、ResNet-110為原始模型,作為對比不含Pruned參數.可以看出嵌入B2SE塊的殘差網絡在模型復雜度以及模型體積上下降非常明顯,并且層數增加的情況下,提升的代價略有提高.

表2 CIFAR10改進殘差模型性能對比Table 2 Performance comparison of residual models for CIFAR10
本文分別在CIFAR-10、CIFAR-100、ImageNet數據集上對比嵌入B2SE塊收益效果.CIFAR-100數據集是CIFAR-10數據的擴充版本,在其基礎上增加圖片類別至100種,樣本數量保持不變.ImageNet 2012數據由128萬張訓練集圖片和5萬張驗證集圖片組成,圖像類別為1000種,本文基于以上數據集訓練網絡,并評估top-1 errors指標.通過在小規模數據集CIFAR-10/100上對比了VGG-19[19]、PreResNet-56[34]、DenseNet-BC-100[38,39],可以看出PreResNet-56模型復雜度修剪比收益最大,性能略有提升.在大規模數據集ImageNet上,本研究對比了VGG-16和ResNet50,相比小規模數據集CIFAR-10/100來說,性能收益相當,但是模型本身的復雜度和模型體積收益不如CIFAR數據集,總體來說,B2SE模型提升性能效果穩定,但是在小規模數據集上表現更佳.
通過進一步實驗,本文對比了嵌入 B2SE 塊在輕量級模型上表現如何,以及設計輕量級卷積模型收益對比實驗,實驗數據及模型評估如4.3節所示.

表3 CIFAR、ImageNet卷積模型性能對比Table 3 Performance comparison of convolution models for CIFAR and ImageNet
為了評估對比嵌入B2SE塊在多類別小規模數據集CIFAR以及單一類別遷移數據集上表現,本研究在實驗過程中參考借鑒了Kornblith 和Huang相同的訓練超參數設置[40,41].
Standford Dogs[42]、Standford Cars[43]是ImageNet大規模數據集上的子集,分別標記120、196個類別.Oxford Flowers花卉數據集[44]包括102種花,每個類別包括40到258張圖像,具體訓練樣本和測試樣本大小如表4所示.

表4 遷移學習數據集Table 4 Transfer learning datasets
在嵌入式設備中一般使用訓練好的輕量級卷積網絡模型,因此本研究對比輕量級卷積網絡上MobileNet的變體上進行實驗,結果如表6所示.

表5 輕量級卷積模型ShuffleNetV2變體Table 5 Lightweight ShuffleNetV2 model variant

表6 輕量級卷積模型MobileNet變體Table 6 Lightweight MobileNet model variant
在超參數設置上,本研究對輕量級卷積MobileNetV1[45]和MobileNetV2[25]的Width Multiplier參數分別設置0.5和1,卷積層的子空間壓縮比P設置為1/6,標準正交正則化損失加權系數為0.1.從圖中可以看出嵌入B2SE的MobileNet變體相比基線模型準確率有一定提升,分析發現,相比CIFAR數據集,單一數據集數據本身模型中正則化影響導致表現沒有CIFAR高.
ShuffleNetV2[46]也是最棒的輕量級模型之一,為了評估B2SE在ShuffleNetV2上的泛化能力,本研究同樣分別在Width Multiplier設置為0.5和1.0的時候,對比模型復雜度和參數量以及收益效果.
通過表5中不同尺度模型的探究,可以看出輕量級卷積模型ShuffleNetV2嵌入B2SE變體顯著提高了基準精度,然而模型性能和參數代價差距不大.本研究將B2SENet取代ShuffleNetV2中卷積操作,使得在低端嵌入式設備中應用改進后的模型可行性更高.
為了進一步理解本文提出的嵌入式B2SE模型對圖像區域注意力分配不同權重,本文使用CAM可視化模型[47]對圖像識別的預測,CAM主要用于能直觀感受CNN網絡特征信息關注區域.如圖6所示比較了殘差網絡的變體以及本文提出的模型在Grad-CAM下的可視化,圖像來自于ImageNet數據集,Grad-CAM可視化對類別差異區分較為明顯,但是缺乏像梯度可視化方法等那樣展示細粒度重要性,所以綜合對比Grad-CAM以及Guided Grad-CAM捕捉CNN中更深級別的視覺結構,如圖6、圖7所示,發現嵌入B2SE的模型更傾向于關注圖像與預測對象相關的輪廓和細節,而對比的相關模型在圖像輪廓和細節上略有欠缺,并且本文的方法更加關注對象細節區域.

圖6 Grad-CAM注意力輪廓聚焦對比Fig.6 Contrast of Grad-CAM attention focused on the outline

圖7 Guided Grad-CAM注意力輪廓聚焦對比Fig.7 Contrast of Guided Grad-CAM attention focused on the outline
本文基于ResNet-CNN的網絡架構,結合SE、DSCs、藍圖可分離卷積、Soft attention機制等模型提出了一種改進模型B2SE-CNN用于嵌入式設備卷積網絡圖像分類.本文的主要改進在于使用嵌入適配藍圖分離卷積應用于并行通道SE層,減少SE卷積通道全連接層參數,設計的并行通道SE層能夠獲取不同路徑信息,增強特征圖全局感受野,引入Soft attention機制獲取通道權重系數.這些改進使得模型在嵌入式設備中卷積層參數更少,在減少參數的同時為了不丟失精度引入并行通道和Soft attention機制,使得模型對重要特征信息學習加強,而弱化無關特征信息,從而加快模型收斂速度,同時使模型魯棒性更強.實驗結果表明本文提出的嵌入并行通道藍圖分離卷積模型對應用于嵌入式設備中輕量級網絡模型性能有較大收益,在未來的工作中,我們將繼續探索通過遷移學習將嵌入B2SE塊應用到行為識別等其他計算機視覺領域.