任佳麗 王文晶
1(山西交通職業技術學院信息工程系 山西 太原 030031)2(山西大學商務學院信息學院 山西 太原 030031)
在商業活動和社會生產中存在大量的不平衡數據,例如:銀行的信用卡信息中大部分是正常用戶信息而極少部分是欺詐用戶和低信用用戶,醫院的診斷報告中大部分是常見病情而極少部分是罕見的重病[1]。不平衡數據的分類方法主要分為4類:成本敏感學習法、支持向量機法、單類學習法及組合學習法[2]。其中,成本敏感學習將分類邊界適當靠近多數類來提高少數類的分類準確率,此類方案對于分類數少的情況較為有效[3]。支持向量機(Support Vector Machine,SVM)對于不平衡性的敏感度低,可獲得較好的效果[4]。單類學習的核心思想是只學習單一目標類的樣本[5]。組合方法的核心思想是將多個弱分類器組合成一個強分類器,其中AdaBoost[6]是一種經典的組合方法。研究人員利用SVM對不平衡數據敏感度低的優點,設計了孿生支持向量機,可簡單有效地分類不平衡數據。目前孿生支持向量機已經應用于電力系統暫態穩定評估[7]、小麥蚜蟲遙感監測[8]、DDoS攻擊檢測[9]等不平衡數據分類問題,取得了顯著的效果。但SVM中包含矩陣計算,為大規模數據集的分類處理帶來了極大的計算負擔。
隨著深度神經網絡的持續發展,許多研究人員利用深度神經網絡解決不平衡數據的分類問題。文獻[10]提出降噪自編碼神經網絡不平衡數據分類算法,該算法利用降噪自編碼神經網絡算法的逐層無監督降噪學習和有監督微調過程,實現了對過采樣數據集的降噪處理與數據分類。文獻[11]以通用卷積神經網絡(Convolutional Neural Networks,CNN)模型為基礎分別在四類心拍數據上構建四個表達對應心拍類別傾向性信息的類別CNN模型,最后綜合四個類別CNN模型的輸出判別心拍類型,實現了較好的分類準確率。文獻[12]對不平衡數據集進行動態采樣,再利用卷積神經網絡對每個預分類進行學習,對每個神經網絡進行參數學習。文獻[3]結合成本敏感方法和神經網絡兩種機制,對神經網絡進行了簡單地調節,使類的邊界靠近少數類。上述基于神經網絡的不平衡數據分類算法包含了監督的超參數微調程序,該微調過程需要學習每個類的神經網絡超參數,計算負擔較大。
孿生支持向量機需要計算矩陣及固定核函數,而神經網絡需要復雜的超參數微調處理,因此兩者均難以單獨適用于大規模不平衡數據分類問題。本文考慮將孿生機制引入神經網絡,利用卷進神經網絡極強的深度結構表示能力,并設計了差分卷積機制,在不改變濾波器數量的情況下提高模型的分類準確率。通過差分孿生卷積神經網絡分別優化每個類的特征圖,每個類關聯多個超平面,根據輸入樣本與超平面的距離決定輸出樣本的類標簽。
卷積神經網絡是模式識別領域最成功的方法之一。網絡的濾波器提取輸入樣本的特征,通過池化處理縮小特征圖,再輸入卷積層對特征集進行分類處理。深度卷積神經網絡一般包括卷積層、池化層和全連接網絡。卷積層負責提取特征,池化層負責縮小特征圖,全連接層負責將特征集分類。當前主流的卷積神經網絡均存在一定的過擬合問題,本文設計了差分機制和后向傳播機制解決過擬合問題。
卷積層由若干大小固定的濾波器組成,提取輸入數據的特征。神經元的感受野表示前一層連接的神經元,感受野大小等于濾波器的大小。以圖像數據為例,設m×n和c×c分別為輸入圖像和核的大小,i表示圖像,wt,r和b分別為過濾器的權重矩陣和偏差項。神經元的輸出o0,0定義為下式,
(1)
式中:f為ReLu激活函數。ReLu激活函數的形式為:

