么素素,王寶亮,侯永宏
1.天津大學(xué) 電氣自動化與信息工程學(xué)院,天津 300072
2.天津大學(xué) 信息與網(wǎng)絡(luò)中心,天津 300072
實(shí)際數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)中訓(xùn)練數(shù)據(jù)絕對不平衡的問題普遍存在。數(shù)據(jù)絕對不平衡是指數(shù)據(jù)集不僅存在類別不平衡問題,同時少數(shù)類樣本數(shù)量極少,不足以訓(xùn)練分類模型。例如疾病診斷中樣本數(shù)量極少且存在不平衡[1],文本分類、圖像分類[2]中數(shù)據(jù)維數(shù)過高且存在不平衡。數(shù)據(jù)絕對不平衡要同時解決兩個問題[2]:(1)訓(xùn)練數(shù)據(jù)類別不平衡問題,弱分類器對少數(shù)類有較高的分類錯誤率,分類結(jié)果傾向多數(shù)類;(2)訓(xùn)練數(shù)據(jù)不充分問題,少數(shù)類樣本中包含的信息不足以訓(xùn)練模型。因此尋找恰當(dāng)?shù)奶幚矸椒?,提高?xùn)練數(shù)據(jù)絕對不平衡情況下分類器性能以及分類器對少數(shù)類數(shù)據(jù)識別能力具有非常重要的意義。
目前針對不平衡問題研究,主要包含兩種方法[3]:一種是從數(shù)據(jù)層面平衡數(shù)據(jù)集;另一種是設(shè)計或改進(jìn)學(xué)習(xí)算法,降低算法對類別不平衡度的敏感度,從而增強(qiáng)算法的魯棒性。但是當(dāng)訓(xùn)練數(shù)據(jù)絕對不平衡時,直接訓(xùn)練分類器或者利用抽樣方法平衡訓(xùn)練集都不能達(dá)到理想的分類效果。增加訓(xùn)練數(shù)據(jù)是解決絕對不平衡問題的有效方法[4],但是新樣本的標(biāo)注需要花費(fèi)大量的時間與人力。因此有學(xué)者提出引入相似領(lǐng)域數(shù)據(jù)補(bǔ)充少數(shù)類訓(xùn)練集,利用遷移學(xué)習(xí)思想解決數(shù)據(jù)絕對不平衡問題[2,5-8]。遷移學(xué)習(xí)[9]打破了傳統(tǒng)機(jī)器學(xué)習(xí)算法中訓(xùn)練數(shù)據(jù)集與測試數(shù)據(jù)集獨(dú)立同分布的假設(shè),可以有效利用過期數(shù)據(jù)進(jìn)行學(xué)習(xí)。但是依然存在一些問題,如輔助領(lǐng)域類別不平衡條件下的樣本選擇問題[2]以及領(lǐng)域間類別不平衡度不一致的問題[10]。
為解決上述問題,本文融合級聯(lián)模型與集成遷移學(xué)習(xí)思想,提出了基于級聯(lián)模型的集成遷移學(xué)習(xí)算法(ensemble transfer learning algorithm based on cascade structure,CETLA)。首先,對TrAdaBoost[10]算法進(jìn)行改進(jìn),通過引入權(quán)重恢復(fù)因子,動態(tài)調(diào)整輔助領(lǐng)域樣本權(quán)重,解決輔助領(lǐng)域樣本權(quán)重不可恢復(fù)問題。隨后,將改進(jìn)的TrAdaBoost算法作為級聯(lián)結(jié)構(gòu)各節(jié)點(diǎn)分類器基分類器,利用級聯(lián)結(jié)構(gòu)對輔助領(lǐng)域數(shù)據(jù)進(jìn)行樣本選擇。最終集成各節(jié)點(diǎn)分類器作為最終分類器。在真實(shí)數(shù)據(jù)集上進(jìn)行驗(yàn)證,證明本文算法能有效提高在測試集上的F-measure值以及G-mean值。
本文組織結(jié)構(gòu)如下:第2章簡要介紹基于Ada-Boost的集成遷移學(xué)習(xí)算法TrAdaBoost,并優(yōu)化其權(quán)重更新策略;第3章主要介紹基于級聯(lián)結(jié)構(gòu)的集成遷移學(xué)習(xí)算法;第4章對本文算法進(jìn)行實(shí)驗(yàn)仿真與結(jié)果分析;第5章對全文進(jìn)行總結(jié)。
TrAdaBoost算法是首個基于boosting技術(shù)的實(shí)例遷移算法,該算法假設(shè)輔助領(lǐng)域與目標(biāo)領(lǐng)域具有共同的特征空間、標(biāo)記空間,領(lǐng)域差異僅在于數(shù)據(jù)分布不同。領(lǐng)域間數(shù)據(jù)分布差異導(dǎo)致輔助領(lǐng)域中存在一部分“壞”樣本,這些“壞”樣本的引入會降低分類器性能。TrAdaBoost算法利用AdaBoost更新目標(biāo)領(lǐng)域權(quán)重,利用Hedge(β)[11]算法更新輔助領(lǐng)域權(quán)重。在迭代過程中降低錯分樣本權(quán)重,減弱該樣本對下一次分類器訓(xùn)練的影響力,從而實(shí)現(xiàn)領(lǐng)域知識遷移。
根據(jù)TrAdaBoost算法權(quán)重更新策略可知,在樣本權(quán)重歸一化之后,輔助領(lǐng)域樣本權(quán)重和單調(diào)下降,目標(biāo)領(lǐng)域樣本權(quán)重和單調(diào)上升,領(lǐng)域間權(quán)重差異逐漸增加,輔助領(lǐng)域權(quán)重快速收斂。同時算法缺少權(quán)重恢復(fù)機(jī)制,在之后的迭代過程中,即使輔助樣本對目標(biāo)領(lǐng)域?qū)W習(xí)有幫助,其權(quán)重也沒辦法恢復(fù)。
在TrAdaBoost算法中,弱分類器對少數(shù)類樣本有較高的分類錯誤率,導(dǎo)致輔助領(lǐng)域少數(shù)類樣本權(quán)重收斂更快。TrAdaBoost算法僅集成后半部分分類器,而輔助領(lǐng)域少數(shù)類樣本很可能已經(jīng)收斂了,這些樣本將不會對目標(biāo)領(lǐng)域模型訓(xùn)練有影響。輔助領(lǐng)域的引入反而加重了訓(xùn)練集的不平衡度。
針對TrAdaBoost算法輔助領(lǐng)域權(quán)重收斂過快問題,DTrAdaBoost[12]通過引入動態(tài)因子防止輔助領(lǐng)域發(fā)生權(quán)重轉(zhuǎn)移,但算法收斂慢,計算代價較高。Al-Stouhi等人[2]利用“標(biāo)簽依賴因子”限制輔助領(lǐng)域權(quán)重收斂速度,對輔助領(lǐng)域中少數(shù)類樣本賦予更高的標(biāo)準(zhǔn)化權(quán)重,使得弱分類器具有更平衡的假設(shè)分類面。但是該算法沒能解決領(lǐng)域間類別平衡度不一致問題。
針對上述缺陷,假設(shè)不平衡樣本分類中輔助領(lǐng)域小類樣本有助于提升分類器性能,本文提出了一種基于動態(tài)權(quán)重恢復(fù)因子的實(shí)例遷移算法,用于級聯(lián)模型中各節(jié)點(diǎn)分類器的訓(xùn)練。
基于權(quán)重恢復(fù)因子的TrAdaBoost算法(weight recovery factor based TrAdaBoost,WR-TrAdaBoost)流程如下。
輸入:輔助領(lǐng)域數(shù)據(jù)Ds;目標(biāo)領(lǐng)域數(shù)據(jù)Dt;將Ds與Dt混合成訓(xùn)練集D,前ns個樣本屬于Ds,剩余nt個樣本屬于Dt,其中xi∈X是樣本特征集,yi∈{0,1}為樣本標(biāo)簽;最大迭代次數(shù)m;弱分類器h(x)。
1.權(quán)向量歸一化:
2.訓(xùn)練弱分類器:
3.計算弱分類器ht(x)在目標(biāo)領(lǐng)域數(shù)據(jù)的錯誤率:
4.計算ht(x)對目標(biāo)領(lǐng)域各類別分類錯誤率:
式中,ns+1≤j≤ns+nt,mp與mn分別為目標(biāo)領(lǐng)域少數(shù)類與多數(shù)類樣本數(shù)量。
5.計算權(quán)重更新因子:
6.權(quán)向量更新:
針對TrAdaBoost算法中輔助領(lǐng)域權(quán)重不可恢復(fù)問題,引入動態(tài)權(quán)重修復(fù)因子σ,動態(tài)調(diào)整輔助領(lǐng)域少數(shù)類權(quán)重。算法針對不平衡數(shù)據(jù)進(jìn)行分類,目標(biāo)領(lǐng)域少數(shù)類樣本分類準(zhǔn)確率可能為0。加入一個較小的正則項值之后,既不會影響模型性能,也避免σ計算過程中出現(xiàn)分母為0的情況。
如算法第4~5步所示,根據(jù)權(quán)重恢復(fù)因子的計算方式可知,利用目標(biāo)領(lǐng)域中不同類別樣本分類正確率之間的相對大小動態(tài)調(diào)節(jié)權(quán)重恢復(fù)因子,可以減弱算法對樣本不平衡度的敏感度。當(dāng)目標(biāo)領(lǐng)域類別準(zhǔn)確度一致度較高時,σ≈1;當(dāng)少數(shù)類樣本權(quán)重過高導(dǎo)致模型偏向少數(shù)時,σ<1;當(dāng)目標(biāo)領(lǐng)域中少數(shù)類樣本錯誤率較高時,σ>1。
BalancedCascade[13]利用人臉識別中的級聯(lián)模型思想實(shí)現(xiàn)不平衡分類。算法主要通過3個要素解決數(shù)據(jù)不平衡問題:(1)利用級聯(lián)模型逐步刪除多數(shù)類樣本,使得級聯(lián)結(jié)構(gòu)后面節(jié)點(diǎn)數(shù)據(jù)集更平衡;(2)在各個節(jié)點(diǎn)對數(shù)據(jù)集下采樣,平衡數(shù)據(jù)集;(3)利用集成機(jī)制,提升系統(tǒng)泛化能力。
針對不平衡問題,BalancedCascade算法在每個節(jié)點(diǎn)利用下采樣方法平衡訓(xùn)練數(shù)據(jù),但當(dāng)數(shù)據(jù)絕對不平衡時,少數(shù)類數(shù)據(jù)不充分導(dǎo)致下采樣得到的數(shù)據(jù)不足,分類器對訓(xùn)練樣本過擬合。本文通過引入輔助領(lǐng)域數(shù)據(jù),很好地解決不平衡數(shù)據(jù)分類中少數(shù)類樣本不充分問題。
Fig.1 Block diagram of CETLAalgorithm圖1 CETLA算法步驟框圖
針對節(jié)點(diǎn)t,由上一節(jié)點(diǎn)得到的分類器與權(quán)向量對數(shù)據(jù)集進(jìn)行處理。利用Ht-1與對輔助領(lǐng)域進(jìn)行樣本選擇,得到;利用對目標(biāo)領(lǐng)域樣本進(jìn)行過采樣,得到將與作為訓(xùn)練集,根據(jù)WR-TrAdaBoost算法訓(xùn)練得到Ht。經(jīng)過n個節(jié)點(diǎn)訓(xùn)練,得到一個分類器組{H1,H2,…,Hn},最終得到的分類器根據(jù)加權(quán)投票策略產(chǎn)生。
3.2.1 目標(biāo)領(lǐng)域過采樣策略
CETLA算法利用遷移學(xué)習(xí)思想引入輔助領(lǐng)域數(shù)據(jù)補(bǔ)充目標(biāo)領(lǐng)域訓(xùn)練集,由于目標(biāo)領(lǐng)域數(shù)據(jù)量相對較少,容易導(dǎo)致領(lǐng)域間權(quán)重不匹配,從而需要對目標(biāo)領(lǐng)域樣本進(jìn)行過采樣。
目前主流的過采樣方法是合成少數(shù)類過采樣技術(shù)[14],但是該算法沒有考慮樣本的重要程度。本文利用級聯(lián)模型,提出一種基于樣本權(quán)重的過采樣策略,除初始節(jié)點(diǎn)之外,各節(jié)點(diǎn)輸入的目標(biāo)領(lǐng)域訓(xùn)練樣本需要根據(jù)上一節(jié)點(diǎn)的目標(biāo)領(lǐng)域樣本權(quán)向量進(jìn)行過采樣。
級聯(lián)結(jié)構(gòu)中各節(jié)點(diǎn)利用WR-TraAdaboost算法訓(xùn)練分類器,經(jīng)過m次迭代,被錯分的樣本權(quán)重增加,因此根據(jù)上一節(jié)點(diǎn)得到的權(quán)重進(jìn)行過采樣可以有效保證重要樣本在之后訓(xùn)練中能保持足夠影響力。
3.2.2 輔助領(lǐng)域樣本選擇策略
利用與目標(biāo)領(lǐng)域相似的輔助領(lǐng)域數(shù)據(jù)解決目標(biāo)領(lǐng)域訓(xùn)練集不充分問題。由于輔助領(lǐng)域中不僅存在與目標(biāo)領(lǐng)域相似的樣本,同時存在大量不相關(guān)樣本,這些樣本的引入會導(dǎo)致模型性能下降,引起“負(fù)遷移”。
CETLA算法利用級聯(lián)結(jié)構(gòu)對輔助領(lǐng)域進(jìn)行樣本選擇。在各節(jié)點(diǎn)利用WR-TraAdaboost算法,經(jīng)過m次迭代,輔助領(lǐng)域中與目標(biāo)分類器假設(shè)不一致的樣本權(quán)重收斂。對于不平衡分類,多數(shù)類樣本數(shù)量占優(yōu),被錯分的幾率較小,因此當(dāng)經(jīng)過m輪迭代之后,多數(shù)類樣本中權(quán)重較小的樣本可以視為噪聲樣本。將這些樣本剔除,使其不再出現(xiàn)在下一節(jié)點(diǎn)。
經(jīng)過N次迭代之后權(quán)重較高的樣本,視為與目標(biāo)領(lǐng)域相似度較高,若該類樣本被上一節(jié)點(diǎn)訓(xùn)練好的模型正確分類,則說明該樣本信息被有效利用,可以將其刪除。
輔助領(lǐng)域樣本選擇階段主要流程如下:(1)移除輔助領(lǐng)域中樣本權(quán)重較小的樣本(噪聲樣本);(2)對于輔助領(lǐng)域權(quán)重較高的多數(shù)類樣本Ns,用分類器進(jìn)行分類,從中移除被正確分類的樣本(冗余樣本,信息已被利用的樣本),從而保證目標(biāo)領(lǐng)域樣本逐漸占優(yōu)。為提高算法的普適性,不用具體數(shù)值作為閾值,而是采用自適應(yīng)閾值。本文利用輔助領(lǐng)域樣本權(quán)重均值作為冗余樣本選擇閾值,參數(shù)設(shè)置的合理性將在4.2節(jié)參數(shù)設(shè)置階段進(jìn)行實(shí)驗(yàn)說明。
利用集成遷移學(xué)習(xí)算法解決絕對不平衡樣本分類問題,CETLA算法流程如下所示。
輸入:輔助領(lǐng)域數(shù)據(jù)Ds;目標(biāo)領(lǐng)域數(shù)據(jù)Dt;混合為數(shù)據(jù)集D={(x1,y1),(x2,y2),…,(xN,yN)},大小為N;級聯(lián)節(jié)點(diǎn)個數(shù)n;WR-TrAdaBoost迭代次數(shù)m;弱分類器h(x)。
1.應(yīng)用上文提到的基于樣本權(quán)重的過采樣策略對目標(biāo)領(lǐng)域進(jìn)行過采樣,過采樣比例為r=|Ps|/|Pt|,形成新的樣本集
3.調(diào)整分類器閾值,使得分類器對目標(biāo)領(lǐng)域樣本誤警率為a,a略高于0.5。
4.輔助領(lǐng)域樣本選擇:
式中,wmin為輔助領(lǐng)域樣本權(quán)重最小值;wt為冗余樣本篩選閾值。
輸出:
為了驗(yàn)證算法可靠性,在兩個數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)。首先利用20 Newsgroups數(shù)據(jù)集構(gòu)造3個跨領(lǐng)域分類任務(wù),分別為Data1:REC-VS-TALK,Data2:RECVS-SCI,Data3:SCI-VS-TALK。如表1所示,針對上述3個任務(wù)分別構(gòu)造不平衡度為10%、5%、2%的數(shù)據(jù)集。同時利用Multi-Domain Sentiment Dataset[15]構(gòu)造兩個跨領(lǐng)域分類任務(wù),分別為Data4:books-VS-dvd,Data5:books-VS-electronics。數(shù)據(jù)集信息如表1所示。
針對級聯(lián)結(jié)構(gòu)中節(jié)點(diǎn)個數(shù)n對模型性能的影響進(jìn)行驗(yàn)證。由圖2可知,在開始階段模型性能隨著n的增加有所提升,但是n到達(dá)4后性能開始下降。因此在之后的對比實(shí)驗(yàn)中,將CETLA與Balanced-Cascade中節(jié)點(diǎn)n的個數(shù)設(shè)置為4,每個節(jié)點(diǎn)分類器訓(xùn) 練8輪。為保證實(shí)驗(yàn)的相對公平性,其余算法均訓(xùn)練32輪。
通過圖3結(jié)果可知,將輔助領(lǐng)域樣本權(quán)重均值作為樣本選擇閾值時,模型性能最穩(wěn)定。若取值過小,會導(dǎo)致輔助領(lǐng)域多數(shù)類樣本數(shù)量急劇減少,模型性能下降;若取值過高,則不能實(shí)現(xiàn)冗余樣本刪除,模型性能下降。因此本文利用輔助領(lǐng)域樣本權(quán)重均值作為冗余樣本選擇閾值。
對于相對平衡的數(shù)據(jù)集分類學(xué)習(xí),通常采取分類精度作為評價指標(biāo)。但是對不平衡數(shù)據(jù)集而言,利用分類精度作為評價指標(biāo)通常不能很好地反應(yīng)分類模型的性能。不平衡學(xué)習(xí)中將少數(shù)類定義為正類(positive),多數(shù)類定義為負(fù)類(negative)。二分類混淆矩陣如表2所示。
Table 1 Dataset information表1 數(shù)據(jù)集信息
Fig.2 Influence of the number of nodesnin cascade structure圖2 級聯(lián)結(jié)構(gòu)節(jié)點(diǎn)數(shù)n的影響
Fig.3 G-mean values of different sample selection thresholds圖3 不同樣本選擇閾值下的G-mean值
Table 2 Two-classification confusion matrix表2 二分類混淆矩陣
混淆矩陣相關(guān)評價指標(biāo)如下:
本文利用由混淆矩陣得到的F-measure、G-mean[16]作為算法性能評價指標(biāo)。G-mean用于評價分類器在兩個類別上的平均性能。F-measure是查全率與召回率的調(diào)和平均值,其取值與二者較小者較為接近。其中β用于調(diào)節(jié)查準(zhǔn)率與召回率的相對重要程度,當(dāng)β>1,召回率比較重要,反之,查準(zhǔn)率比較重要。這里令β=1。
4.4.1 WR-TraAdaboost權(quán)重收斂性驗(yàn)證
為驗(yàn)證權(quán)重恢復(fù)因子對分類器性能的影響,針對 3 種集成遷移算法 TrAdaBoost[10]、Rare Transfer[2]、WR-TraAdaboost在迭代過程中權(quán)重變化進(jìn)行測試。
由圖4可知,隨著迭代次數(shù)加深,TrAdaBoost算法輔助領(lǐng)域樣本權(quán)重和占全部訓(xùn)練樣本權(quán)重的比值呈下降趨勢,且下降速度非???。Rare Transfer算法輔助領(lǐng)域樣本權(quán)重變化穩(wěn)定增長,隨著迭代加深,輔助領(lǐng)域權(quán)重逐漸接近1。由于算法僅集成后半部分分類器,目標(biāo)領(lǐng)域樣本對模型訓(xùn)練的影響可以忽略。對于WR-TrAdaBoost算法,輔助領(lǐng)域權(quán)重比增長到0.5左右時,權(quán)重不再增長,算法既保證了目標(biāo)領(lǐng)域樣本的影響力,又平衡了輔助領(lǐng)域訓(xùn)練集。
Fig.4 Weight ratio of auxiliary domain sample圖4 輔助領(lǐng)域樣本權(quán)值比變化曲線
通過對比圖4、圖5可知,Rare Transfer算法雖然保證了不同類別樣本權(quán)重一致,但是忽略了目標(biāo)領(lǐng)域數(shù)據(jù)的影響,當(dāng)輔助領(lǐng)域與目標(biāo)領(lǐng)域分布差異較大時,容易導(dǎo)致負(fù)遷移。而WR-TrAdaBoost算法既保證了不同類別權(quán)重平衡,又保證了領(lǐng)域間權(quán)重一致性。
Fig.5 Weight ratio of minority sample of auxiliary domain圖5 輔助領(lǐng)域少數(shù)類樣本權(quán)值比變化曲線
4.4.2 算法性能比較與分析
實(shí)驗(yàn)方法為10次十折交叉驗(yàn)證,結(jié)果為10次運(yùn)行結(jié)果的平均值。每個數(shù)據(jù)集上最好的結(jié)果用粗體標(biāo)出。
首先對在BalancedCascade(BC)與AdaBoost(Ada)算法中引入輔助領(lǐng)域數(shù)據(jù)前后的分類器性能進(jìn)行對比,在表3、表4中“t”代表訓(xùn)練集中只有目標(biāo)領(lǐng)域數(shù)據(jù),“s&t”表示訓(xùn)練集中引入了輔助領(lǐng)域數(shù)據(jù)。由實(shí)驗(yàn)結(jié)果可知,直接引入輔助領(lǐng)域數(shù)據(jù)有時會降低分類器性能,因此利用遷移學(xué)習(xí)方法對輔助領(lǐng)域?qū)崿F(xiàn)有選擇性的遷移很有必要。
Table 3 Comparison ofG-meanvalues on different algorithms表3 不同算法G-mean值性能比較
Table 4 Comparison ofF-measurevalues on different algorithms表4 不同算法F-measure值性能比較
通過表3、表4數(shù)據(jù)可知,相對于TrAdaBoost算法與Rare Transfer算法,WR-TrAdaBoost算法訓(xùn)練的分類器在兩個數(shù)據(jù)集上性能相對較好。表明針對絕對不平衡問題,對少數(shù)類樣本增加權(quán)重恢復(fù)因子可以在一定程度上提升分類器性能。
通過實(shí)驗(yàn)對比本文算法與不平衡學(xué)習(xí)算法在不同不平衡度下的F-measure與G-mean。由表3、表4可知,本文CETLA算法針對絕對不平衡問題性能良好。在Data4、Data5上進(jìn)行驗(yàn)證,發(fā)現(xiàn)TrAdaBoost算法與未使用輔助數(shù)據(jù)AdaBoost算法相比性能較差,即TrAdaBoost針對不平衡數(shù)據(jù)集可能導(dǎo)致負(fù)遷移。
為了解決數(shù)據(jù)絕對不平衡問題,提高分類模型中少數(shù)類的識別率與準(zhǔn)確率,本文將級聯(lián)模型與遷移學(xué)習(xí)算法相結(jié)合,提出了一種基于集成遷移學(xué)習(xí)的絕對不平衡數(shù)據(jù)分類算法。本文算法在級聯(lián)結(jié)構(gòu)各節(jié)點(diǎn)模型訓(xùn)練階段,利用基于權(quán)重恢復(fù)因子的TrAdaBoost算法進(jìn)行樣本權(quán)重更新。之后將遷移學(xué)習(xí)算法融入級聯(lián)結(jié)構(gòu),利用級聯(lián)結(jié)構(gòu)逐漸完成輔助領(lǐng)域樣本篩選,并逐漸平衡訓(xùn)練集。最后將全部節(jié)點(diǎn)的分類器組進(jìn)行集成,得到最終分類模型。在真實(shí)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,本文提出的CETLA算法可以有效提高分類模型中受訓(xùn)練數(shù)據(jù)絕對不平衡影響的學(xué)習(xí)算法性能。
本文算法未考慮多個輔助領(lǐng)域的遷移學(xué)習(xí),當(dāng)輔助領(lǐng)域樣本與目標(biāo)領(lǐng)域樣本差異較大時可能會導(dǎo)致負(fù)遷移,未來工作可以考慮將本文算法推廣到多輔助領(lǐng)域場景。