楊斌,李成華,江小平,石鴻凌
(中南民族大學 電子信息工程學院,智能無線通信湖北省重點實驗室,武漢430074)
基于具有數(shù)百萬個參數(shù)的大型卷積神經(jīng)網(wǎng)絡的深度學習算法在圖像分類中表現(xiàn)出出色的性能[1-4].它可以自動從原始數(shù)據(jù)中學習魯棒的特征,并共同優(yōu)化特征表示和分類器以獲得最佳結果[5]. 隨著大數(shù)據(jù)時代的到來和計算能力的發(fā)展,神經(jīng)網(wǎng)絡的結構已從淺層網(wǎng)絡演變?yōu)樯顚泳W(wǎng)絡. 通過增加深度,神經(jīng)網(wǎng)絡可以獲得近似的目標函數(shù)和更好的特征表示. 但是,這種方式增加了模型的復雜性,并且會遇到過擬合的問題.因此,學者們提出了許多正則化技術來克服過擬合問題,例如L1正則化[6]、L2正則化[7]和Dropout[8].
L1和L2正則化分別通過L1和L2范數(shù)限制權重的增長來降低網(wǎng)絡的復雜性,因為通常認為參數(shù)值較小的模型相對簡單,可以緩解過擬合問題.Dropout通過在每輪迭代訓練中隨機丟棄神經(jīng)元之間的連接來訓練不同的網(wǎng)絡,最終融合所有模型來預測結果.這三種方法在一定程度上提升了模型的準確率.但是,L1,L2正則化,Dropou以及其他正則化方法都是對神經(jīng)網(wǎng)絡的權重進行約束,而對神經(jīng)網(wǎng)絡的輸出分布的正則化技術在目前很大程度上尚未被探索[9,10].標簽平滑方法[11]是一種輸出正則化器的具體實現(xiàn),其實驗結果表明擬合平滑標簽是增加模型泛化能力的一種有效的方法,但存在缺陷,即該方法需要根據(jù)經(jīng)驗手工設置平滑系數(shù),需要多次實驗才能找到最佳的平滑系數(shù).
本文提出了一種新的標簽平滑正則化損失函數(shù),稱為得分聚類損失函數(shù),以緩解由標簽邊緣化效應引起的過擬合問題.具體來說,得分聚類損失會自動從數(shù)據(jù)集中學習每種類別的得分中心,并最小化樣本得分與其相應的類別得分中心之間的距離.在傳統(tǒng)的標簽平滑方法[11]中,標簽平滑的程度需要根據(jù)經(jīng)驗來手動設置超參數(shù),而本文的方法可以自動從數(shù)據(jù)中學習一個最佳的標簽,這個標簽即為得分中心通過softmax函數(shù)歸一化后的概率向量.得分聚類損失函數(shù)是可導的,能夠通過梯度反向傳播算法和softmax損失函數(shù)聯(lián)合優(yōu)化網(wǎng)絡模型,有效緩解了過擬合問題,進一步提高圖像分類任務的準確率.
對于分類任務,網(wǎng)絡模型通過使用“softmax”函數(shù)對輸出得分進行歸一化,從而產(chǎn)生分類概率:
(1)
其中zk是網(wǎng)絡前向傳播得到的得分.
在圖像分類任務中,經(jīng)常使用交叉熵損失函數(shù)來衡量預測概率和真實標簽的差異:
(2)
交叉熵損失對得分zk是可導的.導數(shù)如下:
(3)
在訓練網(wǎng)絡進行圖像分類時,我們需要最小化交叉熵損失,這等效于最大化正確標簽的對數(shù)概率log(p(k|x)).這種方式只考慮正確標簽位置的損失,而不考慮其他標簽位置的損失,會使得模型過于關注增大預測正確標簽的概率,而不關注減少預測錯誤標簽的概率,我們稱這種現(xiàn)象為標簽邊緣化效應.最后導致的結果是模型在自己的訓練集上擬合效果非常良好,而在測試集結果表現(xiàn)不好,即過擬合,也就是模型過于自信而導致泛化能力差[11].
針對標簽邊緣化效應引起的過擬合問題,本文提出了得分聚類損失函數(shù),該函數(shù)為每一類樣本學習一個得分中心,并使訓練樣本前向傳播得到的得分向量向得分中心聚攏.得分聚類損失限制了預測正確標簽位置得分的無限增長,使模型能夠學到一個較為平滑的標簽,減弱了模型的自信,增強了模型的泛化能力,從而提升了模型的準確率.得分中心通過softmax歸一化后的概率,即為學到的平滑標簽.
softmax損失函數(shù)表示如下:
(4)
其中Syi是第i個樣本中屬于yi類的得分,m為一批訓練數(shù)據(jù)的個數(shù).
得分聚類損失函數(shù)LSC定義為:
(5)
其中Si是i個樣本的得分向量,SCyi是yi類的得分中心.SCyi的維度與Si相同,等于類別的個數(shù).
SCyi初始化為全零向量,在訓練過程中不斷更新.yi∈{0,1,2,……j},j為類別取值.公式(5)將得分和得分中心的距離做了約束,減弱了模型過于關注增大正確標簽的得分的能力.
SCj更新規(guī)則如下:
(6)
SCt+1j=SCtj-αΔSCj,
(7)
其中如果條件滿足,δ(條件)=1,否則為0.t為迭代步數(shù),α是得分中心的學習率,取值[0,1].公式(6)計算了一批訓練數(shù)據(jù)中每一類的得分和其得分中心的平均差距,公式(7)通過減小此平均差距來更新得分中心.
使用softmax損失和SC損失來聯(lián)合訓練網(wǎng)絡.最終的損失函數(shù)為:
Ltotal=Lsoftmax+λ*LSC=
(8)
其中λ用來平衡兩個損失函數(shù).當λ=0時,Ltotal退化為Lsoftmax,得分聚類損失失去了作用. 當λ太大時,softmax損失的效果將被忽略,這會導致訓練效果不佳.單純使用它們中的任何一個都不能改善網(wǎng)絡. 因此,將它們結合起來聯(lián)合訓練網(wǎng)絡是必要的.
在每輪迭代過程中,先通過公式(8)計算網(wǎng)絡的整體損失,并利用梯度下降法更新網(wǎng)絡權重參數(shù),然后通過公式(6)和公式(7)更新得分中心.通過迭代訓練,每一類的得分被約束到了得分中心附近,限制了預測正確標簽位置得分的無限增長,從而緩解了過擬合問題.
本文實驗中,分別在剛性物體和非剛性物體圖像數(shù)據(jù)集上對比了得分聚類損失、L2正則化、dropout和標簽平滑方法[11]的準確率.
標簽平滑方法[11]將原始的獨熱碼標簽做了平滑處理,處理方法如公式(9).
(9)
其中ε是平滑參數(shù).δk,y是Dirac函數(shù),當k=y時取值為1,否則為0.k為獨熱碼向量的維度,y為樣本的類別標簽.K為類別數(shù)目.如標簽[1,0],在ε取0.1時,標簽被平滑為[0.9,0.05].
L2正則化方法中,對權重進行了L2范數(shù)約束,抑制權重的增長來降低網(wǎng)絡的復雜性,以緩解過擬合的問題.Dropout通過在每輪迭代訓練中隨機丟棄一定比例神經(jīng)元之間的連接來訓練不同的網(wǎng)絡,以此方法達到緩解過擬合的目的.
在剛性物體圖像分類任務中,我們做了十分類和二分類的任務.對于十分類任務,我們使用了MNIST數(shù)字識別數(shù)據(jù)集中的60000訓練圖像和10000測試圖像.對于二分類任務,我們使用了CIFAR-10數(shù)據(jù)集中的飛機和汽車圖像,其中包括10k訓練圖像和2k測試圖像(此數(shù)據(jù)以下表示為CIFAR-2).之所以使用兩類數(shù)據(jù)而不是整個CIFAR-10數(shù)據(jù)集,是為了得到樣本得分的分布圖來方便地說明得分聚類損失的影響.對于非剛性物體圖像分類任務,我們使用了由袁非牛教授實驗室[12]建立的煙霧圖像數(shù)據(jù)集,該數(shù)據(jù)集包含用于訓練的8805個煙霧圖像和8511個非煙霧圖像,和用于測試的552個煙霧圖像和831個非煙霧圖像.數(shù)據(jù)集詳細情況見表1.
表1 本文與其他正則化方法準確率對比Tab.1 Comparisons with other regularization methods on accuracy
對于任務A,我們訓練了具有ReLu激活函數(shù)和含有512個節(jié)點的兩層隱藏層的全連接神經(jīng)網(wǎng)絡.
對于任務B和任務C,我們訓練了一個卷積神經(jīng)網(wǎng)絡,它由卷積層、批歸一化層、最大值池化層和全連接層組成,網(wǎng)絡模型結構見圖1.
圖1 網(wǎng)絡模型結構Fig.1 The structure of model
本實驗的軟件訓練環(huán)境為:Windows系統(tǒng),Python3.5,Tensorflow1.4.硬件環(huán)境為: Intel Core I7 CPU 3.30GHz,4-GB GPU(Nvidia GTX1050Ti GPU).
網(wǎng)絡的權重參數(shù)初始化為標準差0.01的正態(tài)分布.對于標簽平滑方法[11],使用[0.1,0.2,0.3,0.4,0.5]標簽平滑參數(shù)做實驗,發(fā)現(xiàn)0.1對所有任務效果最佳.對于得分聚類損失,在[0.1,0.01,0.001,0.0001]范圍內(nèi)改變參數(shù)λ,發(fā)現(xiàn)0.001對任務A和C效果最佳,0.0001對任務B效果最佳.訓練超參數(shù)設置見表2.
表2 訓練超參數(shù)設置Tab.2 Hyper-parameters setting of Training
采用的最終結果是最后1000步迭代的平均準確率,實驗結果見表3.在任務A和B上,得分聚類損失的使模型的準確率提高了約0.2%~1%.在任務C中,得分聚類損失的使模型的準確率提高了約為0.1%~2%.在本實驗所有分類任務中,得分聚類損失均表現(xiàn)出較強的正則化能力,可以更有效地提高模型的準確率和泛化能力.
表3 本文與其他正則化方法準確率對比Tab.3 Comparisons with other regularization methods on accuracy
為了闡明得分聚類損失對得分分布的影響,在任務B中提取softmax的輸出,并繪制散點圖進行分析.如圖2所示,形狀“x”是飛機樣本,其標簽為[1,0].它應該在二維坐標的右下角.形狀“⊙”是汽車樣本,標簽為[0,1].它應該在左上角.當僅使用softmax損失函數(shù)訓練模型時,預測的標簽大部分是[1,0]和[0,1],這反映了模型對其預測非常自信,大量不同類別樣本在[1,0]處混疊在一起,影響了分類準確率.
在加入得分聚類損失函數(shù)后,樣本得分向每類的得分中心聚集.由于有分類錯誤的樣本,所以飛機和汽車樣本不再聚集在[1,0]和[0,1]處,而是分別在[0.89,0.11]和[0.9,0.1]周圍.每個類別的分數(shù)有所下降,但準確率上升了.這反映了得分聚類損失減少了正確類別的得分,減弱了模型的自信程度,緩解了過擬合問題,從而改善了分類效果.
a)僅使用softmax損失的得分分布 b)加入得分聚類后的得分分布圖2 得分分布圖Fig.2 The distribution of score
本文提出的得分聚類損失函數(shù)減弱了模型的自信程度,可以自動從數(shù)據(jù)中學習到較為合理的標簽,起到了標簽平滑的作用,避免了根據(jù)經(jīng)驗人工選擇標簽平滑系數(shù),有效的緩解了過擬合問題.實驗結果表明,得分聚類損失有助于增強分類模型的泛化能力,準確率有了顯著的提升.并且該損失函數(shù)可以通過梯度反向傳播算法與softmax損失聯(lián)合優(yōu)化分類模型,很容易嵌入其他分類模型和分類任務中,應用較為廣泛.