田佳鷺,鄧立國
(沈陽師范大學數(shù)學與系統(tǒng)科學學院,沈陽110034)
本文中的改進方法主要針對細粒度圖像分類任務,細粒度是指在粗粒度基礎之上進行更為細致的類內劃分,對象間的區(qū)分差異較小,任務難度較大。經典雙線性卷積神經網(wǎng)絡的提出,使得分類的準確性已達到很好的效果。但由于模型關注的特征過多缺乏重點,其次層次結構較深,模型訓練效率低。改進模型針對這些問題進行完善,在Bilinear CNN 基礎之上選擇VGG-16 的前5 個卷積塊,以及ResNet-50 的前7 個卷積塊作為特征提取器以提高訓練效率;并在特征提取器中分別嵌入AWFF 模塊和SENet Block 模塊,將特征提取的重心放在關鍵特征上;接著利用雙線性池化操作完成后續(xù)的分類任務。新模型即改善了分類的準確性,又提升了訓練速度,結構性能也較為穩(wěn)定。
雙線性模型在細粒度圖像分類任務上取得了極大成功,在細粒度分類問題的處理上具有較高準確性,可將該網(wǎng)絡模型看作為一個四元函數(shù)[1]:

公式中,fA,fB為特征提取函數(shù),ρ 為池化函數(shù),S是分類函數(shù)。特征提取函數(shù)f 相當于一種映射關系:

即將圖像γ 上某一位置l 映射到S×T 空間的過程,其中S 代表空間維度,T 則代表特征圖的通道維數(shù)。雙線性池化層是Bilinear CNN 的重要之處[2],將兩個特征提取分支輸出的特征圖中相應位置的特征進行外積運算:

函數(shù)bilinear 表示通過外積操作生成高維雙線性特征矩陣的融合過程,接下來利用池化函數(shù)ρ 進一步得到關于圖像的全局特征描述算子[3]。通過對雙線性特征中每對相應的雙線性值,進行聚合運算得到關于整體的特征描述,得到雙線性特征向量Bilinear CNN:

將池化得到的雙線性特征向量XC,運用開方運算得到向量YC,并利用l2歸一化操作得到最終規(guī)范的雙線性特征向量zc:

新模型的改進之處在于,對于雙線性網(wǎng)絡的兩個特征提取分支,一個基于層數(shù)較深的VGG-16 網(wǎng)絡模型中前五個卷積模塊,另一個則基于具有殘差思想的ResNet-50 網(wǎng)絡模型的前七個卷積模塊[4]。借助殘差思想其優(yōu)勢在于通過對細微殘差的學習代替對原始特征的學習,減輕模型學習負擔有助于提升模型的訓練速度。此外,借助直連思想幫助模型保留更多的有效信息,防止模型由于層數(shù)過多導致梯度彌散、爆炸等現(xiàn)象的發(fā)生。通過兩種模型提取特征角度的不同、信息種類的不同來幫助新模型獲取更加全面的特征信息,利于模型的學習與訓練。
當前所使用的大部分模型都以卷積模塊輸出的最后一個特征圖為主,該特征圖作為深層特征的典型代表包含著大量的重要特征信息。但不能因此忽略淺層特征信息的重要性,淺層信息中通常包含一些關于對象位置的信息等,有助于模型快速定位并提取特征,因此淺層中的特征信息對模型訓練有一定作用其重要程度不可小覷。新模型在特征提取模塊中引用AWFF 模塊,實現(xiàn)將淺層特征與深層特征以自適應的方式充分融合[5]。
AWFF 模塊主要由特征提取模塊、加權模塊及融合模塊三個部分組成。所謂自適應學習是指模型能夠以一定的學習方式,結合特征的重要程度自動獲取相應權重。AWFF 方法實現(xiàn)過程如下:
(1)特征提取模塊:
該過程以第一個卷積模塊的輸出特征圖為例,也可將其推廣至多個淺層特征與深層特征的融合。設第一層淺層特征為x1∈RC1×H1×W1,其中C1為通道數(shù)、H1為長度、W1為寬度。對特征圖進行池化操作,使得模型獲取淺層特征中最重要、最具有代表性的信息,并減少冗余參數(shù)數(shù)量。池化層過濾器的大小為kh×kw,步長為s。這里深層特征是指VGG-16 中最后一個卷積模塊輸出的特征圖xn,xn可不經過處理直接輸出[6]。接著需要調整提取后特征圖的維度,為進行下一步操作做好準備。池化加權操作過程公式如下:

