摘要:在下以為,集成學(xué)習(xí)就是這把屠龍刀。集成學(xué)習(xí)在眾多的機器學(xué)習(xí)數(shù)據(jù)挖掘競賽中往往探囊取物,屢試不爽,像屠龍刀一樣當(dāng)之無愧排行兵器譜第一。這是機器學(xué)習(xí)研究中少有的理論指導(dǎo)的創(chuàng)新案列。歷史的年輪不知不覺來到了年,統(tǒng)計學(xué)家已開始在機器學(xué)習(xí)界站穩(wěn)腳跟。
機器學(xué)習(xí)是一個大武林,這里面江湖人士頗多,“發(fā)明”出來的算法兵器也是五花八門,浩瀚如海,足夠你數(shù)上三天兩夜了。然而,這些兵器行走江湖能用的不多,真正無敵的更是屈指可數(shù),或許只有屠龍刀倚天劍了。正如江湖傳言:武林至尊,寶刀屠龍,號令天下,莫敢不從,倚天不出,誰與爭鋒? 機器學(xué)習(xí)中還真有這么一把屠龍刀、一把倚天劍。用上了這兩樣兵器,保你平平安安創(chuàng)四方,瀟瀟灑灑走江湖。今天,就先絮叨絮叨這把屠龍刀。
?
在下以為,集成學(xué)習(xí)就是這把屠龍刀。為什么集成學(xué)習(xí)能稱為“屠龍刀”?因為它立竿見影,好像“刀過竹解”;因為它從不過時,儼然“寶刀未老”。它是一把刀,但不是一把普通的刀;它是一把鋒利的刀,一把可以屠龍的刀。集成學(xué)習(xí)在眾多的機器學(xué)習(xí)/數(shù)據(jù)挖掘競賽中往往探囊取物,屢試不爽,像屠龍刀一樣當(dāng)之無愧排行兵器譜第一。
?
集成學(xué)習(xí)是什么:
通俗的講,就是多算法融合。它的思想相當(dāng)簡單直接,以至于用一句俗語就可以完美概括:三個臭皮匠,頂個諸葛亮。實際操作中,集成學(xué)習(xí)把大大小小的多種算法融合在一起,共同協(xié)作來解決一個問題。這些算法可以是不同的算法,也可以是相同的算法。對于前者,效果一般也不差,但出發(fā)點實在過于簡單粗暴,簡直就是一介武夫,就不過多介紹了。這里著重談一下如何使用同一個算法進行集成學(xué)習(xí)(雖然只關(guān)注這個話題,但里面很多思想對前者也是適用的)。
用好集成學(xué)習(xí)有兩個關(guān)鍵點:
1)怎么訓(xùn)練每個算法?2)怎么融合每個算法?圍繞這兩個關(guān)鍵點,有很多方法提出來,極具代表性就是大家熟知的Bagging和Boosting方法,其中Bagging和Boosting也是當(dāng)今兩大殺器RF(Random Forests)和GBDT(Gradient Boosting Decision Tree)成功的主要秘訣。 注意,這里我用的是“方法”,而不是“算法”,個人以為“方法”比“算法”更高一層,更抽象些,更具有普適性。
?
集成學(xué)習(xí)是典型的實踐驅(qū)動的研究方向,它一開始先在實踐中證明有效,而后才有學(xué)者從理論上進行各種分析,這是非常不同于大名鼎鼎的SVM(Support Vector Machine)的。SVM是先有理論,然后基于理論指導(dǎo)實現(xiàn)了算法。這是機器學(xué)習(xí)研究中少有的理論指導(dǎo)的創(chuàng)新案列。直到如今,它還是部分學(xué)者用來看輕工業(yè)界發(fā)明的算法的主要證據(jù)之一。為了證明我的觀點,我們就回顧下集成學(xué)習(xí)中最主流的RF的發(fā)展歷程。1995年,AT&T bell實驗室的香港女學(xué)者Ho Tin Kam最早提出了RF,那個時候還不叫Random Forests, 而叫RDF(Random Decision Forest),她主要是采用Random Subspace的思想使用DT(Decision Tree)來構(gòu)建Forest。隨后的幾年里,又有一批人相繼提出了大大小小的一些類似或改進的工作,但都還不足以載入史冊。歷史的年輪不知不覺來到了2001年,統(tǒng)計學(xué)家Breiman已開始在機器學(xué)習(xí)界站穩(wěn)腳跟。他在RDF基礎(chǔ)上又引入了Bagging技術(shù),并提出了沿用至今的Random Forests。雖然老人家在那篇后來被引用幾千次的文章里進行了“理論”分析,并給出了一個看似不錯的誤差上界,但其實那個公式只是個中看不中用的數(shù)學(xué)符號,沒有太多的指導(dǎo)意義。而且,老人家在回顧Ho的工作時,相當(dāng)輕描淡寫,不知道何故,謹慎懷疑他對她是否有誤會?(批注1)2005年,Breiman離世,集成學(xué)習(xí)理論突破的使命交給了后來人。
?
2005-2015這十年里,集成學(xué)習(xí)方面的論文陸續(xù)有放出,但遺憾的是,個人認為集成學(xué)習(xí)的理論進展還是非常緩慢。 大多工作都是圍繞一個特定的算法做分析,始終沒有一個大一統(tǒng)的理論站穩(wěn)腳跟。“理論指導(dǎo)實踐”,這是機器學(xué)習(xí)研究者們渴望已久的燈塔,但它太遠太遠,以至于我們只能在茫茫迷霧中懷著這份渴望摸索前行?;仡櫦蓪W(xué)習(xí)理論的發(fā)展歷程,為數(shù)不多的有用結(jié)論之一可能就是---從bias-variance分解角度分析集成學(xué)習(xí)方法(批注2),人們意識到:Bagging主要減小了variance,而Boosting主要減小了bias,而這種差異直接推動結(jié)合Bagging和Boosting的MultiBoosting的誕生。值得一提的是,我國學(xué)者在集成學(xué)習(xí)領(lǐng)域并不落后,以南大周志華教授為代表的學(xué)者的一系列工作走在了世界前列,如選擇集成技術(shù)、集成聚類技術(shù)、半監(jiān)督集成技術(shù)等等。周志華老師還最早將Ensemble Learning翻譯為“集成學(xué)習(xí)”,是國內(nèi)這一領(lǐng)域的先行者。
?
實用的嫁接法:
近年來,除了上面的這些方法外,還有一些新方法涌現(xiàn)出來,這里就特別討論下個人認為比較有創(chuàng)意而且很實用的方法,我稱之為“嫁接法”。據(jù)百度百科的說法--所謂嫁接,是指植物的人工營養(yǎng)繁殖方法之一。即把一種植物的枝或芽,嫁接到另一種植物的莖或根上,使接在一起的兩個部分長成一個完整的植株。把這個概念遷移到集成學(xué)習(xí)領(lǐng)域,就是把一個算法嫁接到另外一個算法上,從而形成一個新的完整的算法。為什么要這么做呢?因為嫁接后有好處啊?;叵胍幌庐?dāng)下我們吃的各種水果,不少都是嫁接后的產(chǎn)物。不嚴格說來,袁隆平的雜交水稻也是一種高級的嫁接產(chǎn)物。嫁接后的水稻抗病害,易種植,產(chǎn)量還高。同樣,把兩種算法嫁接在一起,也能達到類似的好效果。
?
算法嫁接之后為什么會好呢?回答這個問題得從一個基礎(chǔ)問題講起。以分類算法為例,所有算法大致分為線性和非線性兩類,線性算法如LR,NB,ME之類;非線性算法如DT,RF,NN之流。一般來說,線性算法訓(xùn)練和預(yù)測的效率較高,但效果較差,而且非常依賴人的知識。如廣告CTR預(yù)估中常用的LR算法,要想達到一定的效果,需要人工或半人工的進行龐大的特征工程--進行特征的變換組合等預(yù)處理工作。有過LR使用經(jīng)驗的同學(xué)一定對這個過程刻骨銘心,沒有一定年限的積累是做不好線性模型的。而非線性算法如DT,理論上是能自動地做這些繁瑣工作的(雖然效果不一定好)。如果能借助這些算法減少人的工作,豈不大快人心?沒錯,LMT(Logistic Model Tree ) 應(yīng)運而生,它把LR和DT嫁接在一起,實現(xiàn)了兩者的優(yōu)勢互補。剛剛過去的一年,網(wǎng)上近乎瘋傳的Facebook的那個GBDT+LR的文章,只不過是這個思想的延續(xù),初看下來實在沒啥可追捧的。不同意?先別急,這樣做的確還有一些其他好處,咱們得換另外一個角度來看GBDT+LR。對比GBDT和DT會發(fā)現(xiàn)GBDT較DT有兩點好處:1)GBDT本身是集成學(xué)習(xí)的一種算法,效果可能較DT好;2)GBDT中的DT一般是RT,所以預(yù)測出來的值本身就有比較意義,而LR能很好利用這個值。這是個非常大的優(yōu)勢,尤其是用到廣告競價排序的場景上。最后需要說明的是,這只是從一個角度來理解嫁接的好處,還有其他方面就不一一展開了。
?
集成半監(jiān)督學(xué)習(xí):
接著,嘮叨幾句紅紅火火的集成半監(jiān)督學(xué)習(xí)。坦白講,雖然它在一些數(shù)據(jù)集或場景下取得了一定效果,個人一直偏執(zhí)地不看好這個方向。個人拙見:具體到分類問題上,集成方法要想成功,要依賴的有標記的樣本量要大,至少可能是要大于單個算法的。半監(jiān)督學(xué)習(xí)技術(shù)雖然可取,但沒有一定量的標記樣本也是瞎折騰。兩者都對樣本要求如此苛刻,融合在一起豈不是更壞?另一方面,兩派人的研究方法論不同,根本不看好融合在一起的集成半監(jiān)督技術(shù)(批注3)。所以即便是co-training這樣訓(xùn)練兩個學(xué)習(xí)器的算法,實際預(yù)測時也只使用其中一個。然而,隨后這方面一系列的工作有理有據(jù),著實給人們上了生動的一課。值得一提的是,我國南大數(shù)據(jù)挖掘團隊對這個領(lǐng)域的發(fā)展起到了推動作用,他們先是做了tri-training,co-forest等算法,驗證了引入集成對半監(jiān)督學(xué)習(xí)的好處。后來又在理論上證明了半監(jiān)督學(xué)習(xí)引入集成會帶來很大好處。而對集成學(xué)習(xí)者,他們揭示出引入半監(jiān)督學(xué)習(xí)可以不犧牲個體學(xué)習(xí)器精度就能提升diversity,并設(shè)計出UDEED算法。這一系列工作得到了業(yè)界高度評價。
?
相信其他常用的集成方法和算法大家都比較熟悉,就不再贅述了。這里著重提一下集成學(xué)習(xí)成功的關(guān)鍵---要千方百計圍繞學(xué)習(xí)器的差異和強度做文章。這兩者有非常密切而又難以描述的關(guān)系,其中有對立,也有協(xié)同,實際應(yīng)用中我們要平衡好彼此。瞄準了這個方向,就能事半功倍,才能在正確的道路上越走越遠。怎樣解決這個關(guān)鍵問題呢?答案就一個字:試。如果非要多說兩個字,那就是:試試。如果…你還要我多說嗎?呵呵。好吧,不開玩笑了。如果你非想問出個子丑寅卯來,你可能要用好以下技術(shù):完全隨機,結(jié)合先驗的偽隨機,選擇集成,融合進人為思維等等。最最重要的是,會根據(jù)不同問題要調(diào)一把好參,如特征相關(guān)性太強怎么調(diào)隨機選取特征的比例,樣本噪聲太大怎么調(diào)隨機選取示例的比例,正負比例不平衡時怎么做平衡等等。另外,在實際應(yīng)用中,還要平衡好性能和效果,做一些工程上的優(yōu)化,哪些該實時算,哪些可以離線算,哪些可以半實時都要規(guī)劃好,還要使用好單機資源,多機資源,甚至犧牲效果換性能。這些點都是要注意的,用過才知道。
?
好了,準備收筆了。做個小結(jié):集成學(xué)習(xí)方法是機器學(xué)習(xí)中最實用的兵器,堪稱屠龍刀。但并不是每個人都能用好這把刀,我們都要繼續(xù)修煉內(nèi)功,理解數(shù)據(jù),用好數(shù)據(jù)。
?
末了,希望大家牢記兩句話:
1) 機器學(xué)習(xí)的成功依賴數(shù)據(jù),系統(tǒng)和算法,缺一不可。
2) 人能做的絕不留給機器。
?
主要批注:
1. 她是模式識別領(lǐng)域的,研究方法論和機器學(xué)習(xí)有很大差別。Ho主要的貢獻是隨機子空間,她偶然用了一下決策樹,但是從屬性子空間的角度去做的,是不是決策樹并不重要,而且最關(guān)鍵的是沒有用到bootstrap,而bootstrap是bagging和RF的最精華。從Breiman的角度看,Ho是純屬湊巧弄了個和RF看上去長得像的東西,而且這東西里面沒有RF最寶貴的部分,當(dāng)然不會看好。Ho的random subspace是模式識別里面很有效的技術(shù)。她自己也更看重這個。
2. bias-variance分解不是集成學(xué)習(xí)特有的,1992年German發(fā)明后借用過來的。集成學(xué)習(xí)特有的是error-ambiguity分解。
3. 集成學(xué)習(xí)者認為: 只要允許我使用多個學(xué)習(xí)器,就能把弱學(xué)習(xí)器提升到足夠強,根本不需要什么無標記樣本。半監(jiān)督學(xué)習(xí)者認為: 只要能讓我使用無標記樣本,就能把學(xué)習(xí)器提升到足夠強,哪需要什么多學(xué)習(xí)器。雙方各執(zhí)一詞,真是老死不相往來的節(jié)奏。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/4317.html
摘要:在上篇文章里,為大家推薦了一些數(shù)學(xué)學(xué)習(xí)的軟件和微積分線性代數(shù)概率統(tǒng)計的學(xué)習(xí)視頻,今天再推薦一些精心挑選的經(jīng)典教材,并為大家提供電子書的下載鏈接,和視頻搭配起來一起學(xué)習(xí),效果會更好。我們要使用的以及等都包含在里面,無需額外下載。 在上篇文章里,為大家推薦了一些數(shù)學(xué)學(xué)習(xí)的軟件和微積分、線性代數(shù)、概率統(tǒng)計的學(xué)習(xí)視頻,今天再推薦一些精心挑選的經(jīng)典教材,并為大家提供電子書的下載鏈接,和視頻搭配起...
摘要:軟件測試江湖二神兵利器篇在上一篇文章中我們介紹了江湖上流傳的各種軟件測試的武功秘籍和心法,相信看過的小伙伴內(nèi)力得到了很大的提升。功能測試篇功能測試,是軟件測試里的入門級心法,自然也有與之相對應(yīng)的兵器來發(fā)揮心法的最大功力。 軟件測試江湖(二)神兵利器篇 在上一篇文章中我們介紹了江湖上流傳的各種軟件測試的武功秘籍和心法,相信看過的小伙伴內(nèi)力得到了很大的提升。如果沒有,一定是你看的姿勢不對,...
摘要:軟件測試江湖二神兵利器篇在上一篇文章中我們介紹了江湖上流傳的各種軟件測試的武功秘籍和心法,相信看過的小伙伴內(nèi)力得到了很大的提升。功能測試篇功能測試,是軟件測試里的入門級心法,自然也有與之相對應(yīng)的兵器來發(fā)揮心法的最大功力。 軟件測試江湖(二)神兵利器篇 在上一篇文章中我們介紹了江湖上流傳的各種軟件測試的武功秘籍和心法,相信看過的小伙伴內(nèi)力得到了很大的提升。如果沒有,一定是你看的姿勢不對,...
摘要:軟件測試江湖二神兵利器篇在上一篇文章中我們介紹了江湖上流傳的各種軟件測試的武功秘籍和心法,相信看過的小伙伴內(nèi)力得到了很大的提升。功能測試篇功能測試,是軟件測試里的入門級心法,自然也有與之相對應(yīng)的兵器來發(fā)揮心法的最大功力。 軟件測試江湖(二)神兵利器篇 在上一篇文章中我們介紹了江湖上流傳的各種軟件測試的武功秘籍和心法,相信看過的小伙伴內(nèi)力得到了很大的提升。如果沒有,一定是你看的姿勢不對,...
摘要:軟件測試江湖二神兵利器篇在上一篇文章中我們介紹了江湖上流傳的各種軟件測試的武功秘籍和心法,相信看過的小伙伴內(nèi)力得到了很大的提升。功能測試篇功能測試,是軟件測試里的入門級心法,自然也有與之相對應(yīng)的兵器來發(fā)揮心法的最大功力。 軟件測試江湖(二)神兵利器篇 在上一篇文章中我們介紹了江湖上流傳的各種軟件測試的武功秘籍和心法,相信看過的小伙伴內(nèi)力得到了很大的提升。如果沒有,一定是你看的姿勢不對,...
閱讀 663·2021-11-15 11:39
閱讀 2901·2021-10-08 10:04
閱讀 3264·2019-08-30 10:57
閱讀 3024·2019-08-26 13:25
閱讀 1906·2019-08-26 12:14
閱讀 2636·2019-08-23 15:27
閱讀 2996·2019-08-23 15:18
閱讀 1777·2019-08-23 14:26