1.集成學(xué)習(xí)
集成學(xué)習(xí)(ensemble learning)通過組合多個(gè)基分類器(base classifier)來完成學(xué)習(xí)任務(wù),頗有點(diǎn)“三個(gè)臭皮匠頂個(gè)諸葛亮”的意味?;诸惼饕话悴捎玫氖侨蹩蓪W(xué)習(xí)(weakly learnable)分類器,通過集成學(xué)習(xí),組合成一個(gè)強(qiáng)可學(xué)習(xí)(strongly learnable)分類器。所謂弱可學(xué)習(xí),是指學(xué)習(xí)的正確率僅略優(yōu)于隨機(jī)猜測的多項(xiàng)式學(xué)習(xí)算法;強(qiáng)可學(xué)習(xí)指正確率較高的多項(xiàng)式學(xué)習(xí)算法。集成學(xué)習(xí)的泛化能力一般比單一的基分類器要好,這是因?yàn)榇蟛糠只诸惼鞫挤诸愬e(cuò)誤的概率遠(yuǎn)低于單一基分類器的。
偏差與方差
“偏差-方差分解”(bias variance decomposition)是用來解釋機(jī)器學(xué)習(xí)算法的泛化能力的一種重要工具。對于同一個(gè)算法,在不同訓(xùn)練集上學(xué)得結(jié)果可能不同。對于訓(xùn)練集,由于噪音,樣本的真實(shí)類別為(在訓(xùn)練集中的類別為),則噪聲為
學(xué)習(xí)算法的期望預(yù)測為
使用樣本數(shù)相同的不同訓(xùn)練集所產(chǎn)生的方法
期望輸入與真實(shí)類別的差別稱為bias,則
為便于討論,假定噪聲的期望為0,即,通過多項(xiàng)式展開,可對算法的期望泛化誤差進(jìn)行分解(詳細(xì)的推導(dǎo)參看[2]):
也就是說,誤差可以分解為3個(gè)部分:bias、variance、noise。bias度量了算法本身的擬合能力,刻畫模型的準(zhǔn)確性;variance度量了數(shù)據(jù)擾動(dòng)所造成的影響,刻畫模型的穩(wěn)定性。為了取得較好的泛化能力,則需要充分?jǐn)M合數(shù)據(jù)(bias?。?,并受數(shù)據(jù)擾動(dòng)的影響?。╲ariance小)。但是,bias與variance往往是不可兼得的:
當(dāng)訓(xùn)練不足時(shí),擬合能力不夠強(qiáng),數(shù)據(jù)擾動(dòng)不足以產(chǎn)生較大的影響,此時(shí)bias主導(dǎo)了泛化錯(cuò)誤率;
隨著訓(xùn)練加深時(shí),擬合能力隨之加強(qiáng),數(shù)據(jù)擾動(dòng)漸漸被學(xué)習(xí)到,variance主導(dǎo)了泛化錯(cuò)誤率。
Bagging與Boosting
集成學(xué)習(xí)需要解決兩個(gè)問題:
如何調(diào)整輸入訓(xùn)練數(shù)據(jù)的概率分布及權(quán)值;
如何訓(xùn)練與組合基分類器。
從上述問題的角度出發(fā),集成學(xué)習(xí)分為兩類流派:Bagging與Boosting。Bagging(BootstrapAggregating)對訓(xùn)練數(shù)據(jù)擦用自助采樣(boostrap sampling),即有放回地采樣數(shù)據(jù);每一次的采樣數(shù)據(jù)集訓(xùn)練出一個(gè)基分類器,經(jīng)過MM次采樣得到MM個(gè)基分類器,然后根據(jù)最大表決(majority vote)原則組合基分類器的分類結(jié)果。
Boosting的思路則是采用重賦權(quán)(re-weighting)法迭代地訓(xùn)練基分類器,即對每一輪的訓(xùn)練數(shù)據(jù)樣本賦予一個(gè)權(quán)重,并且每一輪樣本的權(quán)值分布依賴上一輪的分類結(jié)果;基分類器之間采用序列式的線性加權(quán)方式進(jìn)行組合。
從“偏差-方差分解”的角度看,Bagging關(guān)注于降低variance,而Boosting則是降低bias;Boosting的基分類器是強(qiáng)相關(guān)的,并不能顯著降低variance。Bagging與Boosting有分屬于自己流派的兩大殺器:Random Forests(RF)和Gradient Boosting Decision Tree(GBDT)。本文所要講的AdaBoost屬于Boosting流派。
2.AdaBoost算法
AdaBoost是由Freund與Schapire [1] 提出來解決二分類問題
根據(jù)加型模型(additive model),第m輪的分類函數(shù)
其中,為基分類器的組合系數(shù)。AdaBoost采用前向分布(forward stagewise)這種貪心算法最小化損失函數(shù)(1),求解子模型的
其中,為的分類誤差率。第m+1輪的訓(xùn)練數(shù)據(jù)集權(quán)值分布
其中,為規(guī)范化因子
則得到最終分類器
是的單調(diào)遞減函數(shù),特別地,當(dāng)時(shí),;當(dāng)時(shí),即基分類器不滿足弱可學(xué)習(xí)的條件(比隨機(jī)猜測好),則應(yīng)該停止迭代。具體算法流程如下:
在算法第4步,學(xué)習(xí)過程有可能停止,導(dǎo)致學(xué)習(xí)不充分而泛化能力較差。因此,可采用“重采樣”(re-sampling)避免訓(xùn)練過程過早停止;即拋棄當(dāng)前不滿足條件的基分類器,基于重新采樣的數(shù)據(jù)訓(xùn)練分類器,從而獲得學(xué)習(xí)“重啟動(dòng)”機(jī)會。
AdaBoost能夠自適應(yīng)(addaptive)地調(diào)整樣本的權(quán)值分布,將分錯(cuò)的樣本的權(quán)重設(shè)高、分對的樣本的權(quán)重設(shè)低;所以被稱為“Adaptive Boosting”。sklearn的AdaBoostClassifier實(shí)現(xiàn)了AdaBoost,默認(rèn)的基分類器是能fit()帶權(quán)值樣本的DecisionTreeClassifier。
老師木在微博上提出了關(guān)于AdaBoost的三個(gè)問題:
1,adaboost不易過擬合的神話。
2,adaboost人臉檢測器好用的本質(zhì)原因,
3,真的要求每個(gè)弱分類器準(zhǔn)確率不低于50%。
-
算法
+關(guān)注
關(guān)注
23文章
4607瀏覽量
92840 -
集成學(xué)習(xí)
+關(guān)注
關(guān)注
0文章
10瀏覽量
7319 -
分類器
+關(guān)注
關(guān)注
0文章
152瀏覽量
13179
原文標(biāo)題:【十大經(jīng)典數(shù)據(jù)挖掘算法】AdaBoost
文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論