何新林, 戚宗鋒, 李建勛
(1. 上海交通大學 電子信息與電氣工程學院, 上海 200240;2. 電子信息系統復雜電磁環境效應國家重點實驗室, 河南 洛陽 471003)
數據分布不平衡是影響數據挖掘或者機器學習分類算法性能的一個關鍵因素.傳統的分類算法假設數據分布是均衡的,以提升全局準確率為優化目標.但現實世界中的許多應用如醫療診斷[1]、金融欺詐檢測[2]、人臉識別[3]及機械故障檢測[4]等均存在數據分布不均衡的情況,某些類別的數目遠遠超過其他類別,二分類問題中通常分別稱為多數類和少數類.在這些問題中,少數類是人們關注的重點,傳統分類算法致力于提升全局準確率,導致分類結果偏向多數類而忽視了人們關注的重點.
目前主要從數據層面[5-9]和算法層面[10-11]或者兩者結合[12-13]來解決不平衡分類問題.數據層面的解決辦法通過對少數類過采樣或者多數類欠采樣使數據達到均衡,算法層面的解決辦法通過設定算法參數如數據加權、代價敏感來強調少數類,兩個方法的結合通過采樣來平衡數據集,同時改進算法來強調少數類.
盡管現有的解決辦法達到了良好的表現[10],鑒于最近幾年深度網絡生成模型在表示學習上顯現出的巨大優勢[14-15],本文關注利用深度神經網絡對少數類進行過采樣,因為過采樣不會丟失數據中重要的信息,而且可以作為預處理步驟來進行可視化或者與算法層面方法相結合.傳統的采樣方法都是基于線性插值的方式,不能根據數據的概率分布函數進行采樣.用過采樣方法來解決不平衡分類問題是通過生成少數類樣本來使數據達到均衡.最簡單的方法是復制現有的少數類樣本,這種方法容易導致過擬合.Chawla等[5]提出在選定的少數類樣本和它們的K近鄰之間進行線性插值來生成少數類樣本,這種方法把所有少數類樣本等同看待,沒有考慮數據內分布的差異性,容易導致生成樣本落入多數類區域.Han等[6]提出識別出位于類間邊界的難以學習的少數類樣本,對每個邊界集合樣本生成同等數量的樣本.He等[7]用自適應方法根據每個少數類樣本K近鄰中多數類樣本的數量來決定對每個少數類樣本生成樣本的數目,這種方法容易受噪聲影響,對落入多數類區域的噪聲給予過多關注.Barua等[8]提出識別出那些難以學習的少數類樣本,并基于其與多數類樣本的歐式距離給每個少數類樣本分配權重,再用層次聚類法把少數類樣本分為若干簇,在簇內根據權重采樣插值生成少數類樣本.Douzas等[9]提出利用條件生成對抗網絡學習數據的多類分布,再進行少數類過采樣.
針對現有的基于插值的過采樣算法僅僅利用鄰域樣本的缺點,本文引入了隱變量模型,提出了一種基于隱變量后驗生成對抗網絡的過采樣(LGOS)算法.生成對抗網絡利用了所有少數類樣本來學習數據真實概率分布,在隱變量后驗上采樣克服了基于高斯噪聲生成對抗網絡生成數據的隨機性.同時本文引入了權重縮放因子,提出了與過采樣算法相結合的不平衡分類算法TrWSBoost,人工合成的過采樣樣本和原始樣本有很大相關性就相當于遷移源領域樣本,原始樣本被當作目標領域樣本來迭代訓練集成分類器.
生成對抗網絡(Generative Adversarial Networks, GANs)是Goodfellow等[16]于2014年提出的一種無監督生成模型.生成對抗網絡由兩部分組成:生成器G和判別器D,結構如圖1所示.這兩個網絡以對抗方式進行訓練,生成器用來學習真實數據的分布,輸入是隱變量先驗,通常假設為高斯噪聲或者均勻噪聲,輸出為接近真實數據分布的生成數據.判別器是一個二分類器,用來判別輸入是真實數據還是生成數據的概率.
生成器G和判別器D的訓練目標是相互對抗的.判別器對輸入樣本進行真假判定,通過訓練不斷提升自己的分類效果,識別出生成器所生成的樣本.生成器希望生成更加真實的樣本以混淆判別器,讓判別器無法分辨真假.設輸入的隨機噪聲為z,生成器G將隨機噪聲轉換為生成樣本G(z).判別器D對輸入樣本輸出D(x)為[0,1]范圍內的一個實數,表示輸入樣本為真實樣本的概率值.其損失函數為
Ez~Pz{log[1-D(G(z))]}
(1)
式中:x為真實輸入樣本;Pr為真實數據分布;Pz為輸入噪聲分布;E為數據期望.

