寫在最前面
如今機器學(xué)習(xí)和深度學(xué)習(xí)如此火熱叮叹,相信很多像我一樣的普通程序猿或者還在大學(xué)校園中的同學(xué),一定也想?yún)⑴c其中爆存。不管是出于好奇蛉顽,還是自身充電,跟上潮流先较,我覺得都值得試一試携冤。對于自己,經(jīng)歷了一段時間的系統(tǒng)學(xué)習(xí)(參考《機器學(xué)習(xí)/深度學(xué)習(xí)入門資料匯總》)闲勺,現(xiàn)在計劃重新閱讀《機器學(xué)習(xí)》[周志華]和《深度學(xué)習(xí)》[Goodfellow et al]這兩本書曾棕,并在閱讀的過程中進行記錄和總結(jié)。這兩本是機器學(xué)習(xí)和深度學(xué)習(xí)的入門經(jīng)典菜循。筆記中除了會對書中核心及重點內(nèi)容進行記錄翘地,同時,也會增加自己的理解,包括過程中的疑問衙耕,并盡量的和實際的工程應(yīng)用和現(xiàn)實場景進行結(jié)合昧穿,使得知識不只是停留在理論層面,而是能夠更好的指導(dǎo)實踐橙喘。記錄筆記时鸵,一方面,是對自己先前學(xué)習(xí)過程的總結(jié)和補充厅瞎。 另一方面饰潜,相信這個系列學(xué)習(xí)過程的記錄,也能為像我一樣入門機器學(xué)習(xí)和深度學(xué)習(xí)同學(xué)作為學(xué)習(xí)參考磁奖。
章節(jié)目錄
- 個體與集成
- Boosting
- Bagging與隨機森林
- 集合策略
- 多樣性
(一)個體與集成
集成學(xué)習(xí)(ensemble learning)的一般結(jié)構(gòu):先產(chǎn)生一組“個體學(xué)習(xí)器”(individual learner)囊拜,再用某種策略將他們結(jié)合起來,如下圖所示比搭,
個體學(xué)習(xí)器通常由一個現(xiàn)有的學(xué)習(xí)算法從訓(xùn)練數(shù)據(jù)產(chǎn)生:
只包含同種類型的個體學(xué)習(xí)器,這樣的集成是“同質(zhì)”的(homogeneous)南誊。同質(zhì)集成中的個體學(xué)習(xí)器亦稱為”基學(xué)習(xí)器“(base learning)身诺,相應(yīng)的學(xué)習(xí)算法稱為”基學(xué)習(xí)算法“(base learning algorithm)。
-
集成也可包含不同類型的個體學(xué)習(xí)器抄囚,這樣集成是”異質(zhì)“的(heterogeneous)霉赡。相應(yīng)的個體學(xué)習(xí)器,常稱為”組件學(xué)習(xí)器“(component learning)或直接稱為個體學(xué)習(xí)器幔托。
在一般的經(jīng)驗中穴亏,如果把好壞不等的東西摻到一起,那么通常結(jié)果會是比壞的好一些重挑,比好的要壞一些嗓化。集成學(xué)習(xí)把多個學(xué)習(xí)器結(jié)合起來,如何能獲得比最好的單一學(xué)習(xí)器更好的性能呢谬哀?
考慮一個簡單的例子:在二分類任務(wù)中刺覆,假定三個分類器在三個測試樣本的表現(xiàn)如下圖所示,
其中史煎,√表示分類正確谦屑,x表示分類錯誤,集成學(xué)習(xí)的結(jié)果通過投票法(voting)產(chǎn)生篇梭,即“少數(shù)服從多數(shù)”氢橙。這個簡單的例子顯示出:要獲得好的集成,個體學(xué)習(xí)器應(yīng)“好而不同”恬偷。個體學(xué)習(xí)器要有一定的“準(zhǔn)確性”悍手,即學(xué)習(xí)器不能太壞,而且要有“多樣性”(diversity),即學(xué)習(xí)器之間有差異谓苟。事實上官脓,如何產(chǎn)生并結(jié)合“好而不同”的個體學(xué)習(xí)器,恰是集成學(xué)習(xí)研究的核心涝焙。
根據(jù)個體學(xué)習(xí)器的生成方式卑笨,目前集成學(xué)習(xí)的方法大致可分為兩大類: 個體學(xué)習(xí)器間存在強依賴關(guān)系、必須串行生成的序列化方法仑撞,代表是Boosting赤兴;
個體學(xué)習(xí)器間不存在強依賴關(guān)系、可同時生成的并行化方法隧哮,代表是Baggig和“隨機森林”(Random Forest)桶良;
(二)Boosting
Boosting是一族可將弱學(xué)習(xí)器提升為強學(xué)習(xí)器的算法。這族算法的工作機制類似:先從初始訓(xùn)練集訓(xùn)練出一個基學(xué)習(xí)器沮翔,再根據(jù)基學(xué)習(xí)器的表現(xiàn)對訓(xùn)練樣本分布進行調(diào)整陨帆,使得先前基學(xué)習(xí)器做錯的訓(xùn)練樣本在后續(xù)收到更多的關(guān)注,然后基于調(diào)整后的樣本分布來訓(xùn)練下一個基學(xué)習(xí)器采蚀;如此重復(fù)進行疲牵,直到基學(xué)習(xí)器數(shù)目達到事先指定的值T,最終將這T個學(xué)習(xí)器進行加權(quán)結(jié)合榆鼠。
Boosting族算法最著名的代表是AdaBoost纲爸。AdaBoost有多種推導(dǎo)方式,比較容易理解的是基于“加性模型”(additive model)即基學(xué)習(xí)器線性組合妆够,
來最小化指數(shù)損失函數(shù)(exponential loss function)识啦,
(三)Bagging與隨機森林
欲得到泛化性能強的集成,集成中的個體學(xué)習(xí)器應(yīng)盡可能獨立神妹。雖然“獨立”在顯示任務(wù)中無法做到颓哮,但可以設(shè)法使基學(xué)習(xí)器盡可能具有較大差異。給定一個訓(xùn)練數(shù)據(jù)集灾螃,一種可能的做法是對訓(xùn)練樣本進行采樣题翻,產(chǎn)生若干個不同的子集,再從每個數(shù)據(jù)子集中訓(xùn)練出一個基學(xué)習(xí)器腰鬼。這樣嵌赠,由于訓(xùn)練數(shù)據(jù)不同,我們獲得的基學(xué)習(xí)器可望具有比較大的差異熄赡。然而姜挺,為獲得更好的集成,我們還同時希望個體學(xué)習(xí)器不能太差彼硫。如果采樣出的每個子集都完全不同炊豪,則每個基學(xué)習(xí)器只用到了一小部分訓(xùn)練數(shù)據(jù)凌箕,甚至不足進行有效學(xué)習(xí),這顯然無法確保產(chǎn)生出比較好的基學(xué)習(xí)器词渤。為考慮這個問題牵舱,我們可考慮使用相互有交疊的采樣子集。
1. Bagging
Bagging是并行式集成學(xué)習(xí)方法最著名的代表缺虐,從名字即可看出芜壁,它直接基于前面介紹過的自助采樣法(bootstrap sampling)。從偏差-方差分解角度看高氮,Bagging主要關(guān)注降低方差慧妄。
2. 隨機森林
隨機森林(Random Forest,簡稱RF)是Bagging的一個擴展變體剪芍。RF在以決策樹為基學(xué)習(xí)器構(gòu)建Bagging集成的基礎(chǔ)上塞淹,進一步在決策樹的訓(xùn)練過程中引入了隨機屬性選擇。
隨機森林對Bagging只做了小改動罪裹,但是與Bagging中基學(xué)習(xí)器的“多樣性”僅通過樣本擾動(通過對初始訓(xùn)練集采樣)而來不同饱普,隨機森林中基學(xué)習(xí)器多樣性不僅來自樣本擾動,還來自屬性擾動状共,這就使得最終集成的泛化性能可通過個體學(xué)習(xí)器之間的差異度的增加而進一步提升费彼。
(四)組合策略
學(xué)期器結(jié)合可能從三個方面帶來好處:
- 從統(tǒng)計的方面看,由于學(xué)習(xí)任務(wù)的假設(shè)空間往往很大口芍,可能有多個假設(shè)在訓(xùn)練集上達到同等性能,此時若使用單學(xué)習(xí)器可能因誤選而導(dǎo)致泛化性能不佳雇卷,結(jié)合多個學(xué)習(xí)器減小這一風(fēng)險鬓椭;
- 從計算的方面來看,學(xué)習(xí)算法往往會陷入局部極小关划,有的局部極小點所對應(yīng)的泛化性能可能很糟小染,而通過多次運行之后進行結(jié)合,可降低陷入糟糕局部極小點的風(fēng)險贮折;
-
從表示的方面來看裤翩,某些但學(xué)習(xí)器則肯定無效,而通過結(jié)合多個學(xué)習(xí)器调榄,由于響應(yīng)的假設(shè)空間有所擴大踊赠,有可能學(xué)得更好的近似。
直觀的示意圖如下所示每庆,
集成學(xué)習(xí)常見策略有:
- 平均法
- 投票法
- 學(xué)習(xí)法
(五)多樣性
誤差-分歧分解
欲構(gòu)建泛化能力強的集成筐带,個體學(xué)習(xí)器應(yīng)“好而不同”,其中缤灵,“誤差-分歧分解”(error-ambiguity decomposition)是一個簡單的理論分析方法伦籍。但該推到過程只適用于回歸學(xué)習(xí)蓝晒,難以直接推廣到分類學(xué)習(xí)任務(wù)中。
多樣性度量
多樣性度量(diversity measure)是用于度量集成中個體分類器的多樣性帖鸦,即估算個體學(xué)習(xí)器的多樣化程度芝薇。常用的多樣性度量包括:
- 不合度量(disagreement measure)
- 相關(guān)系數(shù)(correlation coefficient)
- Q-統(tǒng)計量(Q-statistics)
- k-統(tǒng)計量(k-statistics)
多樣性增強
在集成學(xué)習(xí)中需有效地生成多樣性大的個體學(xué)習(xí)器。與簡單地直接用初始數(shù)據(jù)訓(xùn)練出個體學(xué)習(xí)器相比作儿,一般思路是在學(xué)習(xí)過程中引入隨機性洛二,常見的做法主要有,
- 數(shù)據(jù)樣本擾動
- 輸入屬性擾動
- 輸出表示擾動
- 算法參數(shù)擾動