盧 劍 偉
(常州工業職業技術學院信息工程與技術學院 江蘇 常州 213164)(東南大學信息科學與工程學院 江蘇 南京 211189)
對抗樣本已被證明存在于大部分真實數據集中,且對抗樣本的本質是數據集中容易被忽視的噪聲或擾動樣本[1-6]。一方面,對抗樣本的本質決定了對抗樣本會降低分類算法的分類性能;另一方面,合理的對抗樣本學習可有效地提高分類算法的分類性能,能夠較好地應用于腦電信號識別[1]、手寫體識別[2]、車輛識別[3]等。對抗樣本學習的一般方式是將少量的噪聲或擾動樣本直接加入到數據集中[6],或者對樣本特征本身進行較小幅度的改動[1,5],繼而利用相應的分類算法進行學習以提高算法的分類性能。不同于對抗樣本學習的一般方式,本文將嘗試修改一定比例樣本的標簽類型使之成為對抗樣本進行對抗學習以提高所提分類算法的分類性能。
神經網絡[1,6]在人工智能、機器學習以及深度學習等領域展示著強大的樣本學習能力,已被廣泛應用于圖像處理、人工智能信息處理、無人駕駛技術、自適應智能控制等諸多實際應用[7-12]。神經網絡通過前向傳播和反向傳播算法不斷優化隱藏層中的參數使之達到最佳權值來提高整體網絡的學習性能,尤其是網絡的泛化性。神經網絡的層次結構模型使其能夠更好地表示樣本特征以及具備更強的函數模擬能力[11]。具有更多隱藏層數的神經網絡能夠更好地模擬神經網絡模型與真實樣本特征之間的關系,但卻會帶來較為嚴重的過擬合現象[13-14]。因此,文獻[13]提出dropout技術來解決因需要神經網絡增加隱藏層數大幅提升網絡模型學習能力過程中產生的過擬合問題。在使用dropout技術的過程中,隱藏層中的節點在訓練時將會以一定的概率被移出隱藏層,以這種方式來提高神經網絡的泛化性。
受神經網絡層級結構模型啟發,本文選擇一種成熟且性能較好的分類器——支持向量機(Support Vector Machine,SVM)[15-18]作為子分類器,且基于堆棧結構原理[19]和對抗樣本學習[1-6]構建一種具有新型棧式結構的層次結構支持向量機(D-S-SVM)。通過對抗樣本學習,每個子分類器輸出誤差對輸入的一階梯度信息將被嵌入到原輸入特征中以此更新原輸入。更新后的輸入將被作為下一個子分類器的輸入,通過堆棧結構原理逐層更新每個子分類器的輸入,逐層提高每個子分類器的分類性能。特別地,在逐層更新原輸入樣本的過程中引入dropout,即將每個子分類器輸出誤差對輸入樣本部分特征的一階梯度信息嵌入到原輸入特征中,以提高所提出的分類模型D-S-SVM的泛化性。

SVM的分類函數可表示為:
f(x;w,b)=sign(wTx+b)
(1)

(2)
輸出誤差對樣本xi的一階梯度可計算為:
(3)

本文將基于對抗樣本學習的一階梯度信息嵌入到原輸入樣本中以更新每個原輸入樣本,即:
(4)
式中:參數γ代表特征學習率[20],其值的大小會影響樣本特征在特征空間的真實意義,較大的γ值會嚴重影響每個樣本在特征空間中的真實位置關系,因此,必須根據真實實驗效果結合交叉驗證[21]的方法來確定γ值。當輸出誤差E對所有樣本的一階梯度計算完后便可得到基于對抗樣本學習的N×d維一階梯度信息矩陣G,即:
(5)
式中:xij代表數據集中第i個樣本的第j個特征且有1≤j≤d。
同樣,利用一階梯度信息矩陣更新原數據集可得到更新后的數據集,即:
X′=X+γG
(6)
由SVM的分類函數(式(1))可知式(4)中的一階梯度信息對樣本特征本身敏感,這種敏感特性決定了本文利用對抗樣本學習更新原樣本特征進而提高所提分類模型的有效性。與基于訓練原樣本的SVM模型相比,基于訓練更新后樣本的SVM模型性能將會得到有效提高。


