季思文,閆勝業,王 蒙
(1.南京信息工程大學 江蘇省大數據分析技術重點實驗室, 江蘇 南京 210044;2.南京信息工程大學 計算機軟件學院,江蘇 南京 210044)
圖像分類是模式識別以及計算機視覺領域一個重要的研究課題,提升圖像分類性能的關鍵有兩點:①提取優秀的特征;②有效利用特征。主流的研究方向在于如何提取更好的特征來實現較好的圖像分類效果。傳統的圖像特征提取方法有:HOG特征[1]、LBP特征[2]、Haar-like特征[3]等。目前,深度神經網絡提取特征成為計算機視覺領域的一個研究熱門,眾多優秀的神經網絡模型被提出和優化,利用神經網絡提出的特征也更加優秀。Y.LeCun等提出了LeNet神經網絡模型[4],該模型包含兩個卷積層,3個全連接層主要設計應用于銀行的手寫數字識別系統,是早期卷積神經網絡的代表。AlexNet[5]網絡結構取得了ImageNet[6]分類大賽的冠軍,該網絡包含5個卷積層和3個全連接層。K Simonyan等提出了VGG網絡[7],不同于8層網絡的AlexNet,VGG-Net通常有16-19層的網絡,并且每一層的卷積核大小3*3,最大池化層大小為2*2,其減少了卷積層的參數并加深網絡的深度來提高網絡性能,并對網絡進行預訓練加速網絡的收斂。GoogLenet[8-10]獲得了ILSVRC-2013的冠軍,提出了Inception module的概念,旨在強化特征提取模塊的性能。隨著網絡寬度和深度的增加,神經網絡能夠提取出越來越優秀的特征,圖像分類的性能也在穩步提升。圖像在經過卷積層、池化層進行特征提取以后,能夠有效地保留特征空間上的結構信息,該特征也有助于圖像的分類。上文提到的深度網絡模型通過全連接層進行圖像的分類。把前幾層網絡提取的特征拉成向量送入全連接層中進行后續的分類工作,這步工作破壞了原始特征空間上的結構信息,因此不利于圖像分類性能的提升。
針對上述原因,本文提出了一種基于雙向神經網絡的圖像分類算法:用Two-Directional層代替原先網絡中的全連接層,通過變換矩陣L和R對網絡前幾層提取的特征進行維度變換處理,并送入SoftMax層中進行分類。Two-Directional層能有效的保留原始特征的空間結構信息,從而提升網絡的分類性能。本文通過CaffeNet網絡模型和vgg-16網絡模型來驗證Two-Directional層對圖像分類性能的影響,并且以Caltech-256和Oxford Flower-102數據集為基礎設計實驗進行驗證。
為了減少特征空間結構信息的損失并且提升整體網絡分類的性能,本文受2D-PCA[11]、2D-LDA[12]算法的啟發,提出了一種基于雙向神經網絡的圖像分類算法。使用Two-Directional層代替原始網絡模型中的全連接層,并通過SoftMax層對圖像進行最終的分類。本文以CaffeNet網絡模型為基礎,對比介紹本文提出的雙向神經網絡框架。
深度神經網絡因為在圖像分類領域具有良好的表現而被廣泛的應用,其中比較經典的有CaffeNet網絡模型。它包含5層卷積層,兩層全連接層以及一層SoftMax輸出層。網絡模型通過前幾層的卷積層能夠學習低層次的特征,并且通過后面的卷積層把前面低層次的特征轉換層高層次的特征能夠學習。CaffeNet結構如圖1所示。