(2)
首先,卷積運算和激活函數獲得輸入數據的特征圖,然后對特征圖進行池化處理產生更小的特征圖。對輸入數據應用滑動窗口處理,每個窗口依次池化處理,常用的池化方法包括最大池化、平均池化和L2池化。池化處理的作用是縮小輸入數據規模、獨立提取特征。
池化層的輸出數據是一維向量,該向量輸入全連接網絡。全連接網絡可能包含多個隱層,每個神經元將前一層的數據乘以全連接權重,再加上偏差值。全連接層神經元的計算方法為:
(3)
式中:f為激活函數,w為權重向量,oq為第q個神經元的輸入向量,b為偏差值。
采用Softmax函數作為多類數據集分類器輸出層的激活函數,定義為:
(4)
式中:j為類的序號。
孿生SVM通過求解一組小規模問題來學習兩個非平行分類超平面,但孿生SVM包含矩陣求逆的運算,如果處理大數據集則需要大量的內存資源和計算資源。本文在神經網絡的框架內實現孿生策略,利用非平行邊界思想實現了孿生神經網絡的結構。
圖1所示是3層孿生神經網絡(卷積層→池化層→輸出層)的結構圖,輸入向量為x,卷積層神經元將x轉化為φ(x),池化層進行池化處理,輸出層根據特征空間學習一個分類器,表示為φ(·)。最終使用分類器的超平面對測試集樣本進行預測。

圖1 孿生神經網絡的結構
不平衡數據集分類問題共訓練兩個神經網絡,其誤差函數分別設為E+1和E-1,定義為:
(5)
(6)

將誤差對權重w和偏差b求偏導數,獲得最小化誤差的規則。誤差對權重w的偏導為:
(7)
式(7)的第1項設為E+1MSE,第2項設為E+1twin,E+1MSE為關于oi=f(neti)的函數,oi為神經網絡的輸出,f(·)為激活函數。可獲得以下關系:
(8)
(9)
E+1MSE對b+1的偏導為:
(10)
(11)
第2項E+1twin對w+1的偏導為:
(12)
E+1twin對b+1的偏導為:
(13)
綜上可總結出以下的方程組:
(14)
(15)
(16)
(17)
預測樣本x類標簽的步驟為:首先通過隱層將x映射到空間φ(·),然后輸出層根據下式判斷x的類標簽y:
(18)
將孿生神經網絡擴展至多類數據集,其標簽為yi∈{A,B,…,K},K為類標簽數量。通過訓練K個獨立的神經網絡實現多標簽數據集的孿生神經網絡,每個網絡通過一個成本函數判斷樣本是否屬于本類。圖2所示是系統的總體架構,每個類先與多個超平面關聯,然后與多個分類器神經元關聯,圖中類A的神經元輸出標簽為z1A,z2A,…,zpA。每個類的神經元數量可能不同,一個類的每個輸出神經元對應一個超平面,通過超平面預測新樣本是否屬于該類。假設類A的一個樣本,TWNN需要尋找與類A距離最近的超平面u,同時u需要與其他類的距離大于1。

圖2 多類孿生神經網絡的總體架構


(a) 二分類神經網絡的激活函數

(b) 多分類神經網絡的激活函數圖3 多分類激活函數的示意圖
因為孿生神經網絡的損失函數不包含超參數,所以多分類孿生神經網絡無需微調模型的超參數,僅需要預設全連接網絡的隱層神經元數量。
為了解決卷積神經網絡的過擬合問題,本文設計了差分機制和后向傳播機制解決過擬合問題,差分卷積機制考慮神經元激活和相鄰神經元激活的變化。
卷積運算負責提取輸入數據的特征,卷積技術的思想是考慮樣本與其相鄰樣本的有向變化。差分卷積分析一個樣本與相鄰樣本的模式方向,差分計算通過計算樣本激活間的差異反映了連續樣本的變化。本方法利用差分信號加法圖的卷積方法,運用預設的常量濾波器從特征圖產生附加的差分圖。圖4所示是4個常量濾波器,每個濾波器計算一個方向的差分值,最終特征圖包含4個方向的差分值。

