<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一張圖介紹機(jī)器學(xué)習(xí)中的集成學(xué)習(xí)算法

          共 2927字,需瀏覽 6分鐘

           ·

          2021-07-05 10:32


          導(dǎo)讀

          機(jī)器學(xué)習(xí)在當(dāng)下早已成為一項熱門的技術(shù),在眾多機(jī)器學(xué)習(xí)算法中,除去深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)等最新發(fā)展方向,若是談及經(jīng)典機(jī)器學(xué)習(xí)算法,那么集成學(xué)習(xí)算法無論是在效果上還是熱度上都是當(dāng)之無愧的焦點。今天本文就來簡要介紹那些經(jīng)典的集成學(xué)習(xí)算法。


          集成學(xué)習(xí)算法的三大派系


          所謂集成學(xué)習(xí),顧名思義,就是集成多個基學(xué)習(xí)器的結(jié)果,采用一定的融合機(jī)制得到一個更為精準(zhǔn)和穩(wěn)定的結(jié)果。這其中,隱藏一個重要條件是:多個基學(xué)習(xí)器的學(xué)習(xí)結(jié)果要存在差異性,否則如果基學(xué)習(xí)器結(jié)果完全相同則無論用何種融合策略都得不到更好的集成結(jié)果。按照對多個基學(xué)習(xí)器集成策略和融合機(jī)制的不同,集成學(xué)習(xí)主要包含三大派系:
          • bagging,全稱即為bootstrap aggregating,主要是通過并行獨立地訓(xùn)練多個基學(xué)習(xí)器,而后采取投票或加權(quán)的方式融合多個學(xué)習(xí)結(jié)果,以期得到更為精準(zhǔn)的結(jié)果,三個臭皮匠賽過諸葛亮就是這個道理;
          • boosting,翻譯過來即為提升的意思,是采取串行的方式逐一提升學(xué)習(xí)效果的方式,頗有后人站在前面巨人肩膀上的意味;
          • stacking,"stack"是數(shù)據(jù)結(jié)構(gòu)與算法中棧的英文,用在這里即表達(dá)集成的方式其實也隱藏了先后和遞進(jìn)的思想,不同于boosting的是:stacking是將眾多基學(xué)習(xí)器的結(jié)果作為輸入實現(xiàn)再訓(xùn)練的過程,有些類似于多層神經(jīng)網(wǎng)絡(luò)的思想。


          01 bagging
          bagging,基本套路就是以多取勝。通過并行訓(xùn)練多個獨立的基學(xué)習(xí)器,而后對所有基學(xué)習(xí)器預(yù)測結(jié)果進(jìn)行融合,得到最終的集成預(yù)測結(jié)果。這里,為了保證集成學(xué)習(xí)結(jié)果優(yōu)于基學(xué)習(xí)器,則要求多個基學(xué)習(xí)器預(yù)測結(jié)果不同,而達(dá)成這一目的的方法一般就是采樣:通過行采樣或者列采樣來得到不同的訓(xùn)練集,進(jìn)而每個基學(xué)習(xí)器的訓(xùn)練結(jié)果都不同。根據(jù)行采樣和列采樣方式的不同,bagging流派又分為以下4種方法:
          • 僅對樣本維度(體現(xiàn)為行采樣)進(jìn)行采樣,且采樣是有放回的,意味著每個弱學(xué)習(xí)器的K個采樣樣本中可能存在重復(fù)的樣本,此時對應(yīng)bagging算法,這里bagging=bootstrap aggregating。發(fā)現(xiàn),這個具體算法的名字與bagging流派的名字重合,這并不意外,因為這是bagging中一種經(jīng)典的采樣方式,因而以其作為流派的名字。當(dāng)然,bagging既是一種算法也是流派名,那就要看是狹義還是廣義的bagging來加以區(qū)分了
          • 僅對樣本維度采樣,但采樣是無放回的,意味著對于每個弱學(xué)習(xí)器的K個采樣樣本是完全不同的,由于相當(dāng)于是每執(zhí)行一次采樣,則該樣本就被舍棄掉(pass),所以此時算法叫做pasting
          • 前兩者的隨機(jī)性均來源于樣本維度的隨機(jī)采樣,也就是行方向上,那么對于列方向上進(jìn)行隨機(jī)采樣是否也可以呢?比如說每個弱學(xué)習(xí)器都選用所有的樣本參與訓(xùn)練,但各學(xué)習(xí)器選取參與訓(xùn)練的特征是不一致的,訓(xùn)練出的算法自然也是具有隨機(jī)性的,可以滿足集成的要求。此時,對應(yīng)算法叫做subspaces,中文譯作子空間,具體說是特征維度的子空間,名字還是比較傳神的
          • 發(fā)現(xiàn),既有樣本維度的隨機(jī),也有特征維度的隨機(jī),那么自然想到有沒有兼顧二者的隨機(jī)呢,也就是說每個弱學(xué)習(xí)器既執(zhí)行行采樣、也有列采樣,得到的弱學(xué)習(xí)器其算法隨機(jī)性應(yīng)該更強(qiáng)。當(dāng)然,這種算法被稱作是patches,比如前文已經(jīng)提到的隨機(jī)森林就屬于這種。實際上,隨機(jī)森林才是最為廣泛使用的bagging流派集成學(xué)習(xí)算法。


          02 boosting

          如果說bagging的基本套路是以多取勝,那么boosting的基本套路則是車輪戰(zhàn)!即boosting采取逐個基學(xué)習(xí)器遞進(jìn)訓(xùn)練的方式進(jìn)行,通過不斷彌補(bǔ)前面基學(xué)習(xí)器存在的短板和問題,來實現(xiàn)最終整體效果上的提升。這里,針對彌補(bǔ)短板的不同,boosting其實也存在兩大方法:

          • Adaboost:針對前一輪預(yù)測錯誤的樣本,不斷加強(qiáng)對這些易錯樣本的權(quán)重,具體是通過對各樣本分配不同的權(quán)重系數(shù)來實現(xiàn)。這就好比說一個學(xué)生能夠針對歷次學(xué)習(xí)考試建立自己的錯題集,來實現(xiàn)有的放矢的提高;

          • GBDT:不斷彌補(bǔ)前面訓(xùn)練的差距,實現(xiàn)整體效果上的逼近,具體是將真實值與預(yù)測值的差值等效為梯度的方法實現(xiàn)提升。


          二者都是針對前一輪訓(xùn)練的弱點,加以針對性的彌補(bǔ)以實現(xiàn)訓(xùn)練得到更好的學(xué)習(xí)器。方法論是一致的,但當(dāng)下的發(fā)展熱門程度則天差地別。目前來看,Adaboost應(yīng)用場合相對較為有限,并大有逐漸淡出大眾視野的趨勢,而GBDT的思想則更為火熱,并日益衍生更多的迭代改進(jìn)版本,例如當(dāng)下最火熱的三大集成學(xué)習(xí)算法就都是基于GBDT的改進(jìn)提升:

          • Xgboost,這是對GBDT的第一個改進(jìn),源于AI大神陳天齊(本科是上海交大ACM畢業(yè)),與GBDT最大的差異在于對目標(biāo)函數(shù)的改進(jìn)(本質(zhì)上是taylor一級展開到二級展開的改進(jìn)),另有一些工程實現(xiàn)上的差異;

          • Lightgbm,這是在Xgboost的基礎(chǔ)上做的進(jìn)一步改進(jìn),源于微軟團(tuán)隊。正如其名字中的light一樣,lightgbm本質(zhì)上是在達(dá)到與xgboost相近效果的基礎(chǔ)上,大幅提高訓(xùn)練速度,這其中得益于三項算法或機(jī)制:①數(shù)值維度上,進(jìn)行了基于直方圖統(tǒng)計的分箱處理,簡化了數(shù)據(jù)存儲和分裂點的選??;②樣本維度上,采取了單邊梯度采樣算法,避免低梯度樣本的計算量;③特征維度上,采用了互斥特征捆綁(好吧,這個名字著實拗口),就是對多個稀疏特征進(jìn)行合并,實現(xiàn)特征數(shù)量的降維。此外,Lightgbm與Xgboost的另一個顯著區(qū)別是采用了leaf-wise的決策樹生長策略,確保每次分裂都是有意義的;

          • Catboost,出道時間要略晚于Lightgbm,源于俄羅斯互聯(lián)網(wǎng)巨頭Yandex,其實也是對Xgboost的改進(jìn),最大不同是原生支持Cat型特征而無需轉(zhuǎn)化為數(shù)值,另外也支持對缺失值的自動處理。不過在競賽中的應(yīng)用并不是很多。


          總體來看,以Xgboost、Lightgbm和Catboost為代表的boosting集成學(xué)習(xí)流派才是機(jī)器學(xué)習(xí)領(lǐng)域的焦點之戰(zhàn),也基本代表了經(jīng)典機(jī)器學(xué)習(xí)算法的研究方向和熱點聚焦。
          從另一個角度來看,這三種算法也可視做分別源于中、美、俄……好吧,大國之爭果真無處不在!


          03 Stacking

          Stacking的思想其實可視為bagging+boosting的混合體,即先并行訓(xùn)練多個基學(xué)習(xí)器,而后以多個基學(xué)習(xí)器的訓(xùn)練結(jié)果為特征數(shù)據(jù),進(jìn)一步訓(xùn)練第二階段的學(xué)習(xí)器,以期得到更為精準(zhǔn)的結(jié)果。當(dāng)然,照此流程,其實還可以訓(xùn)練第三波第四波,這就真的好似深度神經(jīng)網(wǎng)絡(luò)了……不過,可能也正因為其思想過于貼近于深度神經(jīng)網(wǎng)絡(luò),所以Stacking方式的集成學(xué)習(xí)其實并未得到廣泛應(yīng)用。



          相關(guān)閱讀:


          瀏覽 47
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  美女黄片 | 91插插插插 | 日韩一级黄视频 | 亚洲激情久久 | 欧美在线日韩 |