(2)加權模塊
加權模塊的作用是自動分配給不同層級中的特征不同的權重值,使每一層級獲得與自身重要程度相匹配的權重。權值需要通過模型學習獲得,為減輕模型整體的訓練負擔,每一層級共享同一權重值,即模型在自適應過程中只需為每個層級分配一個參數(shù)值即可,有效提高訓練速度。該過程先利用卷積操作實現(xiàn)特征加權,并且權重會進行自適應的調整,接著將輸出值的維度進行調整使其與深層特征xn的維度相匹配,便于后續(xù)特征融合操作[7]。卷積加權過程公式如下:

(3)融合模塊

最后采用concat 拼接方法,將所有加權的淺層特征與深層特征依次融合相連,此時特征通道維度相互串聯(lián),通過融合函數(shù)fC得到最終的特征X。操作過程如下:在融合了AWFF 模塊的VGG-16 特征提取模塊中,將VGG-16 中前兩個模塊的輸出淺層特征圖與最后一個模塊輸出深層特征圖進行加權融合,因此將公式(12)根據(jù)新的模型推廣為:

SENet Block(Squeeze-and-Excitation Networks)被稱為特征重標定模塊,該模塊由Momenta 公司建立,并借助該方法在最后一屆2017 的ImageNet 比賽中獲得圖像識別類的冠軍。該模塊的主要作用是讓模型能獲取每個特征通道的重要性,根據(jù)重要性對相應的特征進行增強或抑制[8]。該模塊的整體結構如圖1 所示。

圖1 SENet Block
具體操作過程如下:
(1)SENet 模塊一般嵌入在一個完整的卷積過程之后,即通過卷積得到包含C 個特征圖的集合U,公式如下;

其中,F(xiàn)sq代表Squeeze 操作的特征圖壓縮過程,zc代表其中一個壓縮后的實數(shù)值,W,H是空間U 的寬度和高度。
(3)Excitation 操作:該激勵過程使模型學習各個特征圖通道之間的相關性,并結合重要程度為每個通道生成一個權值,公式如下:

(4)Reweight 操作:將Excitation 操作過程中產生的重要性權重以乘法的形式添加到相應特征上,突顯出通道之間的重要性程度,實現(xiàn)對原始二維特征圖中各個通道的重要性標定任務:

公式中Fscale函數(shù)代表加權過程,sc是代表對應通道重要性的權值,是特征重標定即加權后的特征圖。
在新的模型中將SENet Block 模塊嵌入到第二個特征提取分支中,即ResNet 的七個殘差卷積塊都被嵌入SENet Block 模塊[11],嵌入方法如圖2 所示。

