彭曦晨,葛 斌,邰 悅
(安徽理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232000)
針對(duì)上述問(wèn)題,本文提出了一種基于特征融合和注意力的圖像分類方法,該方法的主要特征,一是采用全局平均池化代替全連接層來(lái)緩解過(guò)擬合現(xiàn)象;二是考慮卷積通道之間的權(quán)重關(guān)系,通過(guò)擠壓和激勵(lì)模塊整合特征圖的特征信息,提高模型的分類效率;三是結(jié)合特征融合的方法,形成獨(dú)立模塊附加在網(wǎng)絡(luò)上,最終實(shí)現(xiàn)整體網(wǎng)絡(luò)性能的提升。
Huang等[3]發(fā)現(xiàn)連接網(wǎng)絡(luò)中的輸入和輸出層,可以構(gòu)建層數(shù)深、精度高的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),提出了網(wǎng)絡(luò)更窄、參數(shù)更少的密集卷積網(wǎng)絡(luò),加強(qiáng)了特征傳播和特征重用。Farahnakian等[4]提出一個(gè)早期融合特征的網(wǎng)絡(luò)框架應(yīng)用于海洋環(huán)境圖像識(shí)別,通過(guò)融合特征的方法使網(wǎng)絡(luò)能夠更高效地檢測(cè)復(fù)雜環(huán)境中的目標(biāo)。He等[5]提出了殘差網(wǎng)絡(luò)(Residual Network,ResNet),利用殘差分支連接每一層的輸入和輸出,構(gòu)造出超過(guò)1000層的網(wǎng)絡(luò)結(jié)構(gòu),一定程度上解決了梯度消失和梯度爆炸問(wèn)題。Lin等[6]基于多尺度特征構(gòu)建了特征金字塔結(jié)構(gòu),每一個(gè)特征階段定義為一個(gè)金字塔等級(jí),使用上采樣方法集合多尺度特征,加強(qiáng)骨干網(wǎng)絡(luò)的特征表達(dá)能力。Wang等[7]基于注意力的加權(quán)方法引入集成學(xué)習(xí)中,提出了一個(gè)更高效的集成學(xué)習(xí)分類器,將基分類器中的知識(shí)轉(zhuǎn)移到最終分類器,使性能較高的分類器獲得了更多的關(guān)注,證明了注意力機(jī)制的有效性。Sun等[8]發(fā)現(xiàn)干擾像素會(huì)削弱光譜空間特征的判別能力,提出了一種光譜空間注意力網(wǎng)絡(luò),將注意力模塊嵌入光譜分類模型,抑制干擾像素的影響。上述方法和模型通過(guò)特征融合和注意力機(jī)制得到了很好的實(shí)驗(yàn)結(jié)果,證明了方法的可行性,為研究提供了思路和基礎(chǔ)。
本文提出擠壓和激勵(lì)-雙峰網(wǎng)絡(luò)(Squeeze and Excitation-Bimodal Peak Net)模塊,簡(jiǎn)稱為SE-BIPNet模塊,此獨(dú)立模塊可以附著在任意網(wǎng)絡(luò)上。在分類層中,使用全局平均池化[9](Global Average Pooling,GAP)代替全連接層,有效地緩解過(guò)擬合現(xiàn)象。在不改變?cè)W(wǎng)絡(luò)的前提下,提取出卷積過(guò)程中不同尺寸的特征圖,并將其進(jìn)行特征融合操作,改變了傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的輸出方向。結(jié)合通道注意力模塊,使模型選擇性地強(qiáng)調(diào)有用的特征,抑制不太有用的特征[10]。提高原網(wǎng)絡(luò)的分類效率。
傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)的分類層,如圖1(a)通常使用全連接層(Fully Connected layer,F(xiàn)C),將最后一層C×H×W的特征圖展平并向量化,再使用SoftMax激活函數(shù)分類,如式(1)所示,
(1)
其中,y1為全連接層的輸出,x為輸入,n為神經(jīng)元個(gè)數(shù),ω為神經(jīng)元權(quán)重。
(a)傳統(tǒng)全連接層
(b)全局平均池化方法圖1 全連接層與全局平均池化方法對(duì)比
將特征提取層獲得的特征信息分類,得到分類結(jié)果,但是在模型訓(xùn)練的過(guò)程中,可能會(huì)出現(xiàn)過(guò)擬合的現(xiàn)象,導(dǎo)致模型損失函數(shù)收斂值較高,準(zhǔn)確率較低。由于全連接層連接復(fù)雜,即便引入丟棄(dropout)方法,按設(shè)定的概率切斷與某些神經(jīng)元的連接,破壞了各個(gè)神經(jīng)元之間的相關(guān)性,明顯的增加了訓(xùn)練時(shí)間,需要更多的迭代次數(shù)來(lái)達(dá)到預(yù)期的性能。
水利體制機(jī)制改革穩(wěn)步推進(jìn)。組織起草《水利部關(guān)于深化水利改革的指導(dǎo)意見(jiàn)》。出臺(tái)《關(guān)于深化小型水利工程管理體制改革的指導(dǎo)意見(jiàn)》。繼續(xù)深化國(guó)有水管單位體制改革。深入開(kāi)展行政審批制度改革,積極推進(jìn)簡(jiǎn)政放權(quán)。加快完善水利投入穩(wěn)定增長(zhǎng)機(jī)制。財(cái)政專項(xiàng)資金管理逐步規(guī)范,預(yù)算管理機(jī)制更加健全。水價(jià)改革全面深化?;鶎臃?wù)體系建設(shè)成果豐碩。水利扶貧、水庫(kù)移民、水利援疆和援藏工作穩(wěn)步推進(jìn)。
GAP方法本質(zhì)上是對(duì)整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)做正則化防止過(guò)擬合,如圖1(b)對(duì)上一層傳入的每個(gè)特征圖的所有像素值求平均值,得到代表每個(gè)特征圖的數(shù)值,直接連接輸出層通過(guò)SoftMax函數(shù)按概率大小分類。如式(2),
(2)
其中,y2為GAP方法的輸出,f為特征圖,n為特征圖個(gè)數(shù)。
GAP方法可以輸入任意大小的圖像,無(wú)需錯(cuò)綜復(fù)雜的連接,不會(huì)破壞神經(jīng)元之間的相關(guān)性。假設(shè)存在訓(xùn)練數(shù)據(jù)集不足的情況,降低了過(guò)擬合的風(fēng)險(xiǎn),比使用dropout方法的全連接層更加有效。
擠壓和激勵(lì)模塊(Squeeze and Excitation,SE)是在原網(wǎng)絡(luò)在特征提取的過(guò)程中,考慮卷積通道之間的權(quán)重關(guān)系,強(qiáng)調(diào)特征提取中有利的特征信息,抑制通道之間無(wú)用的特征,提高模型的分類效率。
如圖2所示,SE模塊的組成分別為:全局平均池化層、使用ReLU激活函數(shù)的全連接層和Sigmoid激活函數(shù)的全連接層。首先使用全局平均池化層將特征圖轉(zhuǎn)化為通道的向量,即為擠壓操作,如式(3)所示,
(3)
圖2 SE模塊模型
其中,H和W分別為特征圖的高度和寬度,k表示通道的第k個(gè)元素,S和δ分別為輸入和輸出。輸入尺寸為C×H×W,輸出尺寸為C×1×1。
再使用如式(4)的ReLU激活函數(shù)的全連接層和式(5)的Sigmoid激活函數(shù)的全連接層,即為激勵(lì)操作,式(6)所示,
(4)
(5)
E=σ(M2R(M1S))
(6)
其中,E為激勵(lì)操作的輸出,S為上一層的擠壓操作操作的輸出,M1和M2為兩個(gè)不同的權(quán)重矩陣。
最后進(jìn)入Scale模塊,SE模塊的輸出是將輸入通道和其它各通道的權(quán)重進(jìn)行乘法運(yùn)算,得到尺寸從C×1×1又變?yōu)镃×H×W。雖然輸入和輸出特征圖的尺寸大小沒(méi)有改變,但是通過(guò)自適應(yīng)的方法,重新分配了各個(gè)通道之間的相關(guān)性權(quán)重,加強(qiáng)網(wǎng)絡(luò)對(duì)通道相關(guān)性的表達(dá)能力,提高網(wǎng)絡(luò)中有效信息的權(quán)重。SE模塊中還存在一個(gè)超參數(shù)ratio,通過(guò)大量的實(shí)驗(yàn)證明,ratio為16時(shí)模型的性能最佳。
大部分卷積神經(jīng)網(wǎng)絡(luò)模型在特征提取過(guò)程中,淺層網(wǎng)絡(luò)的特征信息表達(dá)能力弱且特征模糊,而深層網(wǎng)絡(luò)的特征圖分辨率低但語(yǔ)義性強(qiáng)。[11]根據(jù)不同網(wǎng)絡(luò)模型設(shè)置分支數(shù)量不同,本文在原網(wǎng)絡(luò)的各層中設(shè)置5個(gè)分支輸出,輸出不同尺寸的特征圖,如圖3所示,改變前一層特征圖的尺寸適應(yīng)后一層特征圖,兩層輸出進(jìn)行相加運(yùn)算,循環(huán)此操作,最終輸出包含了所有特征圖的特征信息,增強(qiáng)網(wǎng)絡(luò)中的特征傳播能力。
圖3 SE-BIPNet立體模型圖
本文整體網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示,為了避免附加模型的參數(shù)量過(guò)大,使用1×1大小的卷積核[12]改變各輸入的通道大小。提出DownSize模塊,因?yàn)樯顚泳W(wǎng)絡(luò)的語(yǔ)義表征能力強(qiáng),包含的特征信息多,所以使用3×3的卷積核,為了改變特征圖的大小,將步距設(shè)置為2 ,填充(padding)為1,使用此卷積核不僅能夠改變特征圖尺寸,還能再次進(jìn)行特征提取操作。不同層特征圖有著不同的分辨率和語(yǔ)義表達(dá)能力,淺層網(wǎng)絡(luò)語(yǔ)義表征能力弱,所以淺層網(wǎng)絡(luò)中的DownSize模塊不同于深層網(wǎng)絡(luò)的DownSize模塊,這里使用步距為2,大小為2的池化核,不進(jìn)行卷積操作。
圖4 SE-BIPNet平面模型
本文所使用的硬件配置為inter i5-10400F CPU,NVIDA Geforce3060 Ti顯卡和16G內(nèi)存,在Windows 10 64位系統(tǒng)下,實(shí)驗(yàn)在Pytorch框架下使用Python3.6.0運(yùn)行。
Kaggle花子分類數(shù)據(jù)集共3670張分辨率不同的花子類圖片,由玫瑰花、雛菊、向日葵、蒲公英和郁金香五種花子類組成,數(shù)據(jù)集中存在小目標(biāo)圖像和灰度圖像,增加了分類難度,訓(xùn)練集和測(cè)試集分別占90%和10%。
CIFAR-10數(shù)據(jù)集共有汽車、飛機(jī)、鳥(niǎo)、貓、鹿、狗、蛙、船、卡車和馬十個(gè)類別,圖片的尺寸為32×32,數(shù)據(jù)集共有50 000張訓(xùn)練集圖片和10 000張測(cè)試集圖片。
選取準(zhǔn)確率(Accuracy,Acc)和交叉熵?fù)p失函數(shù)[13]的收斂速度作為評(píng)價(jià)指標(biāo),其計(jì)算公式(7)(8)如下,
(7)
式中TP表示正類被預(yù)測(cè)為正類的數(shù)目,即為真正類(True Positive);TN表示負(fù)類被預(yù)測(cè)為負(fù)類的數(shù)目,即為真負(fù)類(True Negative);FP表示負(fù)類被預(yù)測(cè)為正類的數(shù)目,即為假正類(False Positive);FN表示正類被預(yù)測(cè)為負(fù)類的數(shù)目,即為假負(fù)類(False Negative)。
(8)
對(duì)于CIFAR—10數(shù)據(jù)集,由于數(shù)據(jù)集圖片數(shù)量大,將批量大小(Batch Size)設(shè)置為128;學(xué)習(xí)率為0.1;交叉熵函數(shù)作為損失函數(shù);一個(gè)周期(Epoch)為一次正向和反向傳播,Epoch數(shù)量設(shè)置為200;優(yōu)化器選擇隨機(jī)梯度下降。
對(duì)于Kaggle花子分類數(shù)據(jù)集,批量大小設(shè)置為16;學(xué)習(xí)率為0.000 1;損失函數(shù)為交叉熵函數(shù);Epoch為 200;優(yōu)化器選擇自適應(yīng)矩估計(jì)。
驗(yàn)證SE-BIPNet附著在模型上性能提升的效果,選擇常用的圖像分類模型VGG16[14]在相同的實(shí)驗(yàn)設(shè)置環(huán)境下進(jìn)行對(duì)比。為了避免參數(shù)量過(guò)大影響測(cè)試準(zhǔn)確率,需要保證輸出通道個(gè)數(shù)的合理性,VGG16模型中設(shè)置輸出五個(gè)不同尺寸大小的特征圖,將這五個(gè)輸出通道作為SE-BIPNet的輸入1、輸入2、輸入3、輸入4和輸入5。由圖5可知,VGG16在迭代200次時(shí)準(zhǔn)確率收斂值為86.26%,SE-BIPNet-VGG16準(zhǔn)確率向90.38%收斂,從第1次迭代到第200次迭代,本文所提模型的性能一直高于原模型,最終準(zhǔn)確率提升了4.12%。在訓(xùn)練損失的表現(xiàn)上,損失函數(shù)的收斂速度大幅快于原網(wǎng)絡(luò),損失函數(shù)在收斂過(guò)程中也比原網(wǎng)絡(luò)更加穩(wěn)定,沒(méi)有大幅度震蕩現(xiàn)象。改變?cè)W(wǎng)絡(luò)的輸出方向,融合了不同尺寸大小的特征圖,結(jié)合注意力機(jī)制,使模型有選擇性的提取特征信息,驗(yàn)證了SE-BIPNet附加于網(wǎng)絡(luò)上的有效性。
(a)VGG16和SE-BIPNet-VGG16準(zhǔn)確率對(duì)比 (b)VGG16和SE-BIPNet-VGG16損失值對(duì)比圖5 VGG16和SE-BIPNet-VGG16測(cè)試準(zhǔn)確率和訓(xùn)練損失差異對(duì)比
為了驗(yàn)證SE-BIPNet在不同深度模型的提升效果,再選取VGG19模型作為原網(wǎng)絡(luò),VGG19相比VGG16增加了3層卷積層,同時(shí)增大了模型的參數(shù)量。實(shí)驗(yàn)結(jié)果如圖6所示,SE-BIPNet-VGG19測(cè)試準(zhǔn)確率為90.11%,原網(wǎng)絡(luò)的測(cè)試準(zhǔn)確率為84.06%,準(zhǔn)確率提升了6.05%,由于VGG19在深層網(wǎng)絡(luò)增加了3層卷積層,深層網(wǎng)絡(luò)能提取到更多的特征圖語(yǔ)義信息,所以特征融合的表現(xiàn)效果顯著。損失函數(shù)的收斂速度比原網(wǎng)絡(luò)快,在訓(xùn)練過(guò)程中損失值低代表訓(xùn)練效率有所提高。
(a)VGG19和SE-BIPNet-VGG19準(zhǔn)確率對(duì)比 (b)VGG19和SE-BIPNet-VGG19損失值對(duì)比圖6 VGG19和SE-BIPNet-VGG19測(cè)試準(zhǔn)確率和訓(xùn)練損失差異對(duì)比
VGG16和VGG19引入SE-BIPNet模塊性能獲得大幅提升,進(jìn)一步評(píng)估所提模塊的性能,嘗試將此模塊附著在不同的網(wǎng)絡(luò)模型上,驗(yàn)證對(duì)不同模型的泛化性能。AlexNet[15]使用大小為11×11、5×5和3×3的卷積核,在原網(wǎng)絡(luò)上設(shè)置4個(gè)輸出分支與SE-BIPNet模塊連接。為適應(yīng)Kaggle花子分類數(shù)據(jù)集,在不改變?cè)W(wǎng)絡(luò)的特征提取層的前提下,改變了原網(wǎng)絡(luò)的分類層參數(shù)。實(shí)驗(yàn)結(jié)果如圖7所示,AlexNet的準(zhǔn)確率為82.41%,SE-BIPNet-AlexNet準(zhǔn)確率為85.71%,準(zhǔn)確率提升了3.3%。
(a)AlexNet和SE-BIPNet-AlexNet準(zhǔn)確率對(duì)比 (b)AlexNet和SE-BIPNet-AlexNet損失值對(duì)比圖7 AlexNet和SE-BIPNet-AlexNet測(cè)試準(zhǔn)確率和訓(xùn)練損失差異對(duì)比
使用CIFAR-10數(shù)據(jù)集驗(yàn)證SE-BIPNet在不同數(shù)據(jù)集的有效性,表1給出了上述模型在CIFAR-10數(shù)據(jù)集上的準(zhǔn)確率對(duì)比結(jié)果。
表1 CIFAR-10數(shù)據(jù)集在不同模型上的準(zhǔn)確率對(duì)比
SE-BIPNet-AlexNet與原網(wǎng)絡(luò)相比準(zhǔn)確率提升了4.23%,SE-BIPNet-VGG16比原網(wǎng)絡(luò)提升了9.64%,SE-BIPNet-VGG19比原網(wǎng)絡(luò)提升了6.94%。VGG16相比于VGG19,僅僅少了3層卷積層,但VGG16在相同實(shí)驗(yàn)設(shè)置下訓(xùn)練過(guò)程中對(duì)CIFAR-10的分類準(zhǔn)確率更高,因此加入SE-BIPNet后模型提升效果更顯著。
探究各個(gè)網(wǎng)絡(luò)模塊對(duì)原網(wǎng)絡(luò)分類提升的效果,選取測(cè)試準(zhǔn)確率為評(píng)價(jià)指標(biāo),選取VGG19為原網(wǎng)絡(luò)、不引入SE模塊的BIPNet-VGG19和整體網(wǎng)絡(luò)在Kaggle花子分類數(shù)據(jù)集上進(jìn)行比對(duì),實(shí)驗(yàn)結(jié)果如表2所示。
表2 SE-BIPNet-VGG19的消融實(shí)驗(yàn)結(jié)果
結(jié)果顯示引入GAP模塊比原網(wǎng)絡(luò)的分類準(zhǔn)確率提高了0.32%,使用BIPNet模塊比僅使用GAP模塊準(zhǔn)確率提高了4.88%,相較于原網(wǎng)絡(luò)提升了5.2%,證明了引入不同特征圖融合特征信息的有效性,添加注意力模塊比沒(méi)有此模塊的BIPNet-VGG19提高了0.85%,整體網(wǎng)絡(luò)比原VGG19網(wǎng)絡(luò)準(zhǔn)確率提高了6.05%。
本文基于不同尺寸特征圖的特征融合方法,結(jié)合全局平均池化代替全連接層,引入通道注意力機(jī)制,構(gòu)建了獨(dú)立的SE-BIPNet模塊。選取常用的圖像分類網(wǎng)絡(luò)如VGG16、VGG19和AlexNet,將本文所提出的獨(dú)立模塊附加于這些網(wǎng)絡(luò),在Kaggle花子分類數(shù)據(jù)集和CIFAR-10數(shù)據(jù)集上證明其有效性。實(shí)驗(yàn)證明分類測(cè)試準(zhǔn)確率有顯著的提升,訓(xùn)練過(guò)程中損失函數(shù)的收斂速度更快。在之后的工作中,將繼續(xù)研究特征融合和特征選擇,有效提高網(wǎng)絡(luò)的性能。