圖1 生成對抗網絡結構圖Fig.1 Framework of generative adversarial network
兩個網絡進行迭代訓練,理論上最終達到納什均衡時,生成器G生成的數據分布和真實數據分布相同,判別器D輸出概率值為0.5,無法區分真實樣本和生成樣本.
在生成對抗網絡中,把高斯噪聲或者均勻噪聲當作隱變量先驗分布,而隱變量真實先驗分布和真實后驗分布未知,所以生成數據質量具有隨機性.變分自編碼隱變量模型用近似后驗分布代替真實先驗分布,運用變分貝葉斯方法,在概率圖模型上執行高效的近似推理和學習.均值場方法在很多情況下難以求得后驗分布的解析解,變分自編碼隱變量模型在概率圖框架下形式化這個問題,通過優化對數似然的下界來間接優化最大對數似然.
近似后驗分布和真實后驗分布的距離用KL散度度量:
DKL(qφ(z|x)‖pθ(z|x))=
Ez~qφ[logqφ(z|x)-logpθ(z|x)]
(2)
式中:φ為變分模型參數;qφ(z|x)為近似后驗分布,假設其服從高斯分布;θ為數據生成模型參數;pθ(z|x)為真實后驗分布.
通過貝葉斯變換可得變分下界為
L(θ,φ;x)=
logp(x)-DKL[qφ(z|x)‖pθ(z|x)]=
Ez~qφ[logpθ(x|z)]-DKL[qφ(z|x)‖pθ(z)]
(3)
隱變量模型通過編碼器得到近似后驗分布qφ(z|x)的均值和協方差,在隱空間采樣輸入解碼器重構原始輸入數據,誤差沿網絡反向傳播更新網絡參數來逼近變分下界.
本文所建立模型中,編碼器E從真實樣本提取隱變量作為監督信號,在隱空間采樣作為信號輸入生成器G用來生成和真實數據同分布的樣本.隱變量模型的解碼器從隱空間采樣重構原始輸入樣本,故可把生成器和解碼器結合,提出了一種數據生成模型LGOS.
編碼器E輸入x,輸出為隱變量分布均值和方差,可表示為
z~E(x)=qφ(z|x)
(4)
式中:qφ(z|x)~N(μ,σ),μ、σ分別為隱變量對應高斯分布的均值和方差.
在隱空間采樣輸入生成器G得到生成數據:
(5)

假設隱變量先驗分布為正態分布N(0,I),則變分下界為
L(θ,φ;x)=-Lele-LKL
(6)
式中:Lele為重構誤差;LKL為隱變量近似后驗分布和先驗分布之間的KL散度,具體表示如下.
Lele=-Eqφ(z|x)[logpθ(x|z)]=
(7)
LKL=DKL(qφ(z|x)‖pθ(z))=
(8)
式中:J為隱變量維度;μj和σj分別為樣本近似后驗分布對應的均值和方差.
判別器D損失為
LD=-Ex~pr{log[D(x)]}-
Ez~qφ(z|x){log[1-D(G(z))]}
(9)
判別器D對真實輸入樣本輸出較大的似然概率值,而對生成器G生成的樣本輸出小的似然概率值.
生成器G對抗損失為
LDG=-Ez~pz{log[D(G(z))]}
(10)
生成器G和判別器D進行反向迭代,兩個模型一直處于對抗訓練過程.
用真實數據和生成數據之間的歐式距離來度量似然函數在很多情況下不適用.因為真實數據和生成數據要服從同分布,在模型中添加邊緣分布自適應和條件分布自適應兩個限制條件.
邊緣分布的差距用最大化均值差異(MMD)度量[17],最大化均值差異把原變量映射到再生希爾伯特空間,在另一空間中求取兩個分布的距離.在生成對抗網絡中,判別器的目的就是學習數據樣本的特征來進行區分,所以在LGOS模型中,用生成對抗網絡判別器的最后一個隱層作為特征空間,特征向量的歐式距離即為MMD距離.
(11)
式中:l為判別器最后1個隱層;f為輸入數據在第l層對應的特征提取函數.

在LGOS模型中,用一個分類器C獲得條件概率,分類器輸出激活函數為softmax,輸出向量各維度表示樣本屬于各個類別的概率.條件分布距離損失為
(12)
分類器用原始數據訓練,用交叉熵函數作為其損失函數,分類器損失為
(13)
各模塊最終損失為
LE=LKL+γ1Lelement+γ2LMMD+γ3LGC
(14)
LG=LDG+γ1Lelement+γ2LMMD+γ3LGC
(15)
LD=-Ex~pr{log[D(x)]}-
Ez~qφ(z|x){log[1-D(G(z))]}
(16)
(17)
式中:γ1、γ2及γ3為超參數,用于調節各部分損失比重大小.
網絡結構圖如圖2所示.