圖2 SENet Block模塊在ResNet中的嵌入
先在ResNet 的每個殘差塊中加入全局平均池化層進行特征壓縮,將特征圖維度從H×W×C壓縮到1×1×C。下面是最重要的Excitation 操作,先利用一層FC 作為降維層,將特征圖通道數(shù)降為,這里設r為16,接著用ReLU 激活函數(shù)保證特征的非線性性,接著再利用一層FC 作為升維層,將通道數(shù)恢復到原來的C 保證特征的完整性,后面結合Sigmoid 函數(shù)得到值在0~1 之間的權重,最終通過Scale 模塊完成特征加權操作[12]。可以發(fā)現(xiàn)該過程連續(xù)用到兩層FC 層,權重s就是借助這些全連接層和非線性層學習得到,利用兩個串聯(lián)的FC 層融合通道之間的相關性信息,并增加特征的非線性性,有效減少參數(shù)量提高計算效率。
新的模型以雙線性網(wǎng)絡(Bilinear CNN)為基礎,對原始的兩個特征提取分支進行改進。其中一個分支選取VGG-16 的前5 個卷積塊作為特征提取器,去掉VGG-16 模型最后的全連接層和Softmax 層,并在卷積模塊的基礎上嵌入AWFF 模塊,將前兩層淺層特征與最后的深層特征相融合,充分保留有用信息保證特征提取的全面性。另一個分支則以ResNet-50 模型中前7 個卷積塊用于提取特征,并結合SENet Block 模塊關注特征通道間的相關性,利用權重參數(shù)選擇重要特征而忽略不必要的特征,同時采用ResNet 模型的殘差思想來提升新模型的訓練速度。最后通過雙線性池化層計算得到Bilinear vector 向量,利用Softmax 實現(xiàn)細粒度圖像的分類目的。此外,AWFF 及SENet Block 作為兩種子模塊,也可靈活地嵌入到其它基礎網(wǎng)絡當中[13]。
新的模型通過對基礎特征提取網(wǎng)絡的替換,以及兩種嵌入模塊的運用,使其更加高效地提取特征,加快模型的訓練速度,獲取的特征信息更加全面具體,利于細粒度圖像分類任務準確度的提升。盡管這些模塊的嵌入會使得模型的參數(shù)量增加,但在其分類效果面前,參數(shù)量增加所帶來的影響幾乎微乎其微。新的模型整體結構如圖3 所示。

圖3 新模型的整體結構圖
該模型結合遷移學習方法訓練模型,利用模型之前已經訓練好的一部分參數(shù),在此基礎上訓練新改進的模型,即模型將先前學到的經驗應用到新任務的學習中,通過該方式可極大節(jié)省時間提高訓練效率。該模型基于Python 與TensorFlow 實現(xiàn),利用TensorFlow中的機器學習框架構造所需要的模型結構,并在訓練過程中使用GPU 提升訓練速度。
該實驗選取的數(shù)據(jù)集為斯坦福大學整理得汽車數(shù)據(jù)集Stanford Cars,該數(shù)據(jù)集包含196 種不同車輛,共16185 張車輛數(shù)據(jù)圖像,每類數(shù)據(jù)數(shù)量均等便于模型訓練,其中訓練集分為8144 張圖像,測試集為8041 張圖像。對于改進模型在遷移學習基礎上先用訓練集微調模型參數(shù),再使用測試集檢驗模型的分類準確性。
改進模型的兩個特征提取分支的輸入數(shù)據(jù)大小為224×224,為保證后續(xù)雙線性池化層的正常處理兩個分支輸出的特征圖通道數(shù)維度要保持一致。因此特征提取模塊中VGG-16 網(wǎng)絡輸出的特征圖維度為7×7×512,ResNet-50 模型輸出的特征圖維度為28×28×512。
實驗利用Stanford Cars 車輛數(shù)據(jù)集對模型進行訓練和測試,其準確率與迭代次數(shù)的關系如圖4 所示,從圖中可以看出訓練集的準確率曲線呈現(xiàn)上升趨勢最終達到96.362%,測試集的準確率達到91.089%。

圖4 準確率的變化趨勢
為了能更加直觀地體現(xiàn)該模型的分類準確情況,將選取的6 種模型基于同一數(shù)據(jù)集進行訓練和測試,將測試結果與新模型進行比對,可發(fā)現(xiàn)該模型的準確度較高。

表1 六種模型的準確率結果
新模型基于Bilinear CNN 模型進行改進,結合ResNet 網(wǎng)絡的殘差思想,并在特征提取模塊中嵌入AWFF 模塊和SENet Block 模塊,利用Stanford Cars 車輛數(shù)據(jù)集進行訓練。新模型能夠融合淺層與深層的特征充分獲取有效信息,并將注意力集中在關鍵特征通道上,使模型靈活應對細粒度圖像分類差異較小的問題,提高分類準確性,有效加快訓練速度。該模型因引入了多種模塊結構導致參數(shù)量增長,盡管影響不大也需在日后研究中進一步完善。