李 超 張文輝 李 然 王俊義 林基明
(1 桂林電子科技大學(xué)信息與通信工程學(xué)院桂林541004)
(2 桂林電子科技大學(xué)認(rèn)知無(wú)線電與信息處理教育部重點(diǎn)實(shí)驗(yàn)室桂林541004)
(3 桂林電子科技大學(xué)廣西云計(jì)算與大數(shù)據(jù)協(xié)同創(chuàng)新中心桂林541004)
(4 桂林電子科技大學(xué)廣西高校云計(jì)算與復(fù)雜系統(tǒng)重點(diǎn)實(shí)驗(yàn)室桂林541004)
(5 桂林電子科技大學(xué)廣西無(wú)線寬帶通信與信號(hào)處理重點(diǎn)實(shí)驗(yàn)室桂林541004)
(6 廣西高校衛(wèi)星導(dǎo)航與位置感知重點(diǎn)實(shí)驗(yàn)室桂林541004)
Stacking集成學(xué)習(xí)[10]是一種異質(zhì)集成的策略.異質(zhì)集成是通過(guò)集成若干個(gè)不同類型的基分類器, 組合成一個(gè)強(qiáng)分類器, 以此來(lái)提升強(qiáng)分類器的泛化能力.Stacking集成學(xué)習(xí)算法采用兩層框架的結(jié)構(gòu), 如圖1所示.其訓(xùn)練過(guò)程如下: 首先分別對(duì)多個(gè)基分類器進(jìn)行訓(xùn)練; 然后將多個(gè)基分類器的預(yù)測(cè)結(jié)果作為元分類器的輸入, 再次進(jìn)行訓(xùn)練.最終的集成算法會(huì)兼顧基分類器和元分類器的學(xué)習(xí)能力, 使得分類精度和準(zhǔn)確率得到明顯提升.Stacking集成學(xué)習(xí)算法的效果好壞取決于兩個(gè)方面: 一個(gè)是基分類器的預(yù)測(cè)效果, 通?;诸惼鞯念A(yù)測(cè)效果越好, 集成學(xué)習(xí)模型的預(yù)測(cè)效果越好; 另一個(gè)是基分類器之間需要有一定的差異性, 因?yàn)槊總€(gè)模型的主要關(guān)注點(diǎn)不同, 這樣集成才能使每個(gè)基學(xué)習(xí)器充分發(fā)揮其優(yōu)點(diǎn).試想, 如果基分類器的差異性較低, 那么每個(gè)基分類器的預(yù)測(cè)結(jié)果就會(huì)很相似, 那么這樣集成和單個(gè)分類器的預(yù)測(cè)基本沒(méi)有區(qū)別, 只會(huì)徒增模型的復(fù)雜度.
圖1 基于Stacking的集成學(xué)習(xí)算法Fig.1 An ensemble learning algorithm based on Stacking
支持向量機(jī)(Support Vector Machine, SVM)是一種二類分類模型, 其基本模型是定義在特征空間上的間隔最大的線性分類器.線性可分SVM算法旨在找到一個(gè)可以完全劃分所有數(shù)據(jù)的超平面, 使得數(shù)據(jù)集中所有數(shù)據(jù)距離此超平面最遠(yuǎn), 即硬間隔(hard margin) SVM.當(dāng)訓(xùn)練數(shù)據(jù)近似線性可分時(shí), SVM通過(guò)軟間隔(soft margin)最大化也可以學(xué)習(xí)到一個(gè)線性分類器, 也稱軟間隔SVM.隨著數(shù)據(jù)復(fù)雜程度的提高, 當(dāng)訓(xùn)練數(shù)據(jù)線性不可分時(shí), 通過(guò)引入軟間隔最大化和核技巧, 學(xué)習(xí)到一個(gè)分類器, 即非線性SVM.非線性SVM可以將在原始特征空間中線性不可分的訓(xùn)練樣本映射到一個(gè)高維的特征空間中,從而使得映射后的訓(xùn)練樣本在高維特征空間中線性可分.本文使用的SVM算法采用的是徑向基函數(shù)(Radial Basis Function, RBF), 也稱高斯核函數(shù):
其中u和v表示為兩個(gè)樣本向量, Z表示為RBF核函數(shù)的值, σ是一個(gè)自由參數(shù).
隨機(jī)森林(Random Forest, RF)是集成學(xué)習(xí)中Bagging思想的一種算法策略.Bagging思想是對(duì)訓(xùn)練集進(jìn)行隨機(jī)采樣, 產(chǎn)生出多個(gè)不同的訓(xùn)練子集, 再對(duì)每個(gè)訓(xùn)練子集訓(xùn)練出一個(gè)基分類器, 預(yù)測(cè)結(jié)果通過(guò)多個(gè)基分類器取平均或者投票得出.這時(shí)的預(yù)測(cè)模型有望獲得較好的預(yù)測(cè)結(jié)果和較強(qiáng)的泛化能力.隨機(jī)森林是在將決策樹作為基學(xué)習(xí)器構(gòu)建Bagging集成算法的同時(shí), 還引入了特征的隨機(jī)采樣, 進(jìn)一步提升了模型的抗噪聲能力, 有效地防止了過(guò)擬合的發(fā)生.
梯度提升決策樹(Gradient Boosting Decision Tree, GBDT)[11]是集成學(xué)習(xí)Boosting思想中的一種算法, 它同樣將決策樹作為基函數(shù).GBDT算法的核心在于每顆樹學(xué)習(xí)的是之前所有樹結(jié)論和的殘差.傳統(tǒng)的提升樹算法采用平方損失函數(shù), 可以直接計(jì)算殘差,但是缺點(diǎn)是僅能解決回歸問(wèn)題.GBDT算法對(duì)其做了改進(jìn), 它每次在建立單個(gè)弱分類器時(shí), 是在之前建立模型的損失函數(shù)的梯度下降方向(或稱負(fù)梯度值)來(lái)近似殘差.因此, 多種損失函數(shù)的選取, 不僅可以幫助GBDT算法有效地解決回歸問(wèn)題, 同時(shí)也可以解決分類問(wèn)題.GBDT算法的學(xué)習(xí)能力較強(qiáng), 是如今機(jī)器學(xué)習(xí)領(lǐng)域非常重要的一個(gè)算法.
XGBoost(eXtreme Gradient Boosting)[12]是一種對(duì)GBDT做了改進(jìn)的提升算法,在優(yōu)化時(shí)同時(shí)使用一階導(dǎo)數(shù)信息和二階導(dǎo)數(shù)信息.其模型如下所示:
“師長(zhǎng)話語(yǔ)”給人的感覺始終是一種嚴(yán)謹(jǐn)、拘束的狀態(tài)。在中國(guó)這樣的禮義之邦,適當(dāng)?shù)膰?yán)肅能夠樹立一定的威嚴(yán),但面對(duì)現(xiàn)今普及化的大學(xué)教育,過(guò)于嚴(yán)肅的話語(yǔ)方式很難起到實(shí)質(zhì)性的教育效果。學(xué)生不會(huì)對(duì)大而空的套話、官話感興趣,他們所需要的是新時(shí)代勵(lì)志教育所注入的新的思維話語(yǔ)模式。
其中L(t)表示為第t輪的目標(biāo)函數(shù),表示為前t ?1棵樹的輸出值之和, 構(gòu)成前t ?1棵樹的預(yù)測(cè)值, ft表示為第t棵樹的模型, ft(xi)表示為第t棵樹的輸出結(jié)果,相加構(gòu)成最新的預(yù)測(cè)值.
定義gi和hi:
去掉常數(shù)項(xiàng), 第t次迭代后的損失函數(shù)變?yōu)?
定義Ij= {i|q(xi)=j}作為葉子節(jié)點(diǎn)j的實(shí)例集, 其中I表示節(jié)點(diǎn)劃分前的實(shí)例集, 根據(jù)(8)式得:
對(duì)于固定了的決策樹的結(jié)構(gòu)q(xi), 可以計(jì)算得出葉子節(jié)點(diǎn)j的最優(yōu)權(quán)重w?j:
(11)式作為衡量樹結(jié)構(gòu)質(zhì)量的指標(biāo), 可以用來(lái)計(jì)算樹結(jié)構(gòu)q的得分.同時(shí), 需要使用貪心算法迭代地在每一個(gè)已有的葉子節(jié)點(diǎn)添加分支.假定IL和IR是劃分后左右子樹葉子節(jié)點(diǎn)的集合, 即I =IL∪IR, 則劃分后的損失函數(shù)如下:
本文充分考慮了決定Stacking集成學(xué)習(xí)模型效果好壞的兩個(gè)方面: 一是選擇學(xué)習(xí)能力較強(qiáng)的基學(xué)習(xí)器; 二是充分考慮基學(xué)習(xí)器之間的差異性.SVM在解決非線性的中小規(guī)模數(shù)據(jù)集的分類和回歸中具有非常好的效果.RF和XGBoost分別是集成學(xué)習(xí)Bagging和Boosting中泛化能力和學(xué)習(xí)能力較強(qiáng)的算法.3種算法不僅有充分的理論支撐, 而且在科學(xué)研究中正扮演著重要的角色.第2層元學(xué)習(xí)器同樣選擇學(xué)習(xí)能力較強(qiáng)的GBDT算法, 用于對(duì)第1層基學(xué)習(xí)器的集成, 并且使用10×10折嵌套交叉驗(yàn)證劃分?jǐn)?shù)據(jù)的方式防止過(guò)擬合的發(fā)生.綜上所述, 本文基于Stacking集成學(xué)習(xí)的分類模型第1層基學(xué)習(xí)器選擇SVM、RF、XGBoost, 第2層元學(xué)習(xí)器選擇GBDT, 模型結(jié)構(gòu)如圖2所示.
圖2 基于Stacking集成學(xué)習(xí)的恒星/星系分類模型Fig.2 A star/galaxy classification model based on the Stacking ensemble learning
傳統(tǒng)的10折交叉驗(yàn)證就是將原始數(shù)據(jù)劃分為10等分, 輪流將其中的9份作為訓(xùn)練集,剩下1份作為測(cè)試集.本文采用10×10折嵌套交叉驗(yàn)證的劃分方法, 即在每一個(gè)訓(xùn)練集的內(nèi)部再做一次10折交叉驗(yàn)證.
基于Stacking集成學(xué)習(xí)框架的訓(xùn)練流程如下:
(1)對(duì)原始數(shù)據(jù)進(jìn)行預(yù)處理并且按照10×10折嵌套交叉驗(yàn)證的方式進(jìn)行劃分;
(2)使用劃分后的數(shù)據(jù)集分別對(duì)第1層基學(xué)習(xí)器中的SVM、RF、XGBoost 3種算法進(jìn)行訓(xùn)練, 并得到預(yù)測(cè)結(jié)果;
(3)將第1層基學(xué)習(xí)器的預(yù)測(cè)結(jié)果拼接起來(lái)作為第2層元學(xué)習(xí)器GBDT的輸入, 再次進(jìn)行訓(xùn)練, 并得到最終的預(yù)測(cè)結(jié)果.
完整的SDSS-DR7測(cè)光數(shù)據(jù)集見http://skyserver.sdss.org/dr7/en/, 根據(jù)星等值(modelMag)大小可以劃分為: 亮源星等集(14–19)、暗源星等集(19–21)、最暗源星等集(20.5–21).與SDSS-DR7恒星/星系亮源和暗源星等集數(shù)據(jù)相比, 最暗源星等集數(shù)據(jù)量規(guī)模較小, 數(shù)據(jù)測(cè)量困難, 分類準(zhǔn)確率較低.因此本文采用的是SDSS-DR7恒星/星系最暗源星等數(shù)據(jù)集, 可直接使用簡(jiǎn)單的SQL (Structured Query Language)語(yǔ)句從Skysever平臺(tái)獲取, 并且與文獻(xiàn)[4]特征參數(shù)保持一致.數(shù)據(jù)特征參數(shù)如表1所示.
表1 用于SDSS-DR7恒星/星系分類的特征參數(shù)Table 1 The feature parameters for SDSS-DR7 star/galaxy classification
基于Stacking集成學(xué)習(xí)模型通過(guò)將SVM、RF、XGBoost算法作為基學(xué)習(xí)器訓(xùn)練,得到預(yù)測(cè)結(jié)果, 作為元學(xué)習(xí)器GBDT的輸入, 再次進(jìn)行訓(xùn)練, 得到最終預(yù)測(cè)結(jié)果.各個(gè)算法的主要參數(shù)設(shè)置如下: SVM算法模型采用RBF, gamma參數(shù)設(shè)置為1; RF算法模型采用計(jì)算屬性的基尼指數(shù)來(lái)選擇分裂節(jié)點(diǎn), 決策樹的個(gè)數(shù)和深度分別為65和7; XGBoost算法模型的弱學(xué)習(xí)器數(shù)目設(shè)置為710, 學(xué)習(xí)速率設(shè)置為0.01, 樹的深度設(shè)置為6; GBDT算法模型的弱學(xué)習(xí)器數(shù)目設(shè)置為200, 學(xué)習(xí)速率設(shè)置為0.04, 樹的深度設(shè)置為3.
為了能更好地評(píng)估基于Stacking集成學(xué)習(xí)模型在恒星/星系最暗源星等集分類上的性能, 本文對(duì)比了FT、SVM、RF、GBDT、XGBoost[13?14]、DBN、SDAE、DPDT等算法, 詳細(xì)的對(duì)比實(shí)驗(yàn)結(jié)果如表2.同樣, 為了保證對(duì)比分類結(jié)果的有效性, 采用了與文獻(xiàn)[4]一致的分類性能衡量指標(biāo)(CP), 即星系的分類正確率.其定義如(13)式所示:
其中, Ngal?gal(m)δm代表星等值在區(qū)間內(nèi)的數(shù)據(jù)樣本中被正確分類為星系的數(shù)量,代表星等值在區(qū)間內(nèi)數(shù)據(jù)樣本中星系的總數(shù)量.本文僅使用modelMag在20.5–21之間的最暗源星等集.
表2 SDSS-DR7星系分類正確率Table 2 The accuracy of SDSS-DR7 galaxy classification
通過(guò)仿真實(shí)驗(yàn)得出的表2可以看出, 對(duì)最暗源星等集, 基于Stacking集成學(xué)習(xí)模型的星系分類準(zhǔn)確率要遠(yuǎn)優(yōu)于FT, 提高了約10%的準(zhǔn)確率.而與之前已經(jīng)研究過(guò)的SDAE、DPDT模型相比, 準(zhǔn)確率提高了約7%–10%.與其他較為先進(jìn)的DBN、SVM、RF、GBDT、XGBoost等算法相比, 也提高了約4%–13%的星系分類準(zhǔn)確率.由此可見, 基于Stacking集成學(xué)習(xí)模型綜合了各個(gè)基分類器的優(yōu)點(diǎn)后, 并充分發(fā)揮了集成模型的性能,因此具有更強(qiáng)的泛化能力和更好的預(yù)測(cè)效果.
本文通過(guò)使用SDSS-DR7測(cè)光數(shù)據(jù)集, 并且采用10×10折嵌套交叉驗(yàn)證的方法, 研究了基于Stacking集成學(xué)習(xí)算法的恒星/星系的分類問(wèn)題.最后通過(guò)對(duì)基分類器和元分類器參數(shù)調(diào)優(yōu), 基于星系分類準(zhǔn)確率的評(píng)價(jià)指標(biāo), 與FT、SVM、RF、GBDT、XGBoost、DBN、SDAE、DPDT等模型進(jìn)行對(duì)比.實(shí)驗(yàn)結(jié)果表明, 基于Stacking集成學(xué)習(xí)模型在恒星/星系最暗源星等集上的分類效果要遠(yuǎn)好于其他模型.因此, 該Stacking集成學(xué)習(xí)模型在天文學(xué)有非常高的應(yīng)用價(jià)值.
在下一步工作中, 將探討解決Stacking集成學(xué)習(xí)模型的算法復(fù)雜度問(wèn)題.在中小規(guī)模數(shù)據(jù)集上, 該集成模型應(yīng)用較好.但是, 遇到大規(guī)?;蛘叱笠?guī)模數(shù)據(jù)集, 勢(shì)必會(huì)大大增加集成模型的訓(xùn)練時(shí)間.因此, 在未來(lái)的研究中, 會(huì)嘗試使用分布式的方法, 對(duì)基學(xué)習(xí)器并行訓(xùn)練, 這樣不僅會(huì)使集成模型達(dá)到較高的精確度, 而且也會(huì)使得集成模型訓(xùn)練起來(lái)有較高的效率.