圖4 四個方向的常量濾波器
設傳統卷積生成的特征圖為g1,4個附加的特征圖為g2、g3、g4、g5,對應神經元的計算方法分別為:
g2,i,j=g1,i,j-g1,i+1,j
(19)
g3,i,j=g1,i,j-g1,i,j+1
(20)
g4,i,j=g1,i,j-g1,i+1,j+1
(21)
g5,i,j=g1,i+1,j-g1,i,j+1
(22)
如果g1的大小為M×N,g2、g3、g4和g5的大小分別為(M-1)×N、M×(N-1)、(M-1)×(N-1)和(M-1)×(N-1)。附加特征圖以0值填充,擴展到第1個特征圖的大小,如圖5所示。

圖5 差分特征圖的擴展示意圖
通過疊加后向傳播算法提高差分卷積的性能。后向傳播將誤差反向地傳遞至每個特征圖,每個附加特征圖的誤差與對應的定值濾波器權重相乘,再加上第一個特征圖的誤差,采用獲得的誤差矩陣訓練相關濾波器。設傳遞到第1個特征圖的誤差為h1,傳遞到附加圖的誤差分別為h2、h3、h4、h5,誤差矩陣的元素設為E,圖的大小為M×N。相關過濾器的誤差計算為:
Ei,j=h1,i,j-h2,i,j-1+h2,i,j-h3,i-1,j+
h3,i,j-h4,i-1,j-1+h4,i,j-h5,i-1,j+h5,i,j-1
(23)
式中:M>i>1,N>j>1。傳遞到特征圖頂點神經元的誤差為:
(24)
傳遞到特征圖邊神經元的誤差為:
(25)
孿生神經網絡的參數C+1和C-1范圍設為{0.01,…,100},全連接網絡的隱層神經元數量設為n/3,n為數據集的特征量。
選擇兩個孿生支持向量機RSTSVM[13]和FTSVM[14]作為對比方法,RSTSVM結合了重采樣技術和孿生支持向量機技術。FTSVM是一種基于信息熵的孿生支持向量機技術,該技術利用信息熵度量數據的距離。WOA+BRNN[15]是一種基于新型鯨魚優化算法和深度神經網絡的不平衡數據分類算法,該算法與本文算法均采用了深度神經網絡,但是該算法采用鯨魚優化算法進行分類的優化處理,而本文算法采用孿生機制進行分類處理。EOST[16]是近期一個有效的不平衡數據分類方案,該方案通過解決不平衡數據集的過采樣問題,提高對小規模類的分類效果。
本文算法訓練的過程為:將輸入特征歸一化至[-1,+1]范圍,采用K-近鄰填充算法優化全連接網絡的隱層神經元數量和超參數,使用5折交叉驗證計算準確率,每組實驗獨立運行10次,保證合理的置信區間。
首先采用常用的公開UCI數據集測試本算法對于一般性數據集的分類效果,表1所示是10個UCI數據集的基本屬性。

表1 UCI數據集的基本屬性
圖6所示是5個算法對平衡數據集的分類精度結果,可以看出,本文算法對于Hepatitis、Australian、CRX、German、SONAR、Housevotes、Heart Spectf均取得了最佳的分類精度,對于另外2個數據集則略低于EOST算法,但依然高于其他三個方法。可得出結論,雖然本文算法針對不平衡數據集設計,但是對于一般的平衡數據集也具有較好的性能。

圖6 平衡數據集的分類精度結果
本文孿生卷積神經網絡的優勢在于對不平衡數據集具有更好的泛化效果,采用留一法策略將10個UCI數據集抽樣組合為二分類不平衡數據集,表2所示是二分類不平衡數據集。