圖1 CaffeNet網絡結構
CaffeNet包含5個卷積層、3個下采樣層、3個全連接層、2個LRN層和2個隨機采樣層,并且采用SoftMax作為分類器。CaffeNet網絡模型把特征拉成向量送入全連接層中進行分類,使得原始特征從原先的矩陣變成了向量,因此不能有效利用特征中的空間結構信息,也因此限制了模型的分類性能的提升。
本文提出的雙向神經網絡框架旨在保證網絡的深度和寬度不變的前提下,有效利用特征空間上的結構信息,從而提升網絡的分類性能。通過變換矩陣L和R對卷積層提取的特征進行維度變換處理,然后使用SoftMax進行輸出分類,基于CaffeNet的雙向神經網絡如圖2所示。
如圖2所示,基于CaffeNet的雙向神經網絡用新的Two-directional層代替原始網絡中的全連接層。以CaffeNet網絡模型為基礎,我們設計了兩層Two-directional層并且通過SoftMax進行分類,其中N代表訓練樣本的類型數目。我們用單位矩陣來初始化權重矩陣L和R,并進行網絡的迭代更新。
傳統的深度網絡框架通過全連接層來處理特征,造成特征空間結構信息的損失。為了有效利用特征空間結構信息,使用Two-Directional層代替原始網絡中的全連接層,也提出了一種擴展BP算法,用于求解雙向神經網絡中的特征學習問題。

圖2 基于CaffeNet的雙向神經網絡結構
Two-Directional層受2D-LDA算法的啟發:2D-LDA的定義參見文獻[12],本質是尋找使得原先高維度的樣本空間在低維度空間上的投影,通過變換矩陣L和R對深度網絡提取的特征進行變換,并送入SoftMax輸出層進行分類,下面將詳細介紹Two-Directional層的前向傳播與反向傳播。
X=f(U)=f(W*X+b)
(1)
(2)

X=f(U)=f(vec(T))=f(vec(LXR))=
f((RT?L)vec(X))
(3)
式中:f(·)表示激活函數,本文采用的激活函數為RELU激活函數,RELU激活函數為
f(x)=max(0,x)
(4)
式中:W為第層的權重,通過每次迭代更新變換矩陣L和R,再利用式(3),計算層的輸出X。式(4)中的RT?L就相當于全連接層中的權重矩陣W。通過Two-Directional層對深度網絡前面幾層提取的特征進行降維處理,保存了原始特征中的空間結構信息,有利于圖像最終的分類。
全連接層的反向傳播需要計算權重矩陣W在每一次迭代時的更新。對于Two-Directional層,則需要對變換矩陣L和R的參數進行更新
Lt+1=Lt+ΔL
(5)
Rt+1=Rt+ΔR
(6)

我們定義變換矩陣L和R為
(7)
(8)
那么中間矩陣W為

(9)
因此W的維度為nm*ba,根據鏈式法則可以計算出誤差對變換矩陣L和R的偏導數

(10)

(11)
我們定義輸出層的誤差為
(12)
式中:c為樣本總類別個數,tk為樣本的目標輸出,yk為網絡的輸出。那么輸出層的敏感度為
δoutput=f′(Uoutput)°(Y-T)
(13)
進而我們能夠計算Two-Directional層和其前一層的敏感度
δ=δ°f′(U)
(14)
δ=δ1°f′(U)=
(RT?L)δ°f′(U)
(15)
那么可以計算出誤差對整個權重矩陣W的偏導數
(16)
把式(16)帶入式(10)和式(11)可以算出每次迭代的ΔL和ΔR

(17)

