本發明涉及機器學習中的深度學習、遷移學習和不平衡分類領域,尤其涉及到一種深度遷移學習的不平衡分類集成方法。
背景技術:
傳統的數據分類方法把不同類型的數據同等看待,致力于提高整體的分類準確度。但現實中存在很多數據分布不平衡的情況,因為有些樣本或者是較少出現或者是收集代價高,使得某一類樣本數量遠遠少于其它類樣本數量,如疾病檢測、破產預估、市場客戶流失預測、軟件缺陷預測等。這些情況下的異常數據類(少數類)只占正常數據類(多數類)的10%到20%,分布不平衡,甚至極度不平衡。傳統的分類方法大多以數據分布基本均衡作為前提,以樣本總體的分類準確率作為目標,這對要從龐大的樣本中,尋找少量的異常樣本的不平衡分類問題并不合適,因為當少數的異常樣本都沒有被正確識別時,總體分類準確率也可以很高。當數據分布不平衡,特別是錯分類代價不同,錯分少數類樣本代價很高時,正確區分少數類樣本顯得尤其重要。因此不平衡數據分類問題成為備受關注的研究內容。
深度網絡可以有效地提取數據的特征,遷移學習能夠利用已經存在的相關任務或數據域的有標記數據處理目標任務或目標領域的問題。深度學習與遷移學習的結合稱為深度遷移學習(deeptransferlearning,dtl),將相關領域數據訓練的深度模型重用于目標領域,能夠有效提取數據特征,提高對不平衡數據的分類能力。
深度遷移學習利用相關領域的輔助數據建立深度網絡模型,通過深度網絡學習相關領域輔助數據特征,將學習的輔助深度網絡結構和特征遷移到目標領域。現有深度遷移學習存在不足:首先,特征遷移可能為目標學習帶來好處,同時也可能是負特征遷移而影響目標學習;其次,深度網絡結構遷移方法的選擇,使得學習的過程耗費大量的時間和空間代價。深度遷移學習的集成方法可以解決深度網絡結構遷移選擇問題,使學習代價降到最低;同時,減少負特征遷移的影響,使正向特征遷移發揮最大作用。但由輔助數據學習到的深度網絡遷移得到的分類器可能會傾向多數類,簡單的集成可能會對分類器的傾向產生疊加效果,使得最終的集成分類器過度傾向多數類,無法實現不平衡分類的目標,因此本發明提出了一種用于不平衡數據分類的深度遷移集成方法。
技術實現要素:
本發明的目的在于克服現有技術的缺點與不足,提供一種深度遷移學習的不平衡分類集成方法。
為實現上述目的,本發明所提供的技術方案為:
一種深度遷移學習的不平衡分類集成方法(ensembleofunbalanceddeeptransfer,eudt),包括以下步驟:
(1)建立輔助數據集:
根據目標數據的特性,選擇或者采集與目標任務相關的數據組成輔助數據集;
(2)構建輔助深度網絡模型和目標深度網絡模型:
確定深度網絡的結構,構建輔助深度網絡模型和目標深度網絡模型;
(3)訓練輔助深度網絡:
(3-1)利用無標簽的輔助數據樣本對棧式自編碼器進行預訓練;
(3-2)利用有標簽的輔助數據樣本對步驟(3-1)訓練得到的網絡參數進行調整;
(4)將輔助深度網絡的結構和參數遷移到目標深度網絡:
(4-1)將輔助深度網絡中的一個或多個隱含層遷移到目標深度網絡,遷移的隱含層不同可得到不同的遷移合成目標網絡;
(4-2)使用ape或者apce作為損失函數,利用目標數據對遷移合成的各個目標網絡中的一個或多個隱含層進行訓練,得到若干各不同的遷移分類器;
(5)各遷移分類器的集成:
用步驟(4-2)的遷移分類器的分類結果計算auprc值的乘積作為分類器的權值,對各個遷移分類器的分類結果加權集成,得到集成分類結果,作為集成分類器輸出。
步驟(1)中,所述輔助數據集是否與目標任務相關是通過經驗判斷。如數字識別問題,目標任務是識別某個數據集的數字變體,可選擇其它的數字數據集作為輔助數據集。
步驟(2)中,所述深度網絡模型為棧式降噪自編碼器(stackeddenoisingautoencoders,sda),棧式降噪自編碼器的每一個隱含層都是一個降噪自編碼器,設置深層網絡的激活函數為sigmoid函數。
所述步驟(3)具體為:
將輔助深度網絡的訓練過程分為兩個階段,分別是無監督的預訓練階段和有監督的微調階段:
a、預訓練階段先利用不帶標簽的數據進行降噪自編碼器的訓練,并將降噪自編碼器中編碼層的輸出作為下一個自編碼器的輸入,將訓練得到的自編碼器中的編碼部分依次堆疊得到最終的棧式網絡結構,其輸出的特征是無監督學習特征;單個自編碼器的訓練公式如下:
x=x+noise
其中,x為訓練樣本,noise為噪聲,encoder_layer為編碼層,decoder_layer為解碼層,sigmoid為激活函數,w為網絡權值參數,b為偏移量;
b、在棧式網絡結構的頂端加上一個分類器,根據樣本的類標對整個網絡的參數進行調整,此過程為有監督的微調階段,由此得到的數據特征為監督學習特征。
所述步驟(4)具體為:
將輔助深度網絡的結構和參數遷移到目標深度網絡包括兩步:
a、將輔助深度網絡隱含層遷移到目標深度網絡;遷移的對象包括任一隱含層、連續的若干個隱含層、整個網絡的所有隱含層中的一種;
b、用ape和apce作為損失函數,利用目標數據對遷移合成的各個目標網絡進行訓練得到目標分類器,訓練過程可“凍結”目標網絡中的部分隱含層,即不改變該部分隱含層參數的數值;
損失函數ape和apce的計算公式如下:
其中,m表示樣本總數,n表示多數類樣本的個數,p表示少數類樣本個數,n+p=m且n>p,o表示輸出層的神經元個數。auprc表示precision-recall曲線下的面積,precision-recall曲線是以recall為橫坐標,precision為縱坐標,根據不同分類閾值下的precision和recall值繪制而成的曲線。當c=n時,auprcc表示多數類的auprc值;當c=p時,auprcc表示少數類的auprc值。
平均精度表示不同分類閾值下,不同召回率所對應的不同精度的均值,可用平均精度
其中,r(k)表示第k個分類閾值對應的召回率,p(k)表示第k個分類閾值對應的精度。
ape和apce是應用于不平衡數據特征學習的深度網絡的損失函數,ape是改進的平均精度方差損失函數,apce是改進的平均精度交叉熵損失函數,利用auprc值實現對不同類別的樣本的區別對待,在計算樣本的損失代價時,動態調整樣本的權值,對多數類樣本賦予較少的權值,對少數類樣本賦予更多的權值,由此訓練得到的網絡對少數類樣本更加重視;
在步驟a中選擇不同的隱含層遷移,或者在步驟b中選擇局部網絡層進行參數調整,可遷移學習得到不同的分類器;由于目標數據的深度網絡由輔助數據遷移學習得到,各個分類器的分類結果存在差異,或者偏向少數類,或者偏向多數類,甚至產生負遷移的現象。
步驟(5)中,所述集成分類結果由下面的公式計算:
其中,
本發明與現有技術相比,具有如下優點與有益效果:
1、針對不平衡數據的分類問題,本發明提出了改進的平均精度方差損失函數ape和平均精度交叉熵損失函數apce,在計算樣本的損失代價時,動態調整樣本的權值,對多數類樣本賦予較少的權值,對少數類樣本賦予更多的權值,由此訓練得到的深度網絡對少數類樣本更加重視,更適用于不平衡數據的分類問題。
2、對于訓練數據不足的目標任務,利用輔助數據進行遷移學習,將輔助網絡的結構及提取的特征遷移到目標數據上,能夠節省目標網絡的訓練時間,有效提高模型的分類效果。
3、遷移輔助網絡中不同的隱含層可得到不同的目標分類器,實現對輔助數據集的不同特征的學習。將各個目標分類器的結果集成,可節省選擇最優遷移方式所耗費的大量時間代價與計算代價,避免負特征遷移,提高分類器的分類能力。
4、本發明利用輔助數據集學習數據特征和深度網絡結構,遷移到目標深度網絡,使目標網絡能利用輔助數據的特征;用改進的損失函數,提高少數類的權值,訓練遷移的目標深度網絡,能夠更為有效地學習目標數據的特征,故在不平衡數據分類時能有效提高對少數類的識別,提高分類性能。因而本方法具有實際應用價值,值得推廣。
附圖說明
圖1為本發明所述一種深度遷移學習的不平衡分類集成方法的流程圖。
圖2a為圖1所述方法的目標數據實例圖;圖2b為圖1所述方法的輔助數據實例圖。
圖3為圖1所述方法的深度網絡遷移學習示意圖。
圖4為圖1所述方法的集成分類器模型結構圖。
具體實施方式
下面結合具體實施例對本發明作進一步說明。
下面以識別chars74k數據集中的數字“1”為例,對本發明方法不平衡深度遷移集成方法eudt進行具體說明,本實施例所述的不平衡深度遷移集成方法的框架如圖1所示,其具體情況如下:
步驟1)中將chars74k數據集中數字“1”的樣本設置為目標數據的正類(102個),其余圖片設置為目標數據的負類(918個)。在現存的公共數據集中選擇與目標任務相關的數據mnist數據集作為輔助數據,將mnist數據集中數字“1”的樣本設置為輔助數據的正類(6742個),其余圖片設置為輔助數據的負類(53258個)。目標數據和輔助數據樣例圖像分別如圖2a、2b所示,單個樣例的圖片分辨率為28*28。
步驟2)中設置深度網絡的輸入節點個數為28*28=784,輸出節點個數為2,包含3個隱含層,3個隱含層神經元個數分別為[576,400,256]。使用批量梯度下降算法訓練深度網絡,每一個批次包含100個訓練樣本,預訓練階段設置25個epochs(epoch表示遍歷所有批次的訓練樣本的一次正反向傳遞過程),設置梯度下降算法的學習率為0.001;微調階段設置1000個epochs,設置梯度下降算法的學習率為0.1。進行微調時,若代價函數下降差值小于0.001,則提前終止;否則,直到1000個epochs完成。本方法使用python3.5實現,基于tensorflow深度學習框架,使用keras高層神經網絡api,實驗運行的gpu型號為nvidiageforcegtx1060,3gb顯存。
步驟3)利用步驟1)得到的輔助數據集和步驟2)所設置的網絡結構參數訓練輔助網絡。
步驟4)將輔助網絡的結構遷移到目標網絡,具體的遷移方法如圖3所示。在步驟4-1)中選擇不同的遷移,或者在步驟4-2)中選擇不同的隱含層進行參數調整可得到不同的六種遷移分類器,遷移分類器分別通過以下方式得到(圖3只展示了t1~t3分類器的遷移學習過程):
t1分類器:遷移輔助網絡的一層隱含層,利用目標數據對目標網絡的所有隱含層進行調整;
t2分類器:遷移輔助網絡的二層隱含層,利用目標數據對目標網絡的所有隱含層進行調整;
t3分類器:遷移輔助網絡的所有隱含層,利用目標數據對目標網絡的所有隱含層進行調整;
t4分類器:遷移輔助網絡的所有隱含層,利用目標數據對目標網絡的二層隱含層進行調整;
t5分類器:遷移輔助網絡的所有隱含層,利用目標數據對目標網絡的一層隱含層進行調整;
t6分類器:遷移輔助網絡的所有隱含層,不利用目標數據對目標網絡進行調整。
步驟5)計算通過步驟4-2)得到的六個遷移分類器的auprc值乘積作為分類器權值,將所有不平衡分類器結果進行集成,得到最終的分類結果,輸出集成分類器模型結果如圖4所示。其它數字的識別方法類似此方法。
綜上所述,本發明是一種基于深度遷移學習的不平衡分類集成方法,利用輔助數據集學習數據特征和深度網絡結構,遷移到目標深度網絡,使目標網絡能利用輔助數據的特征;用改進的損失函數,提高少數類的權值,訓練遷移的目標深度網絡,能夠更為有效地學習目標數據的特征,故在不平衡數據分類時能有效提高對少數類的識別,提高分類性能。因而本方法具有實際應用價值,值得推廣。
上述實施例為本發明較佳的實施方式,但本發明的實施方式并不受上述實施例的限制,其他的任何未背離本發明的精神實質與原理下所作的改變、修飾、替代、組合、簡化,均應為等效的置換方式,都包含在本發明的保護范圍之內。