韓曉良,陳佳昌,周偉松
(重慶郵電大學(xué) 復(fù)雜系統(tǒng)智能分析與決策重點(diǎn)實(shí)驗(yàn)室,重慶 400065)
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,人們進(jìn)入了大數(shù)據(jù)時(shí)代,其中圖像作為重要的信息載體,包含大量的信息,是當(dāng)今主流的信息傳播形式之一。如何從大規(guī)模圖像數(shù)據(jù)集當(dāng)中對(duì)圖像快速分類來提取視覺信息,是當(dāng)今分類、檢測(cè)領(lǐng)域不斷研究和突破的技術(shù)關(guān)鍵點(diǎn)。傳統(tǒng)的圖像分類算法[1]依賴于先驗(yàn)知識(shí)和對(duì)分類任務(wù)的認(rèn)知理解,會(huì)消耗大量勞動(dòng)成本,泛化能力差,不適應(yīng)急劇增長的數(shù)據(jù)集,無法滿足數(shù)據(jù)時(shí)代變革的需求。
近年來人工智能領(lǐng)域快速發(fā)展,使得借助計(jì)算機(jī)模擬人類思考方式以及神經(jīng)網(wǎng)絡(luò)的接收和反饋方式對(duì)圖像進(jìn)行處理、分析和理解成為可能。深度學(xué)習(xí)[2]是機(jī)器學(xué)習(xí)的延續(xù)并且使其準(zhǔn)確度和運(yùn)行速度達(dá)到工程落地的要求。隨著GPU在神經(jīng)網(wǎng)絡(luò)圖形運(yùn)算的優(yōu)勢(shì)得到應(yīng)用,深度學(xué)習(xí)進(jìn)入新的發(fā)展階段。其中卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network system,CNN)快速推進(jìn)了圖像分類的發(fā)展。2012年AlexNet[3]使用GPU并行化技術(shù)在ImageNet數(shù)據(jù)集使網(wǎng)絡(luò)層數(shù)達(dá)到了8層并在圖像分類領(lǐng)域取得了突破。而后發(fā)展出更深層次的VGGNet[4]、縱行加寬的GoogleNet[5]、利用殘差解決網(wǎng)絡(luò)退化的ResNet[6]等性能優(yōu)秀的網(wǎng)絡(luò)模型。更深的網(wǎng)絡(luò)意味著更多的計(jì)算量、更高的推理延遲。因此,這些網(wǎng)絡(luò)模型不能部署在計(jì)算能力和存儲(chǔ)設(shè)備有限的移動(dòng)設(shè)備和嵌入式設(shè)備。
為了使深度神經(jīng)網(wǎng)絡(luò)技術(shù)在工程中得到應(yīng)用,需要借助輕量型的網(wǎng)絡(luò)架構(gòu)來減少模型參數(shù)的數(shù)量。Google提出的MobileNet[7-9]系列是一種小巧而高效的CNN模型。MobileNetV1從標(biāo)準(zhǔn)卷積方面著手,將其分解為深度卷積和逐點(diǎn)卷積,有效降低了常用CNN模型的參數(shù)和計(jì)算復(fù)雜度。MobileNetV2[10-11]中提出倒殘差模塊替代傳統(tǒng)殘差模塊,實(shí)現(xiàn)了網(wǎng)絡(luò)性能的提升。
在前人工作的基礎(chǔ)上,設(shè)計(jì)一種結(jié)合無參3D注意力模塊[12-13]與MobileNet相結(jié)合的網(wǎng)絡(luò)結(jié)構(gòu)。其主要思想為①卷積層使用RReLU[14]激活函數(shù)保留更多圖像特征,通過特征融合層傳遞到下一層;②倒殘差模塊的設(shè)計(jì)會(huì)導(dǎo)致信息損失和梯度混淆[15-16],在倒殘差模塊的基礎(chǔ)上提出I-block模塊在更高維度上進(jìn)行恒等映射與空間變換,同時(shí)在第二個(gè)深度卷積部分加入inception結(jié)構(gòu)[17-19]來獲取多尺度特征,有效緩解信息損失與梯度混淆;③受人腦注意力機(jī)制啟發(fā),利用3D注意力機(jī)制結(jié)合能量函數(shù)計(jì)算注意力權(quán)值,由于空域抑制現(xiàn)象,能量函數(shù)越低,神經(jīng)元與周圍神經(jīng)元區(qū)別越大,重要性越高,能夠更好地提取特征信息,將其與I-block模塊相結(jié)合,以此代替MobileNet中的倒殘差模塊,在新的網(wǎng)絡(luò)當(dāng)中進(jìn)行有效性的驗(yàn)證。
MobileNet網(wǎng)絡(luò)作為輕量型網(wǎng)絡(luò)的代表在移動(dòng)設(shè)備中得到了應(yīng)用,MobileNet的核心在于將經(jīng)典的CNN結(jié)構(gòu)上的池化層和部分全連接層用深度可分離卷積層代替。卷積運(yùn)算是神經(jīng)網(wǎng)絡(luò)的主要計(jì)算量來源,因此,可從卷積層面著手進(jìn)行輕量型網(wǎng)絡(luò)的設(shè)計(jì)。將標(biāo)準(zhǔn)卷積的過程進(jìn)行進(jìn)一步簡(jiǎn)化,將其拆分為深度卷積和逐點(diǎn)卷積。深度卷積通過使用與輸入圖像相同深度的卷積核作用于通道,再通過逐點(diǎn)卷積進(jìn)行信息融合和輸出,過程如圖1所示。
圖1 深度可分離卷積Fig.1 Depthwise separable convolution
圖1中,M表示輸入通道數(shù)量,N表示輸出通道數(shù)量,深度可分離卷積與普通卷積參數(shù)對(duì)比如下
(1)
(1)式中:DK×DK表示卷積核的大小;DF×DF表示特征映射圖大小。在采用卷積核大小為3×3的深度可分離卷積時(shí),網(wǎng)絡(luò)各層中卷積核數(shù)量N為96~1 280,與所采用的卷積核大小為3×3占普通卷積部分相比影響微乎其微,可以忽略。網(wǎng)絡(luò)的深度可分離卷積運(yùn)算量只有原網(wǎng)絡(luò)模型的1/9,有效降低了網(wǎng)絡(luò)的參數(shù)量。通過深度可分離卷積替代傳統(tǒng)卷積,使得其可以進(jìn)行模型簡(jiǎn)化,加快移動(dòng)端設(shè)備部署。
激活函數(shù)是CNN中神經(jīng)元進(jìn)行非線性學(xué)習(xí)的關(guān)鍵點(diǎn),ReLU激活函數(shù)一定程度上克服了梯度消失問題和加快了訓(xùn)練速度,但依然存在著弊端,因?yàn)镽eLU激活函數(shù)將所有負(fù)值都設(shè)為0,隨著訓(xùn)練次數(shù)的增加,深度部分的卷積核所對(duì)應(yīng)的權(quán)重得不到更新,出現(xiàn)大量神經(jīng)元失活現(xiàn)象。深度卷積過程中有40%的神經(jīng)元出現(xiàn)失活,失活神經(jīng)元仍會(huì)占用空間對(duì)于輕量型網(wǎng)絡(luò)造成復(fù)雜度的增加。這也是輕量型神經(jīng)網(wǎng)絡(luò)相比傳統(tǒng)大型網(wǎng)絡(luò)精度較低的原因,因此,采用RReLU激活函數(shù)替代ReLU激活函數(shù)來解決無法及時(shí)更新負(fù)特征信息造成的神經(jīng)元失活,其函數(shù)表達(dá)式為
(2)
在訓(xùn)練過程中,a是從[1/8,1/3]中隨機(jī)抽取的數(shù)值。測(cè)試過程當(dāng)中,選取訓(xùn)練過程中a的平均值。RReLU激活函數(shù)可以保留提取到的負(fù)值特征信息,一定程度上減少神經(jīng)元失活,從而增強(qiáng)卷積過程中特征提取能力。
注意力機(jī)制本質(zhì)是對(duì)現(xiàn)有資源的一種分配機(jī)制,在深度學(xué)習(xí)網(wǎng)絡(luò)當(dāng)中,所分配的資源就是權(quán)重。注意力機(jī)制最早在自然語言當(dāng)中得到應(yīng)用,然后拓展到圖像分類領(lǐng)域,由SENet[20-21]提出,將注意力模塊加入到CNN支路當(dāng)中,通過加強(qiáng)各通道之間信息的交換,在增加了小部分參數(shù)后,使得網(wǎng)絡(luò)性能得到提升。對(duì)于提取到的特征信息,經(jīng)過注意力機(jī)制的計(jì)算,突出其重要的特征,從而更好地將數(shù)據(jù)進(jìn)行有效區(qū)分。
SE作為CNN中使用最廣泛的注意力機(jī)制,可以方便地嵌入VGG或者ResNet網(wǎng)絡(luò)當(dāng)中,分配特定的通道權(quán)重使性能得到提升。但是計(jì)算權(quán)重需要增加參數(shù)計(jì)算和運(yùn)行時(shí)間。增加了模型復(fù)雜度,不利于移動(dòng)端設(shè)備的使用。因此,尋找更為合適的無參注意力機(jī)制與CNN網(wǎng)絡(luò)結(jié)合,對(duì)于解決輕量型模型精確度不高的問題尤為重要。
MobileNet作為輕量型網(wǎng)絡(luò)的代表得到了廣泛應(yīng)用,但與此同時(shí),也存在著提取特征能力不足的缺點(diǎn)。MobileNetV2網(wǎng)絡(luò)的倒殘差模塊采用先升維后降維的結(jié)構(gòu)會(huì)削弱梯度跨層傳播的能力,通道數(shù)先升后降低使高維度特征信息壓縮,會(huì)造成信息丟失,基于其不足,于是提出I-block模塊減少模塊提取特征時(shí)候的損失,在深度卷積部分加入3D注意力模塊,在不增加參數(shù)運(yùn)算的情況下,增強(qiáng)對(duì)通道和位置注意力的關(guān)注。加入inception結(jié)構(gòu),提高多尺度特征提取。同時(shí)針對(duì)負(fù)值特征信息,采取RReLU激活函數(shù)替代ReLU激活函數(shù),將其作用于I-block模塊進(jìn)行取反層特征融合。經(jīng)過批量歸一化、交叉熵?fù)p失函數(shù)和全局平均池化層達(dá)到分類要求。
將網(wǎng)絡(luò)各層的參數(shù)設(shè)置與MobileNetV2網(wǎng)絡(luò)保持一致,并根據(jù)CIFAR數(shù)據(jù)集中照片的尺寸對(duì)步距進(jìn)行調(diào)整。改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)流程圖如圖2所示。其中網(wǎng)絡(luò)參數(shù)設(shè)置如表1所示。其中,t是升降部分的倍數(shù)因子;c是特征矩陣深度;n是重復(fù)次數(shù);s是步距,當(dāng)且僅當(dāng)stride=1時(shí),使用殘差結(jié)構(gòu)。
表1 網(wǎng)絡(luò)參數(shù)設(shè)置Tab.1 Network parameter settings
圖2 網(wǎng)絡(luò)結(jié)構(gòu)流程圖Fig.2 Network structure flowchart
網(wǎng)絡(luò)不斷縱向加深不適應(yīng)于MobileNet這類輕量型網(wǎng)絡(luò),會(huì)增加網(wǎng)絡(luò)參數(shù)和運(yùn)算時(shí)間。因此,將GoogleNet所提出的inception結(jié)構(gòu)應(yīng)用到深度可分離卷積當(dāng)中來,通過3×3和5×5兩個(gè)深度卷積并行的inception結(jié)構(gòu)來橫向加寬該層網(wǎng)絡(luò)使得其感受野得以擴(kuò)大,可以提取更多尺寸的特征信息。
深度卷積所包含的局部特征信息大于潛在的局部特征信息。因此,對(duì)深度卷積層按照如下規(guī)則進(jìn)行處理并進(jìn)行特征信息融合。
對(duì)輸入圖像進(jìn)行深度卷積處理。
(3)
同時(shí)對(duì)輸入圖像進(jìn)行深度卷積取反處理。
(4)
將提取到的特征信息按照如下規(guī)則進(jìn)行特征融合。
(5)
在卷積神經(jīng)網(wǎng)絡(luò)當(dāng)中,殘差網(wǎng)絡(luò)的設(shè)計(jì)有利于緩解梯度混淆問題并且提高模型性能。在MobileNetV2中設(shè)計(jì)的倒殘差模塊采用先升維后降維的設(shè)計(jì)如圖3所示,會(huì)影響梯度回傳。I-block模塊會(huì)保持更多的信息從bottom層傳遞到top層,有助于梯度回傳。同時(shí)在第二次深度可分離卷積的時(shí)候采取inception結(jié)構(gòu)來獲取多尺度信息。該模塊可以在執(zhí)行過程中獲取更多的空間信息結(jié)構(gòu)如圖4所示。經(jīng)過I-block模塊在更高維度進(jìn)行空間變換,相比于倒殘差模塊可以減少信息損失,保留更多特征信息提高網(wǎng)絡(luò)性能。
圖3 倒殘差模塊Fig.3 Inverted residual module
圖4 I-block模塊Fig.4 I-block module
SE和CBAM注意力機(jī)制都提高了網(wǎng)絡(luò)準(zhǔn)確率,但是都增加了網(wǎng)絡(luò)參數(shù)量,對(duì)于MobileNet等輕量型網(wǎng)絡(luò)的設(shè)計(jì)不匹配。受人腦2種注意力協(xié)同工作機(jī)制啟發(fā),與現(xiàn)有通道注意力和空間注意力相比,3D注意力為特定層中的特征映射推斷三維注意權(quán)值。在視覺神經(jīng)科學(xué)當(dāng)中,信息最豐富的神經(jīng)元會(huì)顯示出獨(dú)特放電形式,激活的神經(jīng)元對(duì)周圍神經(jīng)元具有空域抑制,利用能量函數(shù),找到每個(gè)神經(jīng)元的重要性,推導(dǎo)出能量函數(shù)的快速閉環(huán)形式的解,來度量神經(jīng)元之間的線性可分性。
3D注意力機(jī)制所采用的能量函數(shù)為
(6)
(6)式中:bt表示偏置;M表示通道數(shù);t表示神經(jīng)元。
對(duì)能量函數(shù)采用二值標(biāo)簽并增加正則項(xiàng),求得最小能量函數(shù)為
(7)
通過對(duì)該能量函數(shù)的快速閉環(huán)形式的解來獲取神經(jīng)元的重要性,屬于無參注意力機(jī)制,使得改進(jìn)后的網(wǎng)絡(luò)在不增加網(wǎng)絡(luò)參數(shù)的情況下準(zhǔn)確率得到提升。
設(shè)置網(wǎng)絡(luò)結(jié)構(gòu)的初始學(xué)習(xí)率為0.05,采用學(xué)習(xí)率衰減方法訓(xùn)練,當(dāng)訓(xùn)練到60個(gè)epoch時(shí),降為初始學(xué)習(xí)率的1/10,90個(gè)epoch降為1/100,算法步驟如下。
Step1對(duì)訓(xùn)練集和驗(yàn)證集進(jìn)行劃分,對(duì)數(shù)據(jù)集進(jìn)行數(shù)據(jù)擴(kuò)充,轉(zhuǎn)換為與網(wǎng)絡(luò)相匹配的數(shù)組。
Step2初始化網(wǎng)絡(luò)權(quán)重,超參數(shù)寬度系數(shù)設(shè)置為1。
Step3對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練利用AverageMeter函數(shù)輸出Time、Loss、Acc參數(shù)。
Step4利用SGD更新網(wǎng)絡(luò)的權(quán)重和偏置。
Step5判斷每個(gè)epoch下的精度Acc,保留最好結(jié)果,訓(xùn)練結(jié)束時(shí)將參數(shù)寫入文件。
本實(shí)驗(yàn)采用CIFAR-10和CIFAR-100 數(shù)據(jù)集。CIFAR-10數(shù)據(jù)集中的10類圖片相互排斥,且沒有重疊。CIFAR-100是100分類下的復(fù)雜數(shù)據(jù)集。數(shù)據(jù)集都采用5/6作為訓(xùn)練集,1/6作為驗(yàn)證集。選取驗(yàn)證集的精度作為網(wǎng)絡(luò)分類的評(píng)價(jià)指標(biāo)。數(shù)據(jù)集部分樣本如圖5所示。
實(shí)驗(yàn)仿真環(huán)境采用Pytorch1.7.1框架,編程語言為Python3.8。IDE為PyCharm2021.2.1.操作系統(tǒng)為Windows10 64位,CPU使用AMD 5800H,GPU使用NVIDIA GTX3050,內(nèi)存為16 GByte,以實(shí)現(xiàn)所有實(shí)驗(yàn)。
將32×32的圖片輸入網(wǎng)絡(luò),采用隨機(jī)旋轉(zhuǎn)、隨機(jī)裁剪等數(shù)據(jù)擴(kuò)充方式,batch-size采用256,深度卷積采取3×3卷積核,I-block的分支部分卷積核采用相同數(shù)量的3×3和5×5,對(duì)每次卷積所得到結(jié)果采用RReLU激活函數(shù)進(jìn)行非線性特征提取和負(fù)特征信息融合,利用能量函數(shù)中所提供的通道和位置權(quán)重,將其作用于深度卷積部分,能量越低,神經(jīng)元與周圍神經(jīng)元區(qū)別也大,其重要性越高。將inception結(jié)構(gòu)作用于第二個(gè)深度卷積部分,采用SGD優(yōu)化策略。
為了評(píng)價(jià)該改進(jìn)方法在 MobileNetV2上的分類效果,在相同參數(shù)設(shè)置的情況下對(duì)MobileNetV2、MobileNetV2+SE、MobileNetV2+3D這3種網(wǎng)絡(luò)對(duì)數(shù)據(jù)集進(jìn)行訓(xùn)練150個(gè)epoch,確保網(wǎng)絡(luò)達(dá)到收斂。將數(shù)據(jù)集中驗(yàn)證集的精度記錄下來進(jìn)行對(duì)比,結(jié)果如圖6和圖7所示,比較3種網(wǎng)絡(luò)的精度。
圖6 CIFAR-10準(zhǔn)確率變化曲線Fig.6 CIFAR-10 accuracy change curve
圖7 CIFAR-100準(zhǔn)確率變化曲線Fig.7 CIFAR-100 accuracy change curve
圖6和圖7分別是MobileNet原網(wǎng)絡(luò)、SE模塊、3D注意力模塊3種情況在CIFAR-10和CIFAR-100的準(zhǔn)確率變化。表2為實(shí)驗(yàn)精度和參數(shù)對(duì)比,從表2的實(shí)驗(yàn)精度對(duì)比中表明,RReLU激活函數(shù)可以一定程度緩解神經(jīng)元失活帶來的精度降低,3D注意力與MobileNet結(jié)合的網(wǎng)絡(luò)模型準(zhǔn)確率明顯高于SE和CBAM注意力機(jī)制。同輕量型模型ShuffleNetV2和GhostNet相比,網(wǎng)絡(luò)參數(shù)更少,精度更高。在CIFAR-10的實(shí)驗(yàn)數(shù)據(jù)當(dāng)中,相比基礎(chǔ)網(wǎng)絡(luò)MobileNetV2,注意力機(jī)制都得以提升了準(zhǔn)確率,但3D注意力機(jī)制相比SE注意力機(jī)制提升更為明顯,提升了1.5%的精度。在更復(fù)雜的百分類數(shù)據(jù)集CIFAR-100當(dāng)中,3D無參注意力結(jié)合能量函數(shù)所提供的權(quán)重使得相比初始網(wǎng)絡(luò)和其他注意力機(jī)制取得了更明顯的提升,相比初始網(wǎng)絡(luò),準(zhǔn)確率得到了2.22%的提升。
表2 實(shí)驗(yàn)精度和參數(shù)對(duì)比Tab.2 Experimental accuracy and parameter comparison
深度可分離卷積可以有效地降低網(wǎng)絡(luò)的參數(shù)量,在保證精度的情況下,使輕量型網(wǎng)絡(luò)模型得到應(yīng)用。MobileNet結(jié)合3D注意力機(jī)制,相比于SENet通過增加網(wǎng)絡(luò)參數(shù)的注意力機(jī)制,從人腦注意力機(jī)制著手,采用無參3D注意力,在未增加網(wǎng)絡(luò)參數(shù)的情況下取得更好的準(zhǔn)確率提升,特別是在CIFAR-100更多分類的復(fù)雜情況下取得更大的提升。表明該輕量型網(wǎng)絡(luò)可以勝任復(fù)雜的分類任務(wù)。未來工作內(nèi)容是進(jìn)一步優(yōu)化I-block模塊,使之可以勝任更多分類任務(wù)。