圖1 具有棧式結構的層次支持向量機

與神經網絡模型層次結構相比,該層次支持向量機中的每一層SVM_k可類比于神經網絡模型中的輸入輸出層/隱藏層,對每個原輸入樣本所有特征的一階梯度信息可類比于神經網絡模型輸入輸出層/隱藏層中的節點。特別地,本文提出的層次支持向量機前后兩層由基于對抗樣本學習的一階梯度信息級聯而成,這為有監督學習提供了一種新的實現方式。
第1節利用基于對抗樣本學習的一階梯度信息構建了一種具有新型棧式結構的層次支持向量機。然而,在利用一階梯度信息更新每一層輸入樣本作為下一層輸入樣本的過程中涉及到SVM_k輸出誤差對每條輸入樣本中所有特征的一階梯度。類似地,當增加神經網絡的隱藏層數或增加每一隱藏層中的節點數時,更多的模型參數極易導致神經網絡模型的過擬合現象。具體而言,在訓練神經網絡實施反向傳播算法的過程中,隨機選擇每一隱藏層中的部分節點參數根據神經網絡的輸出誤差進行修正,未被選擇的節點參數將保持之前的狀態。


圖2 類dropout的層次支持向量機
對于神經網絡,在每一次執行反向算法的過程中,神經網絡模型隱藏層中的所有節點參數將被逐漸優化到最佳狀態,神經網絡模型將有效模擬模型與樣本特征之間的關系。結合dropout技術,神經網絡模型的過擬合問題也將得到有效解決。類似地,在運行D-S-SVM的過程中,利用基于對抗樣本學習的一階梯度信息逐層更新每一層輸入樣本,使得不同類樣本在特征空間中逐漸被隔開,因此,D-S-SVM的分類性能逐漸被提高。同時,由于在逐層更新輸入樣本的過程中引入了dropout技術,D-S-SVM的泛化性也將逐漸被提高。
由于所提D-S-SVM分類模型中的每一子分類器基于SVM實現,因此實驗中將主要討論線性(Linear)和高斯核(Gaussian)情況下的分類器分類性能。實驗主要針對SVM和D-S-SVM的實際分類性能進行對比來驗證利用基于對抗樣本學習的一階梯度信息構建具有新型棧式結構的層次分類模型的有效性。另外,將討論D-S-SVM精簡版(記為D-S-SVM_0)的分類性能,即在利用基于對抗樣本學習的一階梯度信息逐層更新輸入樣本的過程中不引入dropout技術,以此來突出D-S-SVM的泛化性。
表1詳細列出了實驗中選擇的真實數據集,所選擇的數據集均可從UCI[22]或KEEL[23]網站下載。

表1 真實數據集描述
表2詳細展示了各個分類算法在真實數據集上的測試精度,其中:對于線性情況下的三種分類算法的正則化參數c的搜索范圍為{10-5,10-4,…,104,105};對于高斯核情況下的三種分類算法的正則化參數c的搜索范圍與線性情況下相同,高斯核寬度σ的搜索范圍為{10-5,10-4,…,104,105}。對于每一個真實數據集,將隨機選擇60%的樣本作為訓練樣本,其余作為測試樣本,測試結果為運行10次后取得的平均分類性能。另外,D-S-SVM共有5層,除了給出取得最佳分類性能情況下的參數c和σ,還具體給出了D-S-SVM在第k層取得最佳分類性能。D-S-SVM在執行dropout的過程中,將利用基于對抗樣本學習的一階梯度信息對每一個樣本一半的特征進行更新。在執行D-S-SVM_0以及D-S-SVM過程中,將隨機修改5%比例樣本的標簽使其成為對抗樣本進行對抗學習,且根據文獻[20],D-S-SVM_0以及D-S-SVM中的樣本特征學習率選擇推薦值γ=0.001,兩者的分類性能比較如圖3所示。表2中已將對比算法最好的分類性能用粗體表示。

表2 幾種分類算法的詳細分類性能

