田佳鷺 鄧立國(guó)
(沈陽(yáng)師范大學(xué)數(shù)學(xué)與系統(tǒng)科學(xué)學(xué)院 沈陽(yáng) 110034)
在目前圖像識(shí)別領(lǐng)域中細(xì)粒度圖像分類問(wèn)題是研究的重點(diǎn)課題。細(xì)粒度分類是在大類別中進(jìn)行子類別劃分,由于物體類內(nèi)差異細(xì)微、特征目標(biāo)不突出因此分類難度大。相對(duì)而言粗粒度分類較為簡(jiǎn)單,它只對(duì)物體作簡(jiǎn)單的類別區(qū)分特征較為明顯。那么如何精準(zhǔn)、高效地挖掘目標(biāo)物體空間位置及其顯著特征,是細(xì)粒度分類任務(wù)所要解決的關(guān)鍵問(wèn)題。盡管以往的卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)能做到有效提取出物體的基本輪廓、細(xì)節(jié)描述等特征信息,但還不能將其完全應(yīng)用于細(xì)粒度圖像分類任務(wù)。雙線性卷積神經(jīng)網(wǎng)絡(luò)(Bilinear CNN)基于它能有效提取較全面的特征信息,成為細(xì)粒度分類中的經(jīng)典模型,其不足之處在于擁有過(guò)多的參數(shù)量、識(shí)別精度不夠高等。因此,該文提出的改進(jìn)模型著重針對(duì)上述問(wèn)題,以Bilinear CNN作為基礎(chǔ)模型引入注意力機(jī)制、分組策略以及新型Relu-and-Softplus激活函數(shù)。最終實(shí)驗(yàn)數(shù)據(jù)顯示,新模型的預(yù)測(cè)精度更高可達(dá)96.869%,涉及的參數(shù)量更少,模型性能較優(yōu)。
DenseNet121是一種結(jié)構(gòu)密集的卷積神經(jīng)網(wǎng)絡(luò),由4個(gè)Dense Block和3個(gè)Transition layer共同組成。其中Dense Block為稠密連接模塊,Transi?tion layer為兩個(gè)相鄰的Dense Block模塊的銜接區(qū)域[1]。并且DenseNet中每一個(gè)Dense Block塊都融合前面所有層的信息,使得信息資源更豐富。其中Dense Block模塊的結(jié)構(gòu)為BN+Relu+(1*1)Conv+BN+Relu+(3*3)Conv,使用維度為1*1的bottleneck卷積層可有效降低特征圖的通道數(shù)以減少計(jì)算量。Transition layer的 結(jié) 構(gòu) 為BN+Relu+(1*1)Conv+(2*2)AvgPooling,其間使用了1*1維度的卷積層,用于維度的降低。
在DenseNet121神經(jīng)網(wǎng)絡(luò)模型中,任意兩層之間直接相連,網(wǎng)絡(luò)前面的每一層輸出信息都會(huì)通過(guò)合并操作匯集到這一層,相應(yīng)地該層學(xué)習(xí)得到的特征圖信息,也會(huì)被傳給后面的所有層。這正是與ResNet隔層相連思想最大的不同之處。描述DenseNet每一層的變換的式子如下[2]:
可以看出DenseNet模型結(jié)構(gòu)較為簡(jiǎn)潔,它可綜合利用多層復(fù)雜度較低的淺層特征來(lái)擴(kuò)增信息量,使其得到一個(gè)具有較好泛化性能的決策函數(shù),提高模型的抗過(guò)擬合性。
原始的Bilinear CNN模型采用兩路的VGG-16作為特征提取模塊,介于DenseNet121網(wǎng)絡(luò)模型具有良好的性能和緊密的結(jié)構(gòu),將DenseNet121模型的卷積部分到最后一個(gè)卷積塊為止,即去掉最后的Global average pool層和Softmax層作為改進(jìn)模型結(jié)構(gòu)中兩路的特征提取模塊[3]。
模型中常用Relu激活函數(shù),當(dāng)x值小于0時(shí)函數(shù)值恒等于0;當(dāng)x值大于0時(shí)它是一個(gè)線性函數(shù)。根據(jù)函數(shù)的性質(zhì),它的優(yōu)點(diǎn)是大于0時(shí)為線性函數(shù),使網(wǎng)絡(luò)具有一定的稀疏性,防止模型產(chǎn)生過(guò)擬合現(xiàn)象;并且能通過(guò)良好的反向傳播,防止梯度彌散現(xiàn)象發(fā)生[4]。它的缺點(diǎn)是屏蔽了太多的特征信息,導(dǎo)致模型無(wú)法進(jìn)行有效的學(xué)習(xí)。并且該函數(shù)恒等于0的特點(diǎn),會(huì)導(dǎo)致大部分神經(jīng)元可能永遠(yuǎn)不會(huì)被激活。Relu激活函數(shù)表達(dá)式:
另一個(gè)激活函數(shù)Softplus,是一個(gè)不飽和的函數(shù),與Relu激活函數(shù)相比更加平滑,因此Softplus可以稱作ReLu激活函數(shù)的平滑版,但它不具有稀疏性這一特點(diǎn)[5],函數(shù)表達(dá)式為
該文提出的新激活函數(shù),將Relu函數(shù)和Soft?plus函數(shù)相結(jié)合,取兩者之長(zhǎng)補(bǔ)兩者之短,使其既有Relu函數(shù)稀疏性和快速收斂的特點(diǎn),又具有Softplus函數(shù)平滑的特點(diǎn)。對(duì)于提出的新函數(shù)將其命名為Relu-and-Softplus函數(shù),該函數(shù)由兩部分組成以x=0為分界點(diǎn),x≤0的部分用Softplus函數(shù)的性質(zhì),x>0部分則用到Relu函數(shù)的性質(zhì),最后將生成的Relu-and-Softplus函數(shù)整體向上平移0.7個(gè)單位量,表達(dá)式為
如圖1所示是Relu-and-Softplus激活函數(shù)。
圖1 Relu-and-Softplus激活函數(shù)
2.3.1 注意力機(jī)制
注意力機(jī)制的本質(zhì)是在原有特征圖的基礎(chǔ)上添加一個(gè)權(quán)重掩碼,代表特征的重要程度,強(qiáng)化重要的特征,抑制不必要的特征,提升網(wǎng)絡(luò)的訓(xùn)練效率。在運(yùn)算過(guò)程中通常使用軟性注意力機(jī)制,即對(duì)于輸入的N個(gè)信息,通過(guò)計(jì)算所有輸入信息的加權(quán)平均值來(lái)確定信息的選?。?]。在該機(jī)制下以概率αi選擇第i個(gè)信息的可能性表達(dá)公式為
其中,xi代表第i個(gè)信息的輸入,q是所要查詢的信息,z是一種注意力變量,s(xi,q)是注意力的評(píng)分函數(shù)。通過(guò)計(jì)算得到注意力權(quán)重αi后,為完成對(duì)重要信息的提取工作將αi與特征向量進(jìn)行融合處理,操作過(guò)程如下:
為提高模型分類精度,引入注意力機(jī)制即通道注意力模塊和空間注意力模塊,將兩者分別構(gòu)建在DenseNet121模型中最后一個(gè)卷積塊即特征提取模塊的后面,使模型不僅關(guān)注到空間中每個(gè)重要特征,又能獲取到通道間相互的關(guān)聯(lián)信息。將圖像特征的整體性與局部性巧妙融合,加深模型對(duì)圖像特征的理解[7]。
2.3.2 空間注意力模塊
空間注意力模塊主要于關(guān)注特征圖上每個(gè)特征位置之間的相關(guān)性,注重特征值的局部性??臻g注意力模塊處理過(guò)程為
1)首先,經(jīng)過(guò)兩個(gè)連續(xù)卷積層的處理實(shí)現(xiàn)對(duì)輸入特征圖下采樣操作,獲取圖像的特征編碼;
2)接著,利用反卷積操作對(duì)特征編碼上采樣,實(shí)現(xiàn)特征解碼恢復(fù)到輸入特征模塊原有的維度,但通道數(shù)變?yōu)?;
3)然后,通過(guò)激活函數(shù)Sigmoid的運(yùn)算將剛提取的位置信息矩陣轉(zhuǎn)換為注意力掩碼AS,即每個(gè)特征值被映射至0~1之間生成權(quán)重值;
4)保證注意力掩碼和DenseNet121特征提取模塊輸出的特征圖大小一致,在這里還要將掩碼部分+1后再與特征圖點(diǎn)乘,消除特征值可能會(huì)降低的問(wèn)題,處理完畢后進(jìn)行后續(xù)的特征圖與對(duì)應(yīng)掩碼的點(diǎn)乘運(yùn)算使特征獲得權(quán)重,相融合后得到空間注意力特征圖XS;
5)最后,將原始特征圖與空間注意力特征圖XS以用類似于ResNet殘差網(wǎng)絡(luò)中恒等的連接方式,進(jìn)行線性相加得到最終的模塊輸出H。
空間注意力模塊處理的整體過(guò)程可用如式(7)表示:
H是模塊的最終輸出,下角標(biāo)i指代第i張圖的輸入,G是DenseNet121特征提取模塊輸出的特征向量,×運(yùn)算符代表相乘運(yùn)算。
2.3.3 通道注意力模塊
通道注意力模塊主要用于挖掘每一個(gè)特征圖通道之間的相互關(guān)聯(lián)性,因此它更關(guān)注的是圖像特征的整體性。通道注意力模塊的處理過(guò)程。
1)首先,利用全局平均池化層(Global Average Pooling,GAP)提取特征圖中每個(gè)通道大小為1*1的特征值,以獲得全局通道的特征信息,并把它們拼接成一個(gè)特征向量;
2)接著,連接一個(gè)全連接層實(shí)現(xiàn)對(duì)特征向量的下采樣操作,實(shí)現(xiàn)信息的壓縮,緊接著再用一個(gè)全連接層對(duì)壓縮的信息進(jìn)行上采樣,實(shí)現(xiàn)維度的恢復(fù);
3)使用Sigmoid激活函數(shù)完成與空間注意力模塊處理方式相同的特征映射操作,生成通道注意力掩碼向量AC;
4)接下來(lái),通過(guò)一個(gè)分支結(jié)構(gòu)將原始輸入的特征圖快速傳送到網(wǎng)絡(luò)后面,直接和通道注意力掩碼向量AC以對(duì)應(yīng)元素相乘的方式,為特征圖的每個(gè)通道施予權(quán)重值實(shí)現(xiàn)特征融合,得到通道注意力特征圖XC;
5)最后,將通道注意力特征圖XC與最初的原始特征圖完成線性相加運(yùn)算,得到最終的模塊輸出J??臻g注意力模塊處理的整體過(guò)程用公式表示為
J是模塊的最終輸出,下角標(biāo)i指代第i張圖的輸入,Q是DenseNet121特征提取模塊輸出的特征圖,×運(yùn)算符表示對(duì)應(yīng)元素相乘運(yùn)算[8]。
DenseNet121模型在兩種注意力模塊的幫助下完成特征提取后,為符合后續(xù)分組雙線性卷積策略的要求,在注意力模塊和分組雙線性卷積之間增加一層新的卷積層,使得特征圖的通道維度變?yōu)镹*M。此外,卷積層的增加能夠有效提高模型的特征提取效果和非線性變換能力,新的卷積核大小為3×3,卷積核數(shù)目為N*M,步長(zhǎng)為1。其中N為分組的數(shù)目即數(shù)據(jù)集中擁有的類別數(shù),M是每個(gè)分組中包含的特征圖數(shù)目。經(jīng)該層的卷積后特征圖的維度被調(diào)整為
通常利用雙線性池化操作后,會(huì)得到二階甚至高階的特征使其包含更多的信息量,但隨著雙線性特征向量維度的提升,會(huì)使后續(xù)全連接操作或全局最大池化操作的參數(shù)量急劇增加,運(yùn)算負(fù)擔(dān)過(guò)重,網(wǎng)絡(luò)的訓(xùn)練難度提升[10]。
分組策略是通過(guò)對(duì)卷積圖進(jìn)行分組,讓每個(gè)組內(nèi)部進(jìn)行外積運(yùn)算,這樣得到的特征維度可極大降低,每個(gè)組對(duì)應(yīng)的全局最大池化層的參數(shù)量也會(huì)因此下降。它的具體操作是對(duì)分組后每個(gè)類內(nèi)特征圖分別進(jìn)行雙線性池化融合,即運(yùn)用外積運(yùn)算分別得到各個(gè)類別的雙線性特征,最后可以得到N個(gè)雙線性特征向量。
對(duì)于改進(jìn)的雙新型卷積網(wǎng)絡(luò)進(jìn)行分組操作,通過(guò)新增的卷積層使特征圖維度變?yōu)閇A1,B1,(M×N)][11]。表示特征圖被分N個(gè)組,并且每組含有M個(gè)維度為A1×B1的特征圖,這里設(shè)M為4。
若將改進(jìn)的模型從新增的卷積層處分為兩部分,那么后半部分基于分組策略思想的雙線性卷積模 型 形 似 于 一 個(gè) 五 元 函 數(shù)Q=F(f A,c,f B,c,M,P,L),其中,f A,c,f B,c為特征提取函數(shù),A和B為二路卷積神經(jīng)網(wǎng)絡(luò),c表示第c組卷積圖,M為分組所包含的特征圖數(shù)目[12],P表示池化函數(shù),L表示分類函數(shù),其中f也是一種映射函數(shù),即f:G×I→RS×T,表示為將輸入圖像G和它的原始尺寸I映射到S×T的空間范圍中,S代表生成特征圖的分辨率大小,T是通道數(shù)。此外,特征提取函數(shù)應(yīng)與DenseNet121當(dāng)中的特征提取模塊相對(duì)應(yīng)。
假設(shè)γc,λc分別對(duì)應(yīng)特征函數(shù)f A,c,f B,c輸出的第c個(gè)類別的特征圖矩陣,將相同維度的γc,λc進(jìn)行外積運(yùn)算,即通過(guò)雙線性池化操作完成特征融合,得到雙線性特征向量Bilinear vector,公式為[13]
其中q表示對(duì)雙線性特征值進(jìn)行外積運(yùn)算函數(shù),?符號(hào)表示外積操作,l為圖像直接對(duì)應(yīng)的空間區(qū)域,E表示輸入圖像。池化函數(shù)P通過(guò)累加每個(gè)位置的雙線性特征,進(jìn)一步完善整體的特征描述信息,計(jì)算公式如下:
經(jīng)過(guò)上式計(jì)算將雙線性特征轉(zhuǎn)變?yōu)橄蛄縳c,接著進(jìn)行向量規(guī)范化操作[14],即利于向量開(kāi)平方運(yùn)算計(jì)算得到向量yc,接著再進(jìn)行L2正則歸一化操作得到zc,公式為
可以發(fā)現(xiàn)特征分組后的雙線性特征向量維度減小,有利于減少后續(xù)計(jì)算的參數(shù)量,提高訓(xùn)練效率。利用分組策略稍微會(huì)對(duì)模型的精確度有一定的影響,但結(jié)合前面提出的注意力模塊可以將這個(gè)問(wèn)題很好的化解。
該論文為符合細(xì)粒度分類要求選取五類花作為基礎(chǔ)數(shù)據(jù)集,分別為daisy、dandelion、roses、sun?flowers、tulips五種花。對(duì)于數(shù)據(jù)集合的統(tǒng)一管理,利用TensorFlow中提供的TFRecord格式,將任意數(shù)據(jù)轉(zhuǎn)化成能被TensorFlow處理的形式,即以一種二進(jìn)制文件格式使得圖像中重要信息以及標(biāo)簽數(shù)據(jù)被整體的封裝在一起,用于后續(xù)模型訓(xùn)練[15]。將數(shù)據(jù)集按功能分為包含大量數(shù)據(jù)的訓(xùn)練集和小部分?jǐn)?shù)據(jù)的測(cè)試集,其中測(cè)試集由每類中抽取的100張左右圖片組成。訓(xùn)練集通過(guò)壓縮編碼被分為兩個(gè)都含有1000張數(shù)據(jù)的TFRecord文件,少量的測(cè)試集則裝成一個(gè)TFRecord文件即可[16]。圖像被制作成TFRecord文件后的存儲(chǔ)方式如圖2所示。
圖2 TFRecord文件中的圖片形式
五類花的數(shù)據(jù)集分配情況如表1所示。
表1 五類花的數(shù)據(jù)集分配情況
對(duì)于改進(jìn)模型,在訓(xùn)練過(guò)程中我們把模型分成兩個(gè)階段來(lái)訓(xùn)練。首先鎖定DenseNet神經(jīng)網(wǎng)絡(luò)的值,使用訓(xùn)練集重點(diǎn)訓(xùn)練模型的后半部分,并利用DenseNet曾經(jīng)訓(xùn)練好的值對(duì)模型后半部分進(jìn)行指導(dǎo),因?yàn)榻?jīng)過(guò)訓(xùn)練的DenseNet已經(jīng)包含了一定的信息量;當(dāng)后面的權(quán)值訓(xùn)練到較穩(wěn)定狀態(tài)時(shí),再解鎖前半部分DenseNet的值,進(jìn)行整體網(wǎng)絡(luò)模型的訓(xùn)練,直至模型收斂并用測(cè)試集檢驗(yàn)?zāi)P偷挠?xùn)練情況。
該文主要針對(duì)細(xì)粒度圖像分類任務(wù),基于Bi?linear CNN模型改進(jìn)其結(jié)構(gòu)優(yōu)化其性能,基礎(chǔ)數(shù)據(jù)集選取五類花的數(shù)據(jù)。為驗(yàn)證改進(jìn)的模型能夠有效減少網(wǎng)絡(luò)參數(shù)和計(jì)算量,提升模型訓(xùn)練效率,提高預(yù)測(cè)精確度。將改進(jìn)的模型與Bilinear CNN模型、VGG模型以及ResNet模型在參數(shù)量以及預(yù)測(cè)時(shí)間方面進(jìn)行對(duì)比,如表2所示,可以發(fā)現(xiàn)新的模型結(jié)構(gòu)所用的參數(shù)量較少,并且推理速度較快。
表2 四種模型在參數(shù)量和預(yù)測(cè)時(shí)間方面的對(duì)比
此外,為了檢驗(yàn)新模型的分類精確度,令四種模型在以相同的數(shù)據(jù)集為基礎(chǔ)進(jìn)行訓(xùn)練和識(shí)別,如表3所示,能夠清晰地觀察出,新模型相比其他三種模型具有較高的分類精確度,可高達(dá)96.869%。通過(guò)以上檢驗(yàn)?zāi)軌蜃C明,新的模型實(shí)現(xiàn)了改進(jìn)目的,具有較好的性能,能有效應(yīng)對(duì)細(xì)粒度圖像分類的問(wèn)題。
表3 各種模型的分類精確度
該改進(jìn)模型是一種針對(duì)細(xì)粒度圖像分類問(wèn)題的模型,為了改進(jìn)原Bilinear CNN模型訓(xùn)練參數(shù)量過(guò)多,預(yù)測(cè)精度不夠高的問(wèn)題,提出了相應(yīng)的改進(jìn)措施。主要將結(jié)構(gòu)緊密的DenseNet121模型作為雙線性網(wǎng)絡(luò)的特征提取模塊;并改進(jìn)激活函數(shù)為新型的Relu-and-Softplus函數(shù);利用注意力機(jī)制生成空間注意力模塊和通道注意力模塊,以實(shí)現(xiàn)特征的整體性和局部性的完美結(jié)合;接著,利用分組策略有效減少模型在GMP運(yùn)算過(guò)程中的參數(shù)量,提升訓(xùn)練速度;并用全局最大池化層提取每個(gè)雙線性特征向量的顯著特征以實(shí)現(xiàn)最后的分類目的。經(jīng)驗(yàn)證,新的模型無(wú)論是在訓(xùn)練效率還是分類精度方面較比其他模型都體現(xiàn)出優(yōu)良的效果。因此,該模型能夠很好地應(yīng)對(duì)細(xì)粒度特征分類差異小的問(wèn)題。對(duì)于今后的研究將在保證精確度的前提下,對(duì)模型的層次架構(gòu)實(shí)現(xiàn)進(jìn)一步的精簡(jiǎn),以達(dá)到更好的性能。