Ensemble learning(集成学习)
定義
集成學(xué)習(xí)是一種機(jī)器學(xué)習(xí)范式,其中多個學(xué)習(xí)器被訓(xùn)練來解決相同的問題。 這與試圖從訓(xùn)練數(shù)據(jù)中學(xué)習(xí)一個假設(shè)的普通機(jī)器學(xué)習(xí)方法相反,集成方法嘗試構(gòu)造一組假設(shè)并將它們結(jié)合使用。
一個集合包含一些通常被稱為基礎(chǔ)學(xué)習(xí)器的學(xué)習(xí)器。 一個集合的泛化能力通常比單個基礎(chǔ)學(xué)習(xí)器的泛化能力強(qiáng)得多。 實(shí)際上,集成學(xué)習(xí)具有極大吸引力,因為它可以將弱于隨機(jī)猜測的弱學(xué)習(xí)器提升為能夠做出非常準(zhǔn)確預(yù)測的強(qiáng)大學(xué)習(xí)器。 所以,“基礎(chǔ)學(xué)習(xí)器”也被稱為“弱學(xué)習(xí)器”。 然而,值得注意的是,盡管大多數(shù)理論分析都是針對弱學(xué)習(xí)器的,但實(shí)踐中使用的基礎(chǔ)學(xué)習(xí)器并不一定很弱,因為使用不那么薄弱的基礎(chǔ)學(xué)習(xí)器通常會導(dǎo)致更好的表現(xiàn)。
基礎(chǔ)學(xué)習(xí)器通常通過基礎(chǔ)學(xué)習(xí)算法從訓(xùn)練數(shù)據(jù)生成,所述基礎(chǔ)學(xué)習(xí)算法可以是決策樹,神經(jīng)網(wǎng)絡(luò)或其他種類的機(jī)器學(xué)習(xí)算法。 大多數(shù)集成方法使用單一的基本學(xué)習(xí)算法來生成均勻基礎(chǔ)學(xué)習(xí)器,但也有一些方法使用多種學(xué)習(xí)算法來生成異構(gòu)學(xué)習(xí)器。 在后一種情況下,沒有單一的基本學(xué)習(xí)算法,因此,有些人更喜歡稱學(xué)習(xí)器為個別學(xué)習(xí)器或組件學(xué)習(xí)者為“基礎(chǔ)學(xué)習(xí)器”,而“個別學(xué)習(xí)器”和“組件學(xué)習(xí)器”的名稱也可用于同質(zhì)基礎(chǔ)學(xué)習(xí)器。
構(gòu)成集合
通常情況下,集合是分兩步構(gòu)建的。 首先,生成許多基礎(chǔ)學(xué)習(xí)器,這些基礎(chǔ)學(xué)習(xí)器可以以并行樣式或序列樣式生成,序列樣式即基礎(chǔ)學(xué)習(xí)器的生成影響后續(xù)學(xué)習(xí)器的生成。 然后,將基礎(chǔ)學(xué)習(xí)器結(jié)合使用,其中最流行的組合方案是用于分類的多數(shù)投票和用于回歸的加權(quán)平均。
一般來說,為了獲得一個好的集合,基礎(chǔ)學(xué)習(xí)器應(yīng)該盡可能地更加準(zhǔn)確,并盡可能多樣化。這已經(jīng)被Krogh和Vedelsby正式表現(xiàn)出來,并且被許多其他人所強(qiáng)調(diào)。對于估計學(xué)習(xí)器的準(zhǔn)確性有很多有效的過程,例如交叉驗證,保持測試等。然而,對于直覺上認(rèn)為是多樣性的東西沒有嚴(yán)格的定義。雖然已經(jīng)設(shè)計了多種多樣性措施,但Kuncheva和Whitaker 表示,現(xiàn)有的多樣性措施在建設(shè)集合方面的作用是值得懷疑的。在實(shí)踐中,可以從不同的渠道引入基礎(chǔ)學(xué)習(xí)器的多樣性,例如對訓(xùn)練樣例進(jìn)行二次采樣,操縱屬性,操縱輸出,將隨機(jī)性注入學(xué)習(xí)算法,甚至同時使用多種機(jī)制。采用不同的基礎(chǔ)學(xué)習(xí)器生成過程和/或不同的組合方案導(dǎo)致不同的集合方法。
有許多有效的集成方法。 下面將簡要介紹三種有代表性的方法,Boosting ,Bagging 和Stacking 。 這里為了簡單考慮二元分類。 也就是說,設(shè)X和Y分別表示實(shí)例空間和一組類標(biāo)簽,假設(shè)Y = {-1;+1}中。 訓(xùn)練數(shù)據(jù)集D = {(x1 ; y1); (x2; y2); …; (xm; ym)}給出,其中xi∈X和yi∈Y(i = 1;….; m)。
Boosting
實(shí)際上,Boosting是一系列算法,因為它有許多變體。在這里,最著名的算法AdaBoost 被認(rèn)為是一個例子。首先,它為所有訓(xùn)練實(shí)例分配相同的權(quán)重。將第t輪學(xué)習(xí)中權(quán)重的分布表示為Dt。從訓(xùn)練數(shù)據(jù)集和Dt算法生成一個基本學(xué)習(xí)器ht:X-> Y通過調(diào)用基礎(chǔ)學(xué)習(xí)算法。然后,它使用訓(xùn)練樣例來測試ht,并且不正確分類的例子的權(quán)重將會增加。因此,獲得更新的權(quán)重分布Dt + 1。從訓(xùn)練數(shù)據(jù)集和Dt + 1中,AdaBoost通過再次調(diào)用基礎(chǔ)學(xué)習(xí)算法生成另一個基礎(chǔ)學(xué)習(xí)器。這種過程重復(fù)進(jìn)行T次,每次都稱為一輪,最終的學(xué)習(xí)器是通過T輪基礎(chǔ)學(xué)習(xí)者的加權(quán)多數(shù)投票得出的,其中在訓(xùn)練過程中確定了學(xué)習(xí)器的權(quán)重。在實(shí)踐中,基礎(chǔ)學(xué)習(xí)算法可以是可以直接使用加權(quán)訓(xùn)練樣例的學(xué)習(xí)算法;否則可以通過根據(jù)權(quán)重分布Dt對訓(xùn)練樣本進(jìn)行采樣來利用權(quán)重。 AdaBoost的偽代碼如圖1所示。
Bagging
Bagging 通過調(diào)用基礎(chǔ)學(xué)習(xí)算法來訓(xùn)練大量基礎(chǔ)學(xué)習(xí)器,每個基礎(chǔ)學(xué)習(xí)器都來自不同的bootstrap樣本。 Bootstrap樣本是通過對替換的訓(xùn)練數(shù)據(jù)集進(jìn)行二次采樣得到的,其中樣本的大小與訓(xùn)練數(shù)據(jù)集的大小相同。 因此,對于bootstrap樣本,可能會出現(xiàn)一些訓(xùn)練樣例,但有些訓(xùn)練樣例可能不會,例如至少出現(xiàn)一次樣例的概率約為0.632。 在獲得基礎(chǔ)學(xué)習(xí)器后,Bagging通過多數(shù)投票將他們結(jié)合起來,并預(yù)測得票最多的類。 Bagging的偽代碼如圖2所示。 值得一提的是Bagging隨機(jī)森林的一個變種被認(rèn)為是迄今為止最強(qiáng)大的集合方法之一。
Stacking
在Stacking的典型實(shí)現(xiàn)中,通過采用不同的學(xué)習(xí)算法從訓(xùn)練數(shù)據(jù)集中生成許多第一級個體學(xué)習(xí)器。 這些個別學(xué)習(xí)器然后被稱為元學(xué)習(xí)器的二級學(xué)習(xí)者組合。 Stacking的偽代碼如圖3所示。 很明顯Stacking與信息融合方法有著密切的關(guān)系。
一般來說,沒有一種整體方法比其他整體方法更出色。 流行的集合方法的實(shí)證研究可以在許多論文中找到。 以前,有人認(rèn)為使用更多的基礎(chǔ)學(xué)習(xí)器會導(dǎo)致更好的表現(xiàn),但周等人證明了“許多可能比所有更好“的理論,這就表明更多的基礎(chǔ)學(xué)習(xí)器帶來更好的表現(xiàn)可能不是事實(shí)。 結(jié)果表明,在生成一組基礎(chǔ)學(xué)習(xí)器之后,選擇一些基礎(chǔ)學(xué)習(xí)器而不是全部使用它們來組成一個集合是更好的選擇。 這樣的集合被稱為選擇性集合。
值得一提的是,除了分類和回歸之外,集合方法也被設(shè)計用于聚類和其他類型的機(jī)器學(xué)習(xí)任務(wù)。
為什么集合優(yōu)于單個
為了理解為什么一個集合的泛化能力通常比單個學(xué)習(xí)器的泛化能力強(qiáng)得多,Dietterich 通過觀察機(jī)器學(xué)習(xí)的本質(zhì)為尋找最準(zhǔn)確假設(shè)的假設(shè)空間提供了三個理由。第一個原因是,訓(xùn)練數(shù)據(jù)可能無法提供足夠的信息來選擇單一的最佳學(xué)習(xí)器。例如,可能有許多學(xué)習(xí)器在訓(xùn)練數(shù)據(jù)集上的表現(xiàn)同樣出色。因此,結(jié)合這些學(xué)習(xí)器可能是更好的選擇。第二個原因是,學(xué)習(xí)算法的搜索過程可能不完善。例如,即使存在唯一的最佳假設(shè),也可能難以實(shí)現(xiàn),因為運(yùn)行算法會導(dǎo)致次優(yōu)假設(shè)。因此,集合可以彌補(bǔ)這種不完善的搜索過程。第三個原因是,被搜索的假設(shè)空間可能不包含真正的目標(biāo)函數(shù),而集合可以給出一些很好的近似值。例如,眾所周知,決策樹的分類邊界是與坐標(biāo)軸平行的線段。如果目標(biāo)分類邊界是一條光滑的對角線,則使用單個決策樹不能產(chǎn)生良好的結(jié)果,但通過組合一組決策樹可以實(shí)現(xiàn)良好的近似。請注意,這些是直觀的,而不是嚴(yán)格的理論解釋。
有關(guān)Boosting和Bagging等著名集合方法的理論研究很多,但對這些方法的潛在機(jī)制還沒有一個清晰的認(rèn)識。 例如,經(jīng)驗觀察表明,即使經(jīng)過大量循環(huán),Boosting也不會遭受過度擬合,有時甚至能夠在訓(xùn)練誤差已經(jīng)達(dá)到零之后減少泛化誤差。 盡管許多研究人員已經(jīng)研究了這種現(xiàn)象,但理論解釋仍在爭論中。
偏差方差分解常用于研究集合方法的性能。 眾所周知Bagging可以顯著減少方差,因此最好應(yīng)用于遭受大方差的學(xué)習(xí)器,例如決策樹或神經(jīng)網(wǎng)絡(luò)等不穩(wěn)定的學(xué)習(xí)器。 除了減少方差外,Boosting可以顯著減少偏差,因此,對于弱決策者如決策殘塊,Boosting通常更有效。
總結(jié)
集成學(xué)習(xí)是一種強(qiáng)大的機(jī)器學(xué)習(xí)范式,在許多應(yīng)用中展現(xiàn)出明顯的優(yōu)勢。 通過使用多個學(xué)習(xí)者,一個集合的泛化能力可以比單個學(xué)習(xí)者的泛化能力好得多。 目前的集合方法的嚴(yán)重缺陷是缺乏可理解性,即集合體所學(xué)的知識對于用戶是不可理解的。 提高集合的可理解性是一個重要但尚未充分研究的方向。 另一個重要問題是目前沒有多樣性措施令人滿意,盡管眾所周知多樣性在集合中起著重要作用。 如果這些問題能夠得到很好的解決,集體學(xué)習(xí)將能夠為更多的應(yīng)用做出更多貢獻(xiàn)。
參考文獻(xiàn):“Ensemble Learning” Zhi-Hua Zhou
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/yifdu25/p/8598228.html
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的Ensemble learning(集成学习)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 卸载KVM虚拟机(全、干净、彻底)
- 下一篇: CVE-2019-15107 Webmi