田佳鷺,鄧立國(guó)
(沈陽(yáng)師范大學(xué)數(shù)學(xué)與系統(tǒng)科學(xué)學(xué)院,沈陽(yáng)110034)
本文中的改進(jìn)方法主要針對(duì)細(xì)粒度圖像分類任務(wù),細(xì)粒度是指在粗粒度基礎(chǔ)之上進(jìn)行更為細(xì)致的類內(nèi)劃分,對(duì)象間的區(qū)分差異較小,任務(wù)難度較大。經(jīng)典雙線性卷積神經(jīng)網(wǎng)絡(luò)的提出,使得分類的準(zhǔn)確性已達(dá)到很好的效果。但由于模型關(guān)注的特征過(guò)多缺乏重點(diǎn),其次層次結(jié)構(gòu)較深,模型訓(xùn)練效率低。改進(jìn)模型針對(duì)這些問(wèn)題進(jìn)行完善,在Bilinear CNN 基礎(chǔ)之上選擇VGG-16 的前5 個(gè)卷積塊,以及ResNet-50 的前7 個(gè)卷積塊作為特征提取器以提高訓(xùn)練效率;并在特征提取器中分別嵌入AWFF 模塊和SENet Block 模塊,將特征提取的重心放在關(guān)鍵特征上;接著利用雙線性池化操作完成后續(xù)的分類任務(wù)。新模型即改善了分類的準(zhǔn)確性,又提升了訓(xùn)練速度,結(jié)構(gòu)性能也較為穩(wěn)定。
雙線性模型在細(xì)粒度圖像分類任務(wù)上取得了極大成功,在細(xì)粒度分類問(wèn)題的處理上具有較高準(zhǔn)確性,可將該網(wǎng)絡(luò)模型看作為一個(gè)四元函數(shù)[1]:
公式中,fA,fB為特征提取函數(shù),ρ 為池化函數(shù),S是分類函數(shù)。特征提取函數(shù)f 相當(dāng)于一種映射關(guān)系:
即將圖像γ 上某一位置l 映射到S×T 空間的過(guò)程,其中S 代表空間維度,T 則代表特征圖的通道維數(shù)。雙線性池化層是Bilinear CNN 的重要之處[2],將兩個(gè)特征提取分支輸出的特征圖中相應(yīng)位置的特征進(jìn)行外積運(yùn)算:
函數(shù)bilinear 表示通過(guò)外積操作生成高維雙線性特征矩陣的融合過(guò)程,接下來(lái)利用池化函數(shù)ρ 進(jìn)一步得到關(guān)于圖像的全局特征描述算子[3]。通過(guò)對(duì)雙線性特征中每對(duì)相應(yīng)的雙線性值,進(jìn)行聚合運(yùn)算得到關(guān)于整體的特征描述,得到雙線性特征向量Bilinear CNN:
將池化得到的雙線性特征向量XC,運(yùn)用開(kāi)方運(yùn)算得到向量YC,并利用l2歸一化操作得到最終規(guī)范的雙線性特征向量zc:
新模型的改進(jìn)之處在于,對(duì)于雙線性網(wǎng)絡(luò)的兩個(gè)特征提取分支,一個(gè)基于層數(shù)較深的VGG-16 網(wǎng)絡(luò)模型中前五個(gè)卷積模塊,另一個(gè)則基于具有殘差思想的ResNet-50 網(wǎng)絡(luò)模型的前七個(gè)卷積模塊[4]。借助殘差思想其優(yōu)勢(shì)在于通過(guò)對(duì)細(xì)微殘差的學(xué)習(xí)代替對(duì)原始特征的學(xué)習(xí),減輕模型學(xué)習(xí)負(fù)擔(dān)有助于提升模型的訓(xùn)練速度。此外,借助直連思想幫助模型保留更多的有效信息,防止模型由于層數(shù)過(guò)多導(dǎo)致梯度彌散、爆炸等現(xiàn)象的發(fā)生。通過(guò)兩種模型提取特征角度的不同、信息種類的不同來(lái)幫助新模型獲取更加全面的特征信息,利于模型的學(xué)習(xí)與訓(xùn)練。
當(dāng)前所使用的大部分模型都以卷積模塊輸出的最后一個(gè)特征圖為主,該特征圖作為深層特征的典型代表包含著大量的重要特征信息。但不能因此忽略淺層特征信息的重要性,淺層信息中通常包含一些關(guān)于對(duì)象位置的信息等,有助于模型快速定位并提取特征,因此淺層中的特征信息對(duì)模型訓(xùn)練有一定作用其重要程度不可小覷。新模型在特征提取模塊中引用AWFF 模塊,實(shí)現(xiàn)將淺層特征與深層特征以自適應(yīng)的方式充分融合[5]。
AWFF 模塊主要由特征提取模塊、加權(quán)模塊及融合模塊三個(gè)部分組成。所謂自適應(yīng)學(xué)習(xí)是指模型能夠以一定的學(xué)習(xí)方式,結(jié)合特征的重要程度自動(dòng)獲取相應(yīng)權(quán)重。AWFF 方法實(shí)現(xiàn)過(guò)程如下:
(1)特征提取模塊:
該過(guò)程以第一個(gè)卷積模塊的輸出特征圖為例,也可將其推廣至多個(gè)淺層特征與深層特征的融合。設(shè)第一層淺層特征為x1∈RC1×H1×W1,其中C1為通道數(shù)、H1為長(zhǎng)度、W1為寬度。對(duì)特征圖進(jìn)行池化操作,使得模型獲取淺層特征中最重要、最具有代表性的信息,并減少冗余參數(shù)數(shù)量。池化層過(guò)濾器的大小為kh×kw,步長(zhǎng)為s。這里深層特征是指VGG-16 中最后一個(gè)卷積模塊輸出的特征圖xn,xn可不經(jīng)過(guò)處理直接輸出[6]。接著需要調(diào)整提取后特征圖的維度,為進(jìn)行下一步操作做好準(zhǔn)備。池化加權(quán)操作過(guò)程公式如下:
(2)加權(quán)模塊
加權(quán)模塊的作用是自動(dòng)分配給不同層級(jí)中的特征不同的權(quán)重值,使每一層級(jí)獲得與自身重要程度相匹配的權(quán)重。權(quán)值需要通過(guò)模型學(xué)習(xí)獲得,為減輕模型整體的訓(xùn)練負(fù)擔(dān),每一層級(jí)共享同一權(quán)重值,即模型在自適應(yīng)過(guò)程中只需為每個(gè)層級(jí)分配一個(gè)參數(shù)值即可,有效提高訓(xùn)練速度。該過(guò)程先利用卷積操作實(shí)現(xiàn)特征加權(quán),并且權(quán)重會(huì)進(jìn)行自適應(yīng)的調(diào)整,接著將輸出值的維度進(jìn)行調(diào)整使其與深層特征xn的維度相匹配,便于后續(xù)特征融合操作[7]。卷積加權(quán)過(guò)程公式如下:
(3)融合模塊
最后采用concat 拼接方法,將所有加權(quán)的淺層特征與深層特征依次融合相連,此時(shí)特征通道維度相互串聯(lián),通過(guò)融合函數(shù)fC得到最終的特征X。操作過(guò)程如下:在融合了AWFF 模塊的VGG-16 特征提取模塊中,將VGG-16 中前兩個(gè)模塊的輸出淺層特征圖與最后一個(gè)模塊輸出深層特征圖進(jìn)行加權(quán)融合,因此將公式(12)根據(jù)新的模型推廣為:
SENet Block(Squeeze-and-Excitation Networks)被稱為特征重標(biāo)定模塊,該模塊由Momenta 公司建立,并借助該方法在最后一屆2017 的ImageNet 比賽中獲得圖像識(shí)別類的冠軍。該模塊的主要作用是讓模型能獲取每個(gè)特征通道的重要性,根據(jù)重要性對(duì)相應(yīng)的特征進(jìn)行增強(qiáng)或抑制[8]。該模塊的整體結(jié)構(gòu)如圖1 所示。
圖1 SENet Block
具體操作過(guò)程如下:
(1)SENet 模塊一般嵌入在一個(gè)完整的卷積過(guò)程之后,即通過(guò)卷積得到包含C 個(gè)特征圖的集合U,公式如下;
其中,F(xiàn)sq代表Squeeze 操作的特征圖壓縮過(guò)程,zc代表其中一個(gè)壓縮后的實(shí)數(shù)值,W,H是空間U 的寬度和高度。
(3)Excitation 操作:該激勵(lì)過(guò)程使模型學(xué)習(xí)各個(gè)特征圖通道之間的相關(guān)性,并結(jié)合重要程度為每個(gè)通道生成一個(gè)權(quán)值,公式如下:
(4)Reweight 操作:將Excitation 操作過(guò)程中產(chǎn)生的重要性權(quán)重以乘法的形式添加到相應(yīng)特征上,突顯出通道之間的重要性程度,實(shí)現(xiàn)對(duì)原始二維特征圖中各個(gè)通道的重要性標(biāo)定任務(wù):
公式中Fscale函數(shù)代表加權(quán)過(guò)程,sc是代表對(duì)應(yīng)通道重要性的權(quán)值,是特征重標(biāo)定即加權(quán)后的特征圖。
在新的模型中將SENet Block 模塊嵌入到第二個(gè)特征提取分支中,即ResNet 的七個(gè)殘差卷積塊都被嵌入SENet Block 模塊[11],嵌入方法如圖2 所示。
圖2 SENet Block模塊在ResNet中的嵌入
先在ResNet 的每個(gè)殘差塊中加入全局平均池化層進(jìn)行特征壓縮,將特征圖維度從H×W×C壓縮到1×1×C。下面是最重要的Excitation 操作,先利用一層FC 作為降維層,將特征圖通道數(shù)降為,這里設(shè)r為16,接著用ReLU 激活函數(shù)保證特征的非線性性,接著再利用一層FC 作為升維層,將通道數(shù)恢復(fù)到原來(lái)的C 保證特征的完整性,后面結(jié)合Sigmoid 函數(shù)得到值在0~1 之間的權(quán)重,最終通過(guò)Scale 模塊完成特征加權(quán)操作[12]。可以發(fā)現(xiàn)該過(guò)程連續(xù)用到兩層FC 層,權(quán)重s就是借助這些全連接層和非線性層學(xué)習(xí)得到,利用兩個(gè)串聯(lián)的FC 層融合通道之間的相關(guān)性信息,并增加特征的非線性性,有效減少參數(shù)量提高計(jì)算效率。
新的模型以雙線性網(wǎng)絡(luò)(Bilinear CNN)為基礎(chǔ),對(duì)原始的兩個(gè)特征提取分支進(jìn)行改進(jìn)。其中一個(gè)分支選取VGG-16 的前5 個(gè)卷積塊作為特征提取器,去掉VGG-16 模型最后的全連接層和Softmax 層,并在卷積模塊的基礎(chǔ)上嵌入AWFF 模塊,將前兩層淺層特征與最后的深層特征相融合,充分保留有用信息保證特征提取的全面性。另一個(gè)分支則以ResNet-50 模型中前7 個(gè)卷積塊用于提取特征,并結(jié)合SENet Block 模塊關(guān)注特征通道間的相關(guān)性,利用權(quán)重參數(shù)選擇重要特征而忽略不必要的特征,同時(shí)采用ResNet 模型的殘差思想來(lái)提升新模型的訓(xùn)練速度。最后通過(guò)雙線性池化層計(jì)算得到Bilinear vector 向量,利用Softmax 實(shí)現(xiàn)細(xì)粒度圖像的分類目的。此外,AWFF 及SENet Block 作為兩種子模塊,也可靈活地嵌入到其它基礎(chǔ)網(wǎng)絡(luò)當(dāng)中[13]。
新的模型通過(guò)對(duì)基礎(chǔ)特征提取網(wǎng)絡(luò)的替換,以及兩種嵌入模塊的運(yùn)用,使其更加高效地提取特征,加快模型的訓(xùn)練速度,獲取的特征信息更加全面具體,利于細(xì)粒度圖像分類任務(wù)準(zhǔn)確度的提升。盡管這些模塊的嵌入會(huì)使得模型的參數(shù)量增加,但在其分類效果面前,參數(shù)量增加所帶來(lái)的影響幾乎微乎其微。新的模型整體結(jié)構(gòu)如圖3 所示。
圖3 新模型的整體結(jié)構(gòu)圖
該模型結(jié)合遷移學(xué)習(xí)方法訓(xùn)練模型,利用模型之前已經(jīng)訓(xùn)練好的一部分參數(shù),在此基礎(chǔ)上訓(xùn)練新改進(jìn)的模型,即模型將先前學(xué)到的經(jīng)驗(yàn)應(yīng)用到新任務(wù)的學(xué)習(xí)中,通過(guò)該方式可極大節(jié)省時(shí)間提高訓(xùn)練效率。該模型基于Python 與TensorFlow 實(shí)現(xiàn),利用TensorFlow中的機(jī)器學(xué)習(xí)框架構(gòu)造所需要的模型結(jié)構(gòu),并在訓(xùn)練過(guò)程中使用GPU 提升訓(xùn)練速度。
該實(shí)驗(yàn)選取的數(shù)據(jù)集為斯坦福大學(xué)整理得汽車數(shù)據(jù)集Stanford Cars,該數(shù)據(jù)集包含196 種不同車輛,共16185 張車輛數(shù)據(jù)圖像,每類數(shù)據(jù)數(shù)量均等便于模型訓(xùn)練,其中訓(xùn)練集分為8144 張圖像,測(cè)試集為8041 張圖像。對(duì)于改進(jìn)模型在遷移學(xué)習(xí)基礎(chǔ)上先用訓(xùn)練集微調(diào)模型參數(shù),再使用測(cè)試集檢驗(yàn)?zāi)P偷姆诸悳?zhǔn)確性。
改進(jìn)模型的兩個(gè)特征提取分支的輸入數(shù)據(jù)大小為224×224,為保證后續(xù)雙線性池化層的正常處理兩個(gè)分支輸出的特征圖通道數(shù)維度要保持一致。因此特征提取模塊中VGG-16 網(wǎng)絡(luò)輸出的特征圖維度為7×7×512,ResNet-50 模型輸出的特征圖維度為28×28×512。
實(shí)驗(yàn)利用Stanford Cars 車輛數(shù)據(jù)集對(duì)模型進(jìn)行訓(xùn)練和測(cè)試,其準(zhǔn)確率與迭代次數(shù)的關(guān)系如圖4 所示,從圖中可以看出訓(xùn)練集的準(zhǔn)確率曲線呈現(xiàn)上升趨勢(shì)最終達(dá)到96.362%,測(cè)試集的準(zhǔn)確率達(dá)到91.089%。
圖4 準(zhǔn)確率的變化趨勢(shì)
為了能更加直觀地體現(xiàn)該模型的分類準(zhǔn)確情況,將選取的6 種模型基于同一數(shù)據(jù)集進(jìn)行訓(xùn)練和測(cè)試,將測(cè)試結(jié)果與新模型進(jìn)行比對(duì),可發(fā)現(xiàn)該模型的準(zhǔn)確度較高。
表1 六種模型的準(zhǔn)確率結(jié)果
新模型基于Bilinear CNN 模型進(jìn)行改進(jìn),結(jié)合ResNet 網(wǎng)絡(luò)的殘差思想,并在特征提取模塊中嵌入AWFF 模塊和SENet Block 模塊,利用Stanford Cars 車輛數(shù)據(jù)集進(jìn)行訓(xùn)練。新模型能夠融合淺層與深層的特征充分獲取有效信息,并將注意力集中在關(guān)鍵特征通道上,使模型靈活應(yīng)對(duì)細(xì)粒度圖像分類差異較小的問(wèn)題,提高分類準(zhǔn)確性,有效加快訓(xùn)練速度。該模型因引入了多種模塊結(jié)構(gòu)導(dǎo)致參數(shù)量增長(zhǎng),盡管影響不大也需在日后研究中進(jìn)一步完善。