<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>

          AI | 聊聊決策樹模型

          共 3884字,需瀏覽 8分鐘

           ·

          2021-04-09 16:09


          1.決策樹模型的現(xiàn)狀

          目前決策樹領(lǐng)域,已由原本單一的決策樹模型演變成了級(jí)聯(lián)學(xué)習(xí)樹、隨機(jī)森林模型的天下。


          主要使用的就是Boosting和Bagging的思想。


          Boosting和Bagging方法本質(zhì)上都是組合學(xué)習(xí),增強(qiáng)了樹模型的準(zhǔn)確率和魯棒性

          如上圖所示:

          Boosting側(cè)重于縱向組合,代表模型為Xgboost

          Bagging側(cè)重于橫向組合,代表模型為Random Forest


          姑且我們就叫這些樹模型統(tǒng)一為集成決策樹模型吧


          但是不管樹模型如何組合,它的本質(zhì)沒有變,最基礎(chǔ)的單元還是cart決策樹


          (你也可以說還有C4.5等,不過我覺得這不是重點(diǎn),它們已經(jīng)不是最優(yōu)的基礎(chǔ)單元,該退出歷史舞臺(tái)了)


          2.決策樹模型的優(yōu)勢

          相比深度學(xué)習(xí)算法

          實(shí)現(xiàn)相對簡單,效率更高,訓(xùn)練速度快,訓(xùn)練周期短,能更充分的利用機(jī)器資源

          為什么說決策樹模型的效率要高于神經(jīng)網(wǎng)絡(luò)模型?

          如上圖所示,就是一個(gè)典型的深度學(xué)習(xí)模型


          1.從節(jié)點(diǎn)的計(jì)算量:

          神經(jīng)網(wǎng)絡(luò)模型中全連接層節(jié)點(diǎn)的數(shù)量都是預(yù)估的

          而決策樹模型的節(jié)點(diǎn)則是根據(jù)信息熵或者基尼系數(shù)生成的,所以在計(jì)算規(guī)模上決策樹模型就會(huì)明顯小于神經(jīng)網(wǎng)絡(luò)模型


          2.從訓(xùn)練原理上:

          神經(jīng)網(wǎng)絡(luò)模型首先會(huì)將輸入的數(shù)據(jù)進(jìn)行一次激活函數(shù)的洗禮,然后再不斷調(diào)整各節(jié)點(diǎn)的權(quán)重(也即學(xué)習(xí)率),通過多次計(jì)算輸出的殘差得到梯度反過來去影響節(jié)點(diǎn)的權(quán)重,這種節(jié)點(diǎn)整體權(quán)重的變化,相比決策樹模型計(jì)算代價(jià)也高了n個(gè)數(shù)量級(jí)


          所以,神經(jīng)網(wǎng)絡(luò)模型所需要的計(jì)算資源相比決策樹來說就非常大了


          相比其他傳統(tǒng)機(jī)器學(xué)習(xí)算法

          再來看看另一個(gè)引人注目的機(jī)器學(xué)習(xí)算法:支持向量機(jī) SVM

          相比SVM,決策樹模型的普適性更強(qiáng),為什么?


          因?yàn)镾VM更側(cè)重于對可分割數(shù)據(jù)的分割超平面的尋找和確定,現(xiàn)實(shí)中各種數(shù)據(jù)混雜噪音,是否恰好就有這樣的超平面還兩說,如果沒有這樣的超平面,支持向量點(diǎn)的尋找就變得異常困難,尤其是數(shù)據(jù)量變大的情況下,支持向量機(jī)的計(jì)算大概率會(huì)走向崩潰


          小結(jié)

          我們不妨做這樣的假設(shè)對比:

          如果把所有機(jī)器學(xué)習(xí)模型看作是核機(jī)器

          那么集成決策樹模型核函數(shù)可以用數(shù)學(xué)公式簡化為:

          神經(jīng)網(wǎng)絡(luò)模型核函數(shù)可以簡化為:

          其他傳統(tǒng)機(jī)器學(xué)習(xí)模型的核函數(shù)可以簡化為:

          所以,這樣可以一目了然的發(fā)現(xiàn),集成決策樹模型相比神經(jīng)網(wǎng)絡(luò)計(jì)算規(guī)模小,效率高,相比其他傳統(tǒng)機(jī)器學(xué)習(xí)模型,模型復(fù)雜度又恰到好處,模型的表達(dá)能力強(qiáng)于一般模型


          3.決策樹模型存在的問題

          聊了這么多決策樹模型的優(yōu)勢,我們再來看看決策樹模型有哪些弊端?


          決策樹的規(guī)模預(yù)判

          我們在使用XGBoost設(shè)計(jì)和訓(xùn)練一個(gè)集成決策樹模型時(shí),通常會(huì)對下列參數(shù)給出一個(gè)經(jīng)驗(yàn)數(shù)值:

          num_parallel_tree

          num_boost_round

          max_depth

          但其實(shí)我們心里也沒譜,不知道以上參數(shù)是否真的恰當(dāng),只能使用GridSearch等參數(shù)搜索工具逐步定位到最優(yōu)參數(shù)范圍

          以上參數(shù)代表的含義不難理解:并行樹的數(shù)量、boost次數(shù)、樹最大深度


          決策樹的訓(xùn)練過程

          我們知道決策樹在進(jìn)行節(jié)點(diǎn)分裂前時(shí),會(huì)遍歷訓(xùn)練集計(jì)算一個(gè)最優(yōu)分裂點(diǎn),這就要求決策樹模型必須遍歷完所有訓(xùn)練集,盡管這個(gè)操作可以不必完全在內(nèi)存中完成(例如XGBoost的大規(guī)模訓(xùn)練解決方案),但是當(dāng)面對日益增長的海量數(shù)據(jù)時(shí),這種必須遍歷完所有數(shù)據(jù)的缺陷也彰顯出來


          同時(shí),我們也會(huì)清楚的了解,目前的決策樹的最優(yōu)權(quán)重都是基于目前的訓(xùn)練集的,一旦目標(biāo)數(shù)據(jù)集發(fā)生了變化,這樣的樹模型就不再適用(想想是不是距離智能還很遙遠(yuǎn)?)


          決策樹的遷移學(xué)習(xí)

          我們知道神經(jīng)網(wǎng)絡(luò)是具備遷移學(xué)習(xí)能力的,而決策樹模型則不具備這些優(yōu)點(diǎn),單獨(dú)將決策樹的某些層拿出來,硬塞到一個(gè)新的數(shù)據(jù)集下,非但起不到加速訓(xùn)練的效果,反而破壞了模型的整體性,導(dǎo)致模型效果變差,所以決策樹模型幾乎無法進(jìn)行遷移,只能集成學(xué)習(xí)


          4.最新的解決方案

          當(dāng)然,對于以上問題,業(yè)界的AI專家們也沒有閑著,想盡一切辦法去讓模型變得更智能和強(qiáng)大


          決策樹的規(guī)模預(yù)判問題

          首先我們來看第一個(gè)問題,決策樹規(guī)模的預(yù)判


          我們在做決策樹模型的設(shè)計(jì)時(shí),往往會(huì)面臨參數(shù)初始化的問題,很多人往往憑經(jīng)驗(yàn)給出一組數(shù)值后,再反復(fù)嘗試對比各參數(shù)從而找到一組合適的數(shù)值。


          但該組參數(shù)是否是最優(yōu)的也無從驗(yàn)證,只能是通過對照比較得到效果是已知最好的


          目前有兩種策略解決該問題:

          1.將決策樹看作組合優(yōu)化問題,使用SAT求解器求解

          這里有一篇2020年的代表論文:Efficient Inference of Optimal Decision Trees

          論文地址:http://florent.avellaneda.free.fr/dl/AAAI20.pdf

          該論文的主要思想在于:分割訓(xùn)練集,并簡化決策樹的分層問題,使得求解的規(guī)模變小,能夠應(yīng)對更大規(guī)模的數(shù)據(jù)集

          分而治之的思想在運(yùn)籌問題求解中簡直是萬金油,因此該論文發(fā)表在了AAAI上


          筆者也對其作了復(fù)現(xiàn),論文中的開源代碼地址:

          https://github.com/FlorentAvellaneda/InferDT

          筆者復(fù)現(xiàn)的版本(支持CentOS7):

          https://github.com/showkeyjar/InferDT


          結(jié)果發(fā)現(xiàn),在處理1-4k個(gè)數(shù)量級(jí)的數(shù)據(jù)樣本時(shí),InferDT還能游刃有余


          一旦數(shù)據(jù)量超過了5k,InferDT運(yùn)行的開始變得吃力,最終直接導(dǎo)致崩潰


          這也是我們發(fā)現(xiàn)InferDT的示例中并沒有超過1w數(shù)據(jù)量的樣本


          所以該論文方法雖然是一種顯著的進(jìn)步,但還不能應(yīng)用到實(shí)際場景中


          2.使用分支定界法搜索,然后緩存搜索結(jié)果

          同樣有一代表論文:Learning Optimal Decision Trees Using Caching Branch-and-Bound Search

          論文地址:

          https://dial.uclouvain.be/pr/boreal/fr/object/boreal%3A223390/datastream/PDF_01/view

          該論文的主要思想在于:將復(fù)雜難以求解的組合優(yōu)化問題分解為分段(分支定界)的組合優(yōu)化問題,并緩存了計(jì)算結(jié)果,避免重復(fù)的從頭計(jì)算,加快計(jì)算速度

          并由此設(shè)計(jì)出DL8.5算法,并兼容了sklearn

          本質(zhì)上也是一種分而治之的思想,和方法1有異曲同工之妙

          如果大家有興趣,也可以仔細(xì)研究研究這兩篇論文


          決策樹的訓(xùn)練問題

          目前業(yè)界大神們一直在想辦法克服決策樹訓(xùn)練過程中的一些缺陷


          神經(jīng)網(wǎng)絡(luò)的解決方案:

          這其中最優(yōu)代表性的作品,就屬2019年誕生的 tabnet :

          https://github.com/dreamquark-ai/tabnet

          論文地址:https://arxiv.org/pdf/1908.07442v5


          tabnet號(hào)稱自己是 xgboost + 神經(jīng)網(wǎng)絡(luò)的組合體,即具備神經(jīng)網(wǎng)絡(luò)反向傳播的特點(diǎn),又具備了集成決策樹的高效和準(zhǔn)確

          那么tabnet如何解決決策樹訓(xùn)練時(shí)必須遍歷整個(gè)訓(xùn)練集的問題呢?

          看到上圖中tabnet的網(wǎng)絡(luò)結(jié)構(gòu),是不是感覺和LSTM很類似?


          我認(rèn)為實(shí)際上可以把tabnet看作一種LSTM的變體,也使用到了transformer單元,而transformer技術(shù)也是2020年度最熱門的一種深度學(xué)習(xí)技術(shù),本質(zhì)上是對輸入數(shù)據(jù)的“主成分”自動(dòng)分析和提取的過程


          所以tabnet試圖通過神經(jīng)網(wǎng)絡(luò)模擬決策樹尋找分裂點(diǎn)的過程,從而讓神經(jīng)網(wǎng)絡(luò)具備較好的可解釋性


          另外還有一個(gè)筆者注意到的項(xiàng)目QuantumForest:

          https://github.com/closest-git/QuantumForest

          論文地址:https://arxiv.org/pdf/2010.02921v1


          QuantumForest針對決策樹訓(xùn)練過程中信息熵和基尼系數(shù)的計(jì)算進(jìn)行了改造,改變了一種思維方式,使用神經(jīng)網(wǎng)絡(luò)使得樹模型具有了可微性(differentiability)


          筆者理解是決策樹的輸出結(jié)果是離散的,不具備可微性,通過神經(jīng)網(wǎng)絡(luò)將樹模型分裂點(diǎn)的信息熵變更為量子狀態(tài),使得決策樹具備了連續(xù)可微的條件

          如圖所示,傳統(tǒng)的決策樹模型在分裂節(jié)點(diǎn)時(shí),得到的是一個(gè)確定的信息增益,而在QF里得到則


          是一個(gè)浮點(diǎn)數(shù)(量子態(tài)概率)


          QF項(xiàng)目的思想還是挺不錯(cuò)的,不過作者好像很懶,開源出來的作品工業(yè)化程度并不高,需要自己去解決易用性問題


          決策樹的遷移問題

          也有大神在決策樹的遷移領(lǐng)域放大招:

          有對應(yīng)的開源項(xiàng)目:https://github.com/atiqm/Transfer_DT

          不過竟然沒人關(guān)注,貌似沒搞起來,有興趣的同學(xué)也可以研究下,不妨也給筆者分享一下你的奇思妙想,期待你的創(chuàng)意


          5.總結(jié)

          總之決策樹模型領(lǐng)域是一個(gè)正在茁壯成長而又活力四射的領(lǐng)域,不斷有人在為其發(fā)展添磚加瓦,而決策樹+集成學(xué)習(xí)+神經(jīng)網(wǎng)絡(luò)正逐漸向我們走來,相信未來的決策樹算法會(huì)更加強(qiáng)大而高效。真正的可解釋性人工智能也會(huì)不斷突破現(xiàn)有的技術(shù)障礙和缺陷,變得更加完美。希望我們能共同挖掘和分享出決策樹的無窮魅力,謝謝閱讀!


          ---------------------------End---------------------------


          10000+人已加入矩陣司南

                 

                 



          非常感謝對我們的支持! 

          瀏覽 79
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  在线观看肏屄视频 | h片在线播放 | 日本大香蕉伊人 | 欧洲A级成人淫片免费看 | 性爱一级|