肖遙,蔣琦
(西華大學計算機與軟件工程學院,成都 610039)
圖像識別是計算機視覺和模式識別技術的基礎,其任務是利用從大量圖像上學習到的先驗知識判別給定目標的屬性。近年來,隨著計算機硬件性能的提升,卷積神經網絡(Convolutional Neural Network,CNN)在圖像識別領域受到越來越多的關注[1-3]。然而傳統的深度卷積模型在訓練時,只是簡單的利用了樣本的標簽信息,忽視了使用提取到的深度特征對卷積網絡的訓練進行更嚴格的約束。針對這一不足,文獻[4]提出了一種支持向量機(Support Vector Machine,SVM)驅動的卷積深度模型。其不僅結合了深度卷積網絡強大的特征提取能力與SVM 出色的分類能力,同時將SVM 目標函數作為指導深度卷積網絡學習的能量函數,在深度模型的學習過程中提供了更出色的正則化效果。模型訓練時,SVM 目標函數能夠反映出不同類別的樣本特征間的間隔,迫使卷積網絡學習具有更大類間間隔的特征,從而增強CNN 的特征提取能力。然而,文獻[4]中忽視了SVM 模型本身存在的不足,SVM 目標函數中只利用的類間間隔,沒有考慮到特征空間中圖像特征的分布情況[5]。而SVM 驅動的CNN 模型將不可避免的繼承這一問題,限制了其泛化能力的進一步提高。
針對上述不足,本文提出了一種最小內類方差支持向量機(Minimum Class Variance Support Vector Machines,MCVSVM)驅動的 CNN 模型。MCVSVM 作為SVM 的改進,其最大的優勢在于引入了用于描述特征分布信息的類內散度矩陣,得益于此,基于MCVSVM的CNN 在訓練過程中能夠額外的關注總體圖像特征的分布情況,進而迫使CNN 提取到質量更高的圖像特征。
作為一種大間隔分類器,SVM 具有出色的泛化性能。其核心理論是在特征空間中學習一個決策面,使得正負樣本到該決策面都具有最大間隔。然而SVM模型只關注了訓練樣本中少數的支持向量點,并沒有利用到總體樣本的分布信息,針對這一不足,借鑒Fisher 線性鑒別理論[6],文獻[5]提出了 MCVSVM 模型。其模型定義如下:

并且:

其中w是特征空間中分類超平面的法向量,b表示偏置項,λ為懲罰系數,ξi是引入的對應訓練樣本xi的松弛變量,為訓練樣本的標簽,Sw是類內散度矩陣,用于描述訓練樣本的分布情況,C+與C-分別表示屬于正類與負類的樣本的集合,則表示對應類別下訓練樣本的均值向量。顯然,不同于標準的SVM,MCVSVM 在構建決策超平面時不僅考慮了分類間隔,還通過引入類內散度矩陣的方式,進一步考慮了數據的分布信息,增強了模型的魯棒性與泛化性能。
傳統的CNN 模型中往往采用交叉熵作為能量函數指導模型的訓練,然而交叉熵函數中只考慮了模型的經驗風險,這限制了深度模型泛化能量的提高。針對這一不足,文獻[4]結合大間隔思想,提出了一種SVM驅動的CNN 模型,其能量函數定義如下:

文獻[4]中采用CNN 作為特征提取器,并通過SVM進行分類的方案在識別任務中表現出了較強的泛化性能。在深度模型的更新過程中,基于SVM 的卷積深度模型將標準的SVM 目標函數作為損失函數指導CNN的學習。然而,受限于SVM 模型中的不足,基于SVM的卷積深度模型在訓練時無法利用總體樣本特征的分布信息,這將極大的限制CNN 特征提取能力的提高。
針對上述不足,本文提出了一種基于MCVSVM 的深度卷積模型。MCVSVM 中引入的類內散度矩陣以描述樣本特征的分布信息,因此,所提模型采用MCVSVM目標函數作為CNN 更新時的損失函數,使得深度卷積模型能夠充分的利用樣本的分布信息。給定一組包含K個類別的訓練樣本,為了描述其分布信息,首先定義類內散度矩陣Sw如下:

并且:

其中Ck表示屬于類別k的樣本特征的集合,nk表示屬于類別k的訓練樣本的數量。得到類內散度矩陣后,將其代入SVM 目標函數中得到本文提出的能量函數如下:

