鄧 柙, 呂王勇,2*, 代 娟, 陳 雯, 李思奇
(1. 四川師范大學 數(shù)學科學學院, 四川 成都 610066;2. 四川師范大學 可視化計算與虛擬現(xiàn)實四川省重點實驗室, 四川 成都 610066)
隨著信息技術(shù)的快速發(fā)展,各領(lǐng)域數(shù)據(jù)處理的需求正以前所未有的速度增長.數(shù)據(jù)分類作為一種基礎(chǔ)的數(shù)據(jù)處理方法,已廣泛應(yīng)用于數(shù)據(jù)的智能化處理.人工神經(jīng)網(wǎng)絡(luò)(artificial neural network)簡稱神經(jīng)網(wǎng)絡(luò)[1-2],作為一種基礎(chǔ)的數(shù)據(jù)分類方法,一直以來都深受研究者青睞.它是由網(wǎng)絡(luò)節(jié)點相互連接而構(gòu)成,并模仿人腦工作的模型.神經(jīng)網(wǎng)絡(luò)實質(zhì)上是一個數(shù)學計算模型,是由彼此連接的節(jié)點、網(wǎng)絡(luò)包含的激勵函數(shù)以及節(jié)點間的連接權(quán)值而構(gòu)成,并采用上述結(jié)構(gòu)模擬人腦工作[3],從而解決實際問題[4].20世紀末期,研究者們給出多層神經(jīng)網(wǎng)絡(luò)及誤差逆向傳播算法[5],并提出BP神經(jīng)網(wǎng)絡(luò)模型這一目前人工神經(jīng)網(wǎng)絡(luò)應(yīng)用最為廣泛的一種網(wǎng)絡(luò)模型,已成功應(yīng)用于模式識別、生物信息處理、決策支持等領(lǐng)域[6-7].
自1986年,Rumelhart等[7]提出BP神經(jīng)網(wǎng)絡(luò)模型以來,作為一種新的學習理論,BP神經(jīng)網(wǎng)絡(luò)引起了眾多科研人員的研究興趣,已成為機器學習領(lǐng)域及數(shù)據(jù)分類的研究熱點.研究者們根據(jù)BP神經(jīng)網(wǎng)絡(luò)的種種優(yōu)點和缺點并結(jié)合其他專業(yè)知識進行擴展研究,提出了許多擴展的BP神經(jīng)網(wǎng)絡(luò)分類模型[8-17].大多數(shù)BP神經(jīng)網(wǎng)絡(luò)分類模型是基于經(jīng)驗風險最小的分類模型,使期望模型在訓練集的分類錯誤率盡可能低,但都是適用于數(shù)據(jù)是平衡的或給定相等的錯誤分類代價,而這會造成少數(shù)類中的樣本被大量誤分,從而造成分類器對少數(shù)類識別性能的下降.而現(xiàn)實中的數(shù)據(jù)通常具有不平衡特性,即某一類的樣本數(shù)量要遠遠少于其他類的樣本數(shù)量,且少數(shù)類具有更高錯分代價.因此,采用傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)模型時,數(shù)據(jù)的失衡往往造成分類面的偏倚,導致難以得到令人滿意的分類效果.現(xiàn)今國內(nèi)外學者相繼提出了多種用于解決類不平衡問題的方法[18-20],不少學者也基于神經(jīng)網(wǎng)絡(luò)提出一系列處理不平衡數(shù)據(jù)的分類模型,能夠提高模型對少數(shù)類樣本的識別率.文獻[21]提出了一種融合CNN(卷積神經(jīng)網(wǎng)絡(luò))和EWC算法的不平衡文本情緒分類方法,該方法在不平衡文本情緒分類上的準確率和G-mean測度較優(yōu)于其他算法;文獻[22]通過對現(xiàn)有不平衡數(shù)據(jù)處理方法進行分析,結(jié)合神經(jīng)網(wǎng)絡(luò)和模糊推理系統(tǒng),提出基于數(shù)據(jù)和算法層面的混合式不平衡數(shù)據(jù)處理算法,該算法在解決了數(shù)據(jù)不平衡問題的同時,還提升了分類器對少數(shù)類的分類效果與整體分類準確度;文獻[23]針對機械設(shè)備實際工作過程中正常樣本豐富、故障樣本匱乏的問題,提出一種代價敏感卷積神經(jīng)網(wǎng)絡(luò)模型,該方法對不平衡數(shù)據(jù)集中的少數(shù)類樣本識別率相對于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)提升了22%以上;文獻[24]通過數(shù)據(jù)、算法、特征3個層面提出了一種基于蒙特卡洛神經(jīng)網(wǎng)絡(luò)的不平衡分類算法,解決了不平衡分類的過擬合、類別不平衡、特征冗余等問題,不但整體分類性能更好,而且能顯著提高少數(shù)類樣本的分類性能,具有重要的現(xiàn)實意義;不少研究也通過將神經(jīng)網(wǎng)絡(luò)中的極限學習機進行加權(quán)處理用于處理不平衡分類問題[25-28],如文獻[27]充分討論了數(shù)據(jù)分布特性對分類器的影響與極限學習機思想,提出了一種結(jié)合卷積神經(jīng)網(wǎng)絡(luò)和數(shù)據(jù)分布的加權(quán)極限學習機,針對不平衡分類問題,該算法不僅在整體分類精度和對少數(shù)類識別率上更高,還同時結(jié)合了CNN對特征提取的優(yōu)點和ELM訓練速度快、分類精度高的優(yōu)點.但是以上模型都沒有考慮通過數(shù)據(jù)的先驗信息對神經(jīng)網(wǎng)絡(luò)的目標函數(shù)進行加權(quán),來解決不平衡分類問題.本文主要針對大數(shù)據(jù)分類中各類規(guī)模差異較大導致的分類精度不高的問題,基于代價敏感學習的思想并結(jié)合數(shù)據(jù)的先驗信息,提出一種基于先驗概率的加權(quán)方法,通過對神經(jīng)網(wǎng)絡(luò)中的目標函數(shù)進行加權(quán),增強對稀有少數(shù)類的敏感代價學習,使得改進后的神經(jīng)網(wǎng)絡(luò)分類器能夠提高對較小類別的正確識別率.
人工神經(jīng)網(wǎng)絡(luò)通過模仿人腦神經(jīng)系統(tǒng)的工作流程,從而完成對輸入信息進行快速處理.神經(jīng)網(wǎng)絡(luò)通過全連通的網(wǎng)絡(luò)拓撲結(jié)構(gòu)、訓練參數(shù)、連接權(quán)值及訓練算法等,實現(xiàn)對實際問題的處理或者完成某些功能.BP神經(jīng)網(wǎng)絡(luò)是基于誤差反向傳播算法的多層前饋神經(jīng)網(wǎng)絡(luò),具有良好的非線性映射能力、泛化和容錯能力,是目前人工神經(jīng)網(wǎng)絡(luò)應(yīng)用最為廣泛的一種網(wǎng)絡(luò).BP神經(jīng)網(wǎng)絡(luò)學習是有監(jiān)督的,整個網(wǎng)絡(luò)的迭代由2個部分組成,分別為“前向傳播”和“后向傳播”.當輸入訓練樣本后,網(wǎng)絡(luò)不斷將實際輸出與目標輸出進行對比,同時進行誤差計算,并按照訓練算法例如梯度下降法對網(wǎng)絡(luò)的參數(shù)不斷進行修正,使其實際輸出不斷接近目標輸出.網(wǎng)絡(luò)按照上述過程不停地循環(huán)訓練,通過迭代不斷更新權(quán)重和偏置,使得目標函數(shù)值向預(yù)期值靠攏,從而得到較為精確的實際輸出.
神經(jīng)網(wǎng)絡(luò)一般由輸入層、隱含層(隱含層可以有多層)和輸出層構(gòu)成,如圖1所示.
圖 1 神經(jīng)網(wǎng)絡(luò)
1) 前向傳播.從輸入層到隱藏層:
j=1,2,…,num(1).
(1)
隱藏層之間:
l=2,3,…,m-1, j=1,2,…,num(l).
(2)
從隱藏層到輸出層:
j=1,2,…,num(m).
(3)
2) 后向傳播.在經(jīng)典神經(jīng)網(wǎng)絡(luò)中,常常采用梯度下降法對參數(shù)進行最小二乘估計,目標函數(shù)為殘差平方和
(4)
但是經(jīng)典神經(jīng)網(wǎng)絡(luò)都是傾向于假設(shè)數(shù)據(jù)是平衡的,若訓練集X中的類別數(shù)是不平衡的,即某一種類別數(shù)的樣本量要遠遠小于其他類別的樣本數(shù),此時經(jīng)典的神經(jīng)網(wǎng)絡(luò)算法就不再適用.其實可以看到當存在不平衡分類問題時,這時一般的目標函數(shù)(殘差平方和)即(4)式就不能準確地反應(yīng)分類器的好壞.現(xiàn)假設(shè)訓練集X共有N=100個樣本,共有類別數(shù)t=2個,其中有1類樣本90個,0類樣本10個.若出現(xiàn)以下2種情況:1) 分類器A把所有的測試樣本都分成了1類,則分類器A的殘差平方和為10;2) 分類器B把1類的90個樣本中85個分為1類,0類的10個樣本中5個分為0類,分類器B的殘差平方和也為10,但顯然分類器A的效用遠不如分類器B.此時目標函數(shù)(4)式已經(jīng)不能準確地反映分類器的好壞,出現(xiàn)這種情況是因為在目標函數(shù)中,算法給定了大類樣本和稀有少數(shù)類樣本相等的錯誤分類代價,這樣會造成少數(shù)類中的樣本被大量誤分.
本文基于代價敏感學習的思想,希望改進目標函數(shù)增強對稀有少數(shù)類的敏感代價學習.那如何改進呢?可以看到各類別的先驗信息存在較大的差異,即樣本不同類之間的數(shù)量相差較大,為解決此類問題,本文考慮利用各類別的先驗概率對神經(jīng)網(wǎng)絡(luò)中的(4)式目標損失函數(shù)進行加權(quán).如對于0類樣本,其樣本數(shù)為10,占總的訓練樣本的1/10,即0類的先驗概率為1/10,取其倒數(shù)即為10,將其倒數(shù)10加入到神經(jīng)網(wǎng)絡(luò)中的目標損失函數(shù),當網(wǎng)絡(luò)對少類樣本進行網(wǎng)絡(luò)迭代時,讓此時的目標函數(shù)值增加10倍,從而提高對稀有少數(shù)類別的代價敏感學習,從而增強對少數(shù)類別的識別.
3.1 加權(quán)目標函數(shù)先驗概率是指根據(jù)以往經(jīng)驗和分析得到的概率,例如拋硬幣,大家都認為正面朝上的概率是0.5,這就是一種先驗概率.先驗概率反應(yīng)了原始數(shù)據(jù)中包含的各類別的基本信息,在分類問題中可取某類的先驗概率為該類別樣本數(shù)所占總樣本數(shù)的比例.先驗概率確定以后,接下來對目標函數(shù)進行加權(quán).在實際案例中,很多時候要求分類器更關(guān)注一個類別,即盡可能地將這個類別判對,此時只需要對單個類別加權(quán).若要對第i類進行加權(quán),設(shè)該類樣本共有Ni個,則對于訓練樣本中的第k個樣本,通過先驗概率定義權(quán)重
(5)
其中
表示第i類的先驗概率,即該類樣本數(shù)占訓練樣本總數(shù)的比例.
(6)
(7)
類似于對單個類別加權(quán),考慮多個類別數(shù)據(jù)規(guī)模對分類結(jié)果的影響,此時類別數(shù)也設(shè)為m個,對于訓練樣本中的第k個樣本,利用先驗概率定義權(quán)值為
W=W1W2…Wm=
(8)
其中若該樣本k是屬于第m類,則
Tm(k)=1,
T1(k)=T2(k)=…=Tm-1(k)=0,
此時權(quán)值
W=W1W2…Wm=
這樣就可以對屬于m類的樣本進行加權(quán),進而對于屬于不同類的樣本都可以進行相應(yīng)的加權(quán).將(8)式代入目標函數(shù)(4)式中,對于N個樣本,可以構(gòu)造新的目標函數(shù)為
(9)
3.2 基于先驗概率加權(quán)神經(jīng)網(wǎng)絡(luò)的權(quán)值和偏置的迭代過程基于先驗概率的加權(quán)神經(jīng)網(wǎng)絡(luò)的前向傳播過程與經(jīng)典神經(jīng)網(wǎng)絡(luò)的是一樣的,在前面已經(jīng)介紹過,下面給出基于先驗概率的加權(quán)神經(jīng)網(wǎng)絡(luò)的后向傳播過程推導.
對于第k個樣本,則對于該樣本的目標函數(shù)為
激活函數(shù)采用sigmoid函數(shù),神經(jīng)網(wǎng)絡(luò)的輸出值僅與輸入值、權(quán)值以及偏置有關(guān).后向傳播的目的為調(diào)整權(quán)重和偏置,采用梯度下降法對其更新,過程推導如下:
(10)
(11)
(12)
當l=1,2,…,m-1時,有
(13)
3.3 基于先驗概率加權(quán)的神經(jīng)網(wǎng)絡(luò)算法步驟
輸入:訓練數(shù)據(jù)集X.
輸出:訓練后的BP神經(jīng)網(wǎng)絡(luò).
步驟1:初始化BP神經(jīng)網(wǎng)絡(luò)節(jié)點個數(shù)、網(wǎng)絡(luò)參數(shù)、權(quán)值與偏置、最大訓練次數(shù)等,并根據(jù)訓練樣本得到小類別的先驗概率,按照上述方法加入目標函數(shù)中,從而構(gòu)建新的目標函數(shù).
步驟2:將樣本輸入到網(wǎng)絡(luò)進行訓練,得到實際輸出.
步驟3:計算網(wǎng)絡(luò)誤差,并將當前訓練次數(shù)加1.
步驟4:當訓練次數(shù)達到最大,或誤差E小于目標函數(shù)誤差,網(wǎng)絡(luò)則停止訓練,算法結(jié)束;否則,轉(zhuǎn)至步驟5.
步驟5:計算網(wǎng)絡(luò)誤差即目標函數(shù)值,利用上述公式調(diào)整權(quán)值與偏置,并轉(zhuǎn)至步驟2.
本文將提出的基于先驗概率加權(quán)的神經(jīng)網(wǎng)絡(luò)算法與經(jīng)典神經(jīng)網(wǎng)絡(luò)算法應(yīng)用于不平衡數(shù)據(jù)分類問題中進行性能分析和比較,并驗證提出算法的有效性和實用性.
在實驗中,取其小類別樣本占所有樣本的比例作為先驗概率值,采用梯度下降法去調(diào)整權(quán)值和偏置,激活函數(shù)采用sigmoid函數(shù),最大訓練次數(shù)都設(shè)為20 000次.此外,考慮到在不平衡分類問題中,整體分類精度不能反映分類器的真實性能.因此,采用G-mean測度作為分類性能的另一個量度,其計算公式為
(14)
其中,Acc+與Acc-分別代表少數(shù)類與多數(shù)類樣本的分類精度,因此,G-mean測度測試的是2類樣本分類精度的平衡度.
本文分類數(shù)據(jù)選用銀行違約數(shù)據(jù)Defalt和UCI經(jīng)典二分類數(shù)據(jù)集中的Credit數(shù)據(jù)集,具體信息如表1所示.
表 1 數(shù)據(jù)信息
4.1 實驗1:Defalt數(shù)據(jù)分類銀行違約數(shù)據(jù)集Defalt通過數(shù)據(jù)中的信用卡余額(balance)、收入(income)以及是否為學生(student)3個變量建立神經(jīng)網(wǎng)絡(luò)對樣本進行分類,判斷是否違約.該數(shù)據(jù)共有10 000個樣本,將樣本按照是否違約分為2類,其中違約樣本只有333個為小類別,則該小類別大概占樣本的1/30,可取其目標函數(shù)中的權(quán)重為30,不違約樣本類別的權(quán)重依然取為1.得到目標函數(shù)權(quán)重之后,將訓練樣本分別帶入經(jīng)典神經(jīng)網(wǎng)絡(luò)和基于先驗概率的加權(quán)神經(jīng)網(wǎng)絡(luò)2種算法中,從而建立網(wǎng)絡(luò),并分別用測試樣本的結(jié)果進行比較.得到多次神經(jīng)網(wǎng)絡(luò)后的整體分類精度和G-mean測度的平均值結(jié)果如表2~5所示.
表 2 2種算法在Defalt數(shù)據(jù)集上的比較
表 3 經(jīng)典神經(jīng)網(wǎng)絡(luò)的一次具體分類結(jié)果
表 4 加權(quán)神經(jīng)網(wǎng)絡(luò)的一次具體分類結(jié)果
表 5 2種算法在Credit數(shù)據(jù)集上的比較
由表2可知,基于先驗概率的加權(quán)神經(jīng)網(wǎng)絡(luò)在訓練樣本中的整體分類精度和G-mean測度的平均值都優(yōu)于經(jīng)典神經(jīng)網(wǎng)絡(luò)的;而在測試樣本中,雖然經(jīng)典神經(jīng)網(wǎng)絡(luò)的分類精度是優(yōu)于加權(quán)神經(jīng)網(wǎng)絡(luò)的,但是2類樣本分類精度的平衡度(即G-mean測度值)是很差的,說明經(jīng)典神經(jīng)網(wǎng)絡(luò)對于少數(shù)類別樣本的識別不夠精確,而加權(quán)神經(jīng)網(wǎng)絡(luò)則大大優(yōu)化了這一點.圖2和3是其中一次具體分類結(jié)果以及相應(yīng)的ROC曲線.由表2~5及圖2和3可知,基于先驗概率的加權(quán)神經(jīng)網(wǎng)絡(luò)在訓練樣本中對類別較少的樣本的識別率可以達到100%;而在測試樣本中,雖然犧牲了一定的整體分類精度,但是能在一定程度上增強對稀有類樣本的識別,并且從各自的ROC曲線也能看出,加權(quán)神經(jīng)網(wǎng)絡(luò)在訓練樣本上的AUC值能夠達到1,并且其后測試樣本的ROC曲線的AUC值也是較優(yōu)于經(jīng)典神經(jīng)網(wǎng)絡(luò)的.
圖 2 經(jīng)典神經(jīng)網(wǎng)絡(luò)訓練樣本和測試樣本的ROC曲線
圖 3 加權(quán)神經(jīng)網(wǎng)絡(luò)訓練樣本和測試樣本的ROC曲線
4.2 實驗2:Credit數(shù)據(jù)分類對于Credit數(shù)據(jù)集的處理類似于違約數(shù)據(jù),數(shù)據(jù)共有1 000個樣本,其中一類樣本700個,取目標函數(shù)中該類別的權(quán)重為1;另一類較少樣本300個,占總數(shù)的1/3,取該類別的權(quán)重為3.通過權(quán)值構(gòu)造目標函數(shù)后,將訓練樣本分別帶入經(jīng)典神經(jīng)網(wǎng)絡(luò)和基于先驗概率的加權(quán)神經(jīng)網(wǎng)絡(luò)2種算法中建立網(wǎng)絡(luò),并分別用測試樣本的結(jié)果進行比較,得到多次神經(jīng)網(wǎng)絡(luò)后的整體分類精度和G-mean測度的平均值結(jié)果如表6和7所示.
表 6 經(jīng)典神經(jīng)網(wǎng)絡(luò)的一次具體分類結(jié)果
表 7 加權(quán)神經(jīng)網(wǎng)絡(luò)的一次具體分類結(jié)果
實驗2的結(jié)果與實驗1類似,基于先驗概率的加權(quán)神經(jīng)網(wǎng)絡(luò)在訓練樣本上的分類精度和G-mean測度都是要優(yōu)于經(jīng)典神經(jīng)網(wǎng)絡(luò)的;測試樣本上雖然分類精度較低于經(jīng)典神經(jīng)網(wǎng)絡(luò),但G-mean測度較好,說明改進的加權(quán)神經(jīng)網(wǎng)絡(luò)能夠增強對稀有少數(shù)類樣本的識別.圖4和5是其中一次具體分類結(jié)果以及相應(yīng)的ROC曲線.
由表6和7及圖4和5的一次具體分類結(jié)果以及相應(yīng)的ROC曲線和AUC值可知,不管是在訓練樣本還是測試樣本上,基于先驗概率加權(quán)的神經(jīng)網(wǎng)絡(luò)對于稀有少數(shù)類別的樣本的識別率都是優(yōu)于經(jīng)典神經(jīng)網(wǎng)絡(luò)的,可以減少對少數(shù)類別的錯分代價.
圖 4 經(jīng)典神經(jīng)網(wǎng)絡(luò)訓練樣本和測試樣本的ROC曲線
圖 5 加權(quán)神經(jīng)網(wǎng)絡(luò)訓練樣本和測試樣本的ROC曲線
本文基于代價敏感學習的思想,利用樣本先驗概率通過對神經(jīng)網(wǎng)絡(luò)目標函數(shù)的加權(quán)構(gòu)造,提出了基于先驗概率的加權(quán)神經(jīng)網(wǎng)絡(luò)模型.此模型優(yōu)化了經(jīng)典神經(jīng)網(wǎng)絡(luò)在不平衡數(shù)據(jù)中對于少數(shù)稀有類別的分類識別,克服了各類規(guī)模差異較大對分類器的影響.最后通過2種神經(jīng)網(wǎng)絡(luò)在真實數(shù)據(jù)上的對比測試,驗證了改進模型的有效性和實用性,具有一定的潛在應(yīng)用價值.