表2 二分類不平衡數據集的基本屬性
分類精度僅能評價算法的總體分類準確率,無法觀察學習算法對數據集偏斜的處理效果,因此采用了另外幾個有效的不平衡數據集分類性能指標。分類精度acc、真正率TPR、假正率NPV、真負率TNR和假負率PPV分別定義為:
(26)
(27)
(28)
(29)
(30)
式中:TP為真實標簽和預測標簽均為真的樣本集,TN為真實標簽和預測標簽均為假的樣本集,FP為真實標簽為假被誤預測為真標簽的樣本集,FN為真實標簽為真被誤預測為假標簽的樣本集。

F1-measure定義為正定預測值和正定率之間的調和均值:
(31)
Mathew相關系數是一種常用的二分類不平衡數據分類性能的評價指標,MCC值越高說明分類器的分類準確率越高、誤分類率越低。
(32)
圖7所示是10個不平衡數據集的G-means指標結果,本文算法對于Abalone、Yeast、Abalone、Wine_Quality、Ozone_Level和Statlog的結果均大幅度領先于其他4個算法,對于另外4個不平衡數據集的結果略優于其他4個對比方法。G-means的結果越高,說明兩個不平衡分類間的劃分精度越高。

圖7 10個不平衡數據集的G-means指標結果
圖8所示是10個不平衡數據集的F1-measure指標結果,本文算法對于10個數據集的結果均明顯優于其他4個算法。F1-measure越高,說明誤檢率、漏檢率、檢測率均取得了較高的質量。

圖8 分類算法的F1-measure指標結果
圖9所示是10個不平衡數據集的MCC指標結果,本文算法對于10個數據集的結果均明顯優于其他4個算法。Mathew相關系數越高,說明分類器的分類準確率越高、誤分類率越低。

圖9 分類算法的MCC指標結果
最終統計了5個分類算法對于10個不平衡數據集的訓練時間,結果如表3所示。可以看出,相較于RSTSVM和FTSVM兩個算法,TCNN的訓練時間具有明顯的優勢,相較于WOA+BRNN和EOST兩個算法,TCNN對于部分數據集的平均時間也較低。綜上所述,TCNN有效地解決了孿生支持向量機計算成本高的問題,而相較于非支持向量機的分類算法,TCNN也有效地提高了對不平衡數據集的分類性能。

表3 不同算法的訓練時間 s

續表3 s
測試本算法對于多分類不平衡數據集的分類性能。表4是7個多分類不平衡數據集的基本屬性。

表4 多分類不平衡數據集
因為EOST僅支持二分類不平衡數據的分類問題,所以將本文算法與RSTSVM、FTSVM、WOA+BRNN進行比較。圖10所示為多分類數據集的平均分類精度。可以看出,本文算法對于不同分類數的分類精度均優于其他3個算法。MNIST數據集是手寫字體數據集,本模型的差分卷積層能夠有效地提取深度結構的模式,因此本文算法對于MNIST表現出較好的分類效果。根據實驗結果可得出結論:本文算法通過卷積神經網絡實現了較強的特征提取能力;利用孿生機制實現了對不平衡數據集的分類處理能力;設計了差分卷積機制和疊加后向傳播機制緩解了卷積神經網絡的過擬合問題;最終在不平衡數據集的分類問題上,實現了較好的分類性能以及較快的處理速度。

圖10 多分類不平衡數據集的平均分類精度
本文將孿生機制引入卷積神經網絡框架中,提高對不平衡數據的泛化效果。利用卷積運算對深度結構表征能力強的優點,提取輸入數據的特征,并且設計了差分卷積技術增強特征的判別能力。本文設計的差分孿生卷積神經網絡能夠有效地處理不平衡數據集的二分類問題和多分類問題,實現了較好的分類準確率和訓練效率。
本方案目前的弱點在于卷積層所提取特征的判別能力依然不足,未來將開發針對不平衡文檔數據集、不平衡圖像數據集等指定領域的專門深度神經網絡模型,針對不同的數據類型設計判別能力強的特征提取方案。