其中λ為懲罰系數,其中wk表示第k個類別的分類超平面的法向量,bk表示其對應的偏置項,為訓練樣本的標簽,當xi屬于第k類時=+1 ,否則。式(6)通過在目標函數中增加類內散度矩陣,將簡單的計算分類間隔的歐氏距離,巧妙地轉變為計算更有效的馬氏距離[7]。得益于此,在深度卷積網絡的訓練過程中,包含了樣本分布信息的損失函數將迫使CNN 更多的關注所有提取到的樣本特征的分布情況,使得樣本特征能夠更多地反映自身的類別信息,這顯然是有利于深度模型泛化能力的提高的。
圖1 概述了基于MCVSVM 的深度卷積模型。顯然,與傳統的深度卷積模型不同,所提模型在全鏈接層后額外計算了樣本特征的類內散度矩陣,用于計算模型的能量函數值。在模型的訓練過程中,類內散度矩陣的引入將引導CNN 更多的關注提取特征的分布情況,最終提取到更具鑒別性的樣本特征。
本節的目的在于通過實驗的方式驗證MCVSVM驅動的CNN 模型的有效性,分析了懲罰系數對模型性能的影響;之后在五個大規模數據集上驗證所提模型在識別準確率上的有效性。本文所有實驗均在NVIDIA TITAN X(Pascal)GPU 以及 Intel Xeon W-2125 CPU環境中進行。

圖1 MCVSVM驅動的卷積深度模型
為了獲取一個合適的λ的值,使得模型取得最佳的泛化性能,本節在SVHN[15]數據集上對ResNet-18[9]網絡結構下多個不同的λ進行了仿真實驗。實驗時為了充分分析懲罰系數λ對模型性能的影響,設置。此外,采用 Minibatch 策略[11],隨機取250 張圖片作為模型每一輪的訓練圖像。設定最大的訓練次數t=2000,借鑒文獻[12],采用動態的學習率:當訓練次數t<500 時,設置學習率σ=10-3,500 ≤t≤1500 時 ,設 置σ=10-4,否 則σ=10-5。圖2-3 報告了不同懲罰系數λ下識別率的增長曲線以及模型在SVHN 數據集上取得的最大識別準確率。從實驗結果中可以明顯看出,在λ=1 時模型取得了最高的識別率,而在λ較小時模型難以取得較好的結果。因此規定本文實驗中的懲罰系數λ=1。

圖2 不同懲罰系數λ 下模型識別率增長曲線

圖3 不同懲罰系數λ 下模型最大識別率
本節基于對 AlexNet[10]、VGGNet-13[1]和 ResNet-18三種網絡結構,比較了所提模型與交叉熵驅動的CNN和SVM 驅動的CNN 在5 個大規模數據集上的識別準確率。使用的數據集包含一個人臉表情數據集FER2013[13],兩個數字數據集 MINIST[14]和 SVHN[15]以及兩個搜集于真實世界的復雜圖像數據集CIFAR-10 和CIFAR-100[8]。實驗時,MCVCVM 引導的 CNN 中的參數設置均與3.1 小節中使用的相同。交叉熵驅動的CNN 模型與SVM 驅動的CNN 模型中的參數則按照其論文中的說明進行設置。采用Top-1 識別率作為評價模型性能的量化指標,其表示預測響應最大的類別為真實類別的概率。

表1 各深度卷積模型在數據集上的識別率比較
表1 展示了各網絡結構下所比較的四種CNN 模型在各數據集上Top-1 識別率。其中xxx-Cross、xxx-SVM、以及xxx-MCVSVM 分別表示交叉熵、SVM 以及MCVSVM 驅動的CNN 模型。可以看出,MCVSVM 引導的CNN 模型總是能取得更高的識別準確率。相比于具有第二好表現的SVM 驅動的CNN 模型,MCVSVM 驅動的 CNN 在 MNIST、SVHN、FER2013、CIFAR-10 以及CIFAR-100 數據集上的識別率分別平均提升了0.07%、0.3%、1.94%、3.37%和4.44%。實驗結果表明,本文提出的算法能夠有效增強深度模型的識別準確率,且具有較強的泛化性能。
針對SVM 驅動的CNN 模型在訓練時沒有考慮圖像特征分布信息這一不足,本文提出了一種MCVSVM驅動的CNN 模型。所提模型中采用MCVSVM 目標函數作為指導CNN 訓練的能量函數,得益于MCVSVM的特性,CNN 在訓練時不僅考慮了異類樣本特征間的間隔,同時能夠利用樣本的分布信息得到質量更高的圖像特征。在多個不同模式的公開數據集上的仿真實驗證明,相對于交叉熵引導的CNN,SVM 引導的CNN以及中心損失引導的CNN,MCVSVM 驅動的CNN 模型能夠提取到更具鑒別性的圖像特征,同時在識別應用中具有更強的泛化性能。由于在計算類內散度矩陣時存在較大的計算開銷,因此未來的工作將繼續對算法進行優化,以加快CNN 模型的訓練速度。