(a) Linear (b) Gaussian圖3 D-S-SVM與D-S-SVM_0的分類性能比較
根據表2可得:
(1) 將D-S-SVM_0與SVM相比,不論是線性還是高斯核情況下,D-S-SVM_0在絕大部分真實數據集上的分類性能優于SVM,在其他真實數據集上D-S-SVM_0至少能夠保持相當的分類性能。這充分表明本文利用基于對抗樣本學習的一階梯度信息構建具有新型棧式結構分類模型的有效性,且該結構能夠提高所提分類模型的分類性能。
(2) 結合表2和圖3,將D-S-SVM與其簡易版本D-S-SVM_0相比,在絕大多數真實數據集上D-S-SVM的分類性能都優于D-S-SVM_0,在小部分真實數據集上D-S-SVM至少能夠保持相當的分類性能。這充分驗證了本文模型在逐層更新輸入樣本的過程中引入dropout概念的有效性。
(3) 關于棧式結構,D-S-SVM基本在2~4層內取得最佳分類性能,較少的層數一方面使D-S-SVM模型變得簡單;另一方面當超過一定層數時,由于利用基于對抗樣本學習的一階梯度信息逐層更新輸入樣本的緣故,原輸入樣本的特征空間將會被破壞,再增加層數只會降低D-S-SVM的分類性能。
表3詳細列出了D-S-SVM(Linear)在真實數據集AUS、PAG與WDB以及D-S-SVM(Gaussian)在真實數據集BAL、SEI與VOT上每一層子分類器的訓練和測試精度。其中,D-S-SVM由5個子分類器級聯而成,最佳的測試精度加粗顯示。

表3 D-S-SVM逐層分類性能
可以看出,當D-S-SVM未取得最佳分類性能前,利用基于對抗樣本學習的一階梯度信息逐層更新每一個子分類器的輸入以及dropout技術的引入能夠逐層提高D-S-SVM的分類性能。當D-S-SVM達到某一層取得最佳分類性能后,再增加D-S-SVM的層數會降低其分類性能,意味著D-S-SVM在該層輸入樣本特征空間已被優化到最佳狀態。另外,D-S-SVM在大部分情況下只需要2~4層的棧式結構便能取得最佳分類性能。
表4展現了在執行dropout過程中不同比例的樣本特征更新對D-S-SVM分類性能的影響。其中,比例選擇1/2、1/3、1/4,即利用基于對抗樣本學習的一階梯度信息對每一個樣本1/2、1/3、1/4的特征進行更新。

表4 dropout分析
可以看出,當在D-S-SVM模型中引入dropout概念逐層更新樣本輸入的過程中,隨著樣本特征更新比例的降低,D-S-SVM的分類性能降低不明顯,或至少保持相當的分類性能。這種情況可能是由于本文利用基于對抗樣本學習逐層更新D-S-SVM輸入樣本并以此構造具備新型棧式結構的分類模型所導致。當在利用一階梯度信息逐層更新輸入樣本的過程中,每一個子分類器的樣本特征空間逐漸被隔離,當引入dropout概念對少量的樣本特征進行更新時,D-S-SVM也能夠保持較好的分類性能。
針對真實數據集中存在對抗樣本的事實,本文首先隨機修改樣本的真實標簽類型,構造對抗樣本進行對抗樣本學習。在SVM的基礎上,將經對抗樣本學習的SVM模型輸出誤差對輸入樣本特征的一階梯度信息嵌入到輸入樣本特征中以更新輸入樣本。其次,結合棧式結構原理,將經對抗樣本學習的SVM模型作為子分類器構建層次支持向量機D-S-SVM。特別地,利用基于對抗樣本學習的一階梯度信息更新輸入樣本為前后兩個子分類器提供了一種新穎的棧式結構級聯方式。將其與SVM相比,在真實數據集上的實驗結果驗證了該級聯方式更加有效。最后,為提高D-S-SVM的泛化性,在逐層更新每一層子分類器輸入的過程中引入神經網絡中的dropout概念,即利用基于對抗樣本學習的一階梯度信息隨機更新輸入樣本的部分特征,令輸入樣本的其他特征保持原有狀態。在真實數據集上的分類結果有力地證明了dropout概念的引入確實能夠有效增強D-S-SVM的泛化性。
今后將進一步研究如何從數據集中有效選擇樣本進行對抗樣本學習以及如何有效選擇樣本的部分特征利用對抗樣本學習更新樣本特征。此外,如何將所提D-S-SVM分類算法推廣到無監督學習也是今后研究內容之一。