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