(18)
由此可得Two-Direction層在反向傳播中對變換矩陣L和R在每次迭代時的更新
(19)
(20)
本文以CaffeNet網絡為基礎,對比介紹了基于雙向神經網絡的圖像分類算法。保證CaffeNet網絡模型特征提取層不變,對原始網絡中的全連接層進行改進。受2D-LDA算法啟發,在模型每次迭代的過程中計算出變換矩陣L和R,對原始特征進行維度變換,然后送入SoftMax層進行分類輸出。本文提出的Two-Directional層能夠有效利用特征空間上的結構信息,有效地提升了網絡分類的性能。我們同樣也對vgg-16網絡結構進行了改進,記改進后的網絡分別為2D-caffenet和2D-vgg16,并且在Caltech256和Oxford Flower-102數據集上進行了圖像分類性能對比實驗,實驗內容如下文所示。
本文以雙向神經網絡框架為基礎,對CaffeNet和vgg-16深度網絡模型進行重新設計,并且在Caltech256和Oxford Flower-102數據集上進行了圖像分類性能對比實驗。Zeiler和Fergus[13]證明了利用ImageNet預訓練模型在目標數據集上微調網絡有利于圖像分類性能的提升。Caffe有眾多優秀的深度神經網絡框架,本文使用在ImageNet上的預訓練模型初始化神經網絡,并在目標數據集上進行遷移學習,訓練出適應于目標數據集的模型。而對于雙向神經網絡,我們使用預訓練模型初始化特征提取層的權重參數,并使用目標數據集對整個網絡微調。實驗的硬件設備為GeForce GTX TITAN X,Intel(R)Core(TM)i7-6700 CPU @3,40 GHz 3.40 GHz,系統為ubuntu16.04,框架為caffe。本文使用圖像分類準確度(acc)和類別平均精度(mAP)兩項評估標準對網絡分類性能進行評估。
3.1.1 實驗數據和實驗設置
Caltech-256數據集由256種對象類別和背景圖像組成,共計30 607張圖像,其中每一類別包含80-827張圖像不等。我們從每個類別中選取60張圖片作為訓練集(共15 420張圖像),其余的15 187張圖像作為測試集。整個實驗過程共計10次,每次隨機選取訓練集的樣本,訓練多個模型進行測試,最終的實驗結果取10次實驗的平均值。
3.1.2 實驗結果及分析
本文使用改進后的2D-CaffeNet和2D-vgg16網絡與原始的CaffeNet和vgg-16網絡在Caltech-256數據集上進行圖像分類性能對比實驗。我們設定網絡的初始學習率為0.0001,Two-Directional層的學習率為特征提取層的10倍。每15 000次迭代下降10%,共40 000次迭代,同時我們以單位矩陣來初始化變換矩陣L和R,實驗結果見表1。

表1 Caltech-256數據集實驗結果
實驗結果表明,本文提出的雙向神經網絡算法能夠有效地提升原始網絡的分類性能。經過10次取樣實驗,其中CaffeNet模型的準確率提升了1.03%,每一類別的平均準確率提升了1.17%。而vgg-16網絡模型的準確率在原來的基礎上提升了2.06%,每一類別的平均準確率提升了1.68%。
3.2.1 實驗數據和實驗設置
與Caltech-256數據集不同,Oxford Flower-102數據集屬于細粒度的數據集。Oxford Flower-102 包含102類的花,每一類花的數量在40-258張圖片之間,圖片總數為8189。我們每一類取20張圖片作為訓練集(共2040張),剩余的6149張圖片作為測試集。與Caltech-256數據集一樣,我們也是多次抽樣訓練模型,并進行交叉驗證,最終實驗結果取多次測試結果的平均值。
3.2.2 實驗結果及分析
為了驗證雙向神經網絡在細粒度數據集上對分類性能的影響。使用改進后的2D-CaffeNet和2D-vgg16網絡與原始的CaffeNet和vgg-16網絡在Oxford Flower-102數據集上進行對比實驗。設定網絡的初始學習率為0.0001,Two-Directional層的學習率為特征提取層的10倍。每15 000次迭代下降10%,共40 000次迭代并以單位矩陣來初始化變換矩陣L和R,實驗結果見表2。

表2 Oxford Flower-102數據集實驗結果
實驗結果表明,本文提出的雙向神經網絡算法能有效的提升細粒度數據集的分類性能,其中CaffeNet網絡模型分類準確率在原來的基礎上提升了2.11%,每一類別平均準確率提升了1.96%。vgg-16網絡模型的分類準確率在原本來的基礎上提升了3.53%,每一類別平均準確率提升了3.56%。
由此可見,本文提出的雙向神經網絡算法能有效的提升圖像分類的性能。通過imagenet預訓練模型在目標數據集上進行微調,能夠快速有效地訓練出性能優秀的圖像分類模型。
本文針對如何減少特征空間信息的損失,提出了一種基于雙向神經網絡圖像分類算法。使用Two-Directional層代替原始網絡中的全連接層,通過變換矩陣L和R對網絡前幾層提取的特征進行降維處理,然后送入SoftMax層進行分類。本文分別以CaffeNet,vgg-16模型為例在Caltech256和Oxford Flower-102數據集上進行對比實驗,實驗結果表明,本文提出的雙向神經網絡框架能夠有效的提升原始網絡的分類性能。將來我們會使用更大規模的數據集,并且使用更多的基礎網絡來驗證雙向神經網絡的性能與不足之處。同時尋求更加有效的特征處理方法,在保持網絡深度與寬度的前提下進一步提升網絡分類的性能。