圖2 本文LGOS算法網絡結構圖Fig.2 Framework of proposed LGOS algorithm
以TrAdaboost[20]為基礎,提出了改進的帶權重縮放因子的TrWSBoost遷移學習分類算法.把生成的少數類樣本當作源領域樣本,原始訓練數據當作目標領域樣本,目標是要訓練遷移學習集成分類器.
在TrWSBoost模型中,在每一輪迭代時,對于源領域樣本,被基學習器錯分時,認為這些錯分樣本是與原始樣本不同分布的樣本,錯分樣本權重在下一輪迭代時應該降低.正確分類樣本權重保持不變.目標領域樣本錯分時下一輪迭代權重增加,正確分類時權重保持不變.在TrAdaboost算法中,源領域樣本錯分時權重衰減過快[21-22],且模型融合時僅融合了后一半模型,沒有充分利用源領域信息.考慮到本文中源領域樣本和目標領域樣本較大的相關性,為了解決權重衰減過快的問題,本文以目標領域樣本加權錯誤率和源領域樣本加權錯誤率為基礎,設定了權重縮放因子.當目標領域加權錯誤率低時,認為模型表現良好,減慢源領域樣本權重更新速度,反之亦然.
最終算法結構圖如圖3、4所示,算法流程如下:
(1) LGOS過采樣算法.
(a) 初始化.設置訓練批次大小為m,初始化編碼器E、生成器G、判別器D和分類器C 4個網絡參數.設置超參數γ1=0.01,γ2=1,γ3=0.02.
(b) 從真實數據中隨機抽取批次大小為m的訓練數據x,并輸入編碼器E后得到隱變量近似后驗分布z.


(f) 匯總各網絡損失,誤差反向傳播更新網絡參數.
(g) 重復執行步驟(2)~(6),更新網絡參數直至收斂.從隱空間采樣輸入生成器G得到最終生成樣本.
(2) TrWSBoost集成分類算法.


(e) 當前步數t自增1,未到N步時重復步驟(9)~(11).

圖3 本文LGOS算法流程圖Fig.3 Flowchart of proposed LGOS algorithm

圖4 訓練TrWSBoost集成分類器流程圖Fig.4 Flowchart of training of TrWSBoost ensemble classifier
通過對比實驗分析本文所提出的LGOS算法和TrWSBoost算法的性能,以隨機過采樣(ROS)和傳統的基于插值的過采樣算法如SMOTE[5],Borderline-SMOTE[6],ADASYN[7],MWMOTE[8]作為比較對象.首先,比較LGOS算法和其他過采樣算法生成數據的分布差異;其次,在加州大學歐文分校6個數據集(UCI)上詳盡比較了各過采樣算法生成數據訓練的分類器的性能;最后,把過采樣生成的數據作為遷移學習源領域樣本,原始數據作為目標領域樣本,對TrWSBoost算法和TrAdaboost算法進行比較.

圖5 LGOS 算法和其他過采樣算法生成數據圖形比較Fig.5 Visual comparison of synthetic data of LGOS and other oversampling methods
實驗選取了6個UCI公開數據集,把某類或幾類指定為少數類,其他類作為多數類人為制造不平衡數據集,各數據集描述見表1.He等[10]的實驗結果顯示當數據分布接近均衡時,分類器表現最好,故在本文中,對每一數據集均通過過采樣方法使少數類和多數類均衡.在實驗中,隨機選取80%的數據為訓練集,其余數據作為測試集,取10次實驗結果平均值作為報告結果.第一階段實驗采用決策樹分類器,采用基尼系數作為節點切分標準,葉子節點最少樣本數設置為1.SMOTE、Borderline-SMOTE、ADASYN算法K近鄰設置為5,對MWMOTE算法K1設為5,K2設為3,K3設為3,聚類簇合并閾值Cp設為3.第二階段實驗把過采樣生成的少數類樣本當作源領域樣本,原訓練集數據當作目標領域樣本,利用TrWSBoost算法訓練遷移學習分類器.為了與第一階段結果對比,弱分類器同樣選取決策樹分類器,迭代步數設置為50,當分類精確度很高時提前終止以防止過擬合.

表1 各數據集特性描述Tab.1 Description of characteristics of datasets
數據分布不均衡時,全局準確率不能作為分類器評價指標[10],實驗分別選取Recall、F-measure、G-mean及AUC[10]來評估過采樣算法的有效性.Recall衡量分類器在召回單一類別上的能力,在少數類應重點關注的應用中,這個指標是關注的重點,F-measure表示分類器在預測單一類別上的完備性和準確性的均衡,G-mean表示分類器召回兩個類別上的綜合表現,AUC與數據分布無關,適合比較不同分類器的差異.
選取satimage數據集,用各過采樣算法生成同樣數量的少數類樣本,利用t分布隨機領域嵌入(TSNE)投影算法將數據降到兩維進行圖形可視化表示.
圖5所示為LGOS 算法和其他過采樣算法生成數據圖形比較.從圖中可見,ROS算法生成樣本和原始數據中少數類重合,容易導致過擬合.SMOTE算法生成樣本相比于原始樣本差異小,而且有少部分生成樣本落入多數類區域成為噪聲,對分類器訓練不利.Borderline-SMOTE、MWMOTE及ADASYN算法側重邊界區域少數類樣本,這些樣本容易受落入多數類區域的噪聲影響,對應忽略的噪聲較大的權重,導致生成更多噪聲,而且容易導致邊界混合.從圖3(f)中可以看出,生成樣本的分布區域基本都在原始少數類樣本分布區域內,而且和原始樣本的關聯更小,說明本文所提出的LGOS算法能夠準確估計出真實樣本概率密度函數,生成樣本時是在真實的概率密度函數上采樣,不同于基于插值的方式,生成樣本時利用了全局的概率分布,生成樣本相比于原始樣本差異更大,提供的信息更多.
在6個UCI公開數據集上進行對比實驗,用過采樣算法生成的樣本和原始樣本混合訓練決策樹分類器,在測試集上的Recall、F-measure、G-mean和AUC指標見表2,粗體表示最優值.

表2 基于數據過采樣的決策樹分類器指標Tab.2 Metrics of decision tree classifier based on data oversampling
由表2可知,過采樣擴充數據集后的分類指標相比于原始數據集基本都有所上升,因為過采樣降低了數據集的不平衡比.相比于ROS、SMOTE、Borderline-SMOTE、MWMOTE及ADASYN算法,LGOS算法在Recall指標上明顯優于其他方法,說明LGOS算法生成的樣本較原始原本差異更大,提供的新信息更多,提高了召回率,這點從圖3也可看出.但LGOS算法生成樣本差異大也會引入少量噪聲,降低Precision,所以在F-measure指標上沒有顯現出優勢.在綜合評價指標G-mean和AUC上,LGOS有明顯優勢,說明過采樣同時兼顧了多數類和少數類.
把過采樣少數類樣本當作源領域樣本,原始樣本當作目標領域樣本,利用本文的TrWSBoost算法訓練集成分類器,本文實驗中選取決策樹作為基分類器,分類器測試指標見表3,粗體表示最優值.其中ROS表示先用ROS過采樣算法生成少數類樣本,再用所有數據訓練TrWSBoost分類器, 其余類同.TrAdaboost列表示用LGOS生成少數類樣本,再用TrAdaboost算法訓練集成分類器.

表3 基于數據過采樣的遷移學習分類器指標Tab.3 Metrics of transfer learning classifier based on data oversampling
從表2、3中可知,集成后各指標相比于單分類器均有明顯提升,表示集成方法是解決不平衡學習的一個好辦法.LGOS算法生成樣本在集成后在各指標上均超出了其他方法.TrWSBoost算法相比于TrAdaboost算法解決了權重衰減過快的問題.在本文研究中,由于源領域樣本和目標領域樣本極大的相關性,防止權重衰減過快具有合理性.
現有的不平衡分類問題過采樣方法均是基于樣本間插值的方法,區別在于如何區分需要關注的少數類樣本以及每個樣本對應的生成樣本數量.然而,這些方法均沒有有效利用數據的概率密度分布函數,導致生成樣本相比于原始樣本差異小.基于這一觀察以及最近幾年深度網絡生成模型顯現出的優越性,本文提出了一種基于隱變量后驗分布生成對抗網絡的過采樣方法,這一方法在隱空間中采樣通過生成器得到生成樣本,生成模型能夠學習真實樣本概率分布函數,故模型能夠生成和原始少數類同分布的樣本.在6個公開數據集上的對比實驗結果及生成數據圖形可視化分布均證明了LGOS算法的優越性.另外,提出了改進的基于實例的遷移學習方法,進一步提升了分類器的性能.接下來的工作可以從幾方面展開:① 本文僅關注于二類分類問題,可以擴展到多類分類問題;② 改進深度網絡處理離散變量的能力以適用于帶名義變量的分類問題;③ 該方法在回歸問題中的應用.