【??闯P隆緽oosting算法
Boosting算法,??闯P?/span>
集成學(xué)習(xí):體現(xiàn)在能夠把一些弱學(xué)習(xí)器集成成為一個(gè)強(qiáng)學(xué)習(xí)器。
(1)弱學(xué)習(xí)器 vs 強(qiáng)學(xué)習(xí)器 定義:
強(qiáng)學(xué)習(xí)器就是準(zhǔn)確率更高??jī)H此而已嗎
強(qiáng)學(xué)習(xí)器的通俗理解就是預(yù)測(cè)的準(zhǔn)確度很高。如果給它足夠多的訓(xùn)練樣本,那么它最終能夠?qū)崿F(xiàn)任意小的一個(gè)錯(cuò)誤率。
但是弱學(xué)習(xí)器的預(yù)測(cè)準(zhǔn)確度很低,可能只比隨機(jī)猜測(cè)好一些(1%),而且有個(gè)預(yù)測(cè)準(zhǔn)確率的極限,就是無論再怎樣增大樣本數(shù)量,預(yù)測(cè)準(zhǔn)確度也無法提升了。
實(shí)際中,找到一個(gè)強(qiáng)學(xué)習(xí)器可能會(huì)很難,但找到弱學(xué)習(xí)器卻很簡(jiǎn)單,Boosting算法就是能夠把不同的(不要求是同一類,可以是神經(jīng)網(wǎng)絡(luò)+決策樹)弱學(xué)習(xí)器集成成為強(qiáng)學(xué)習(xí)器,達(dá)到“三個(gè)臭皮匠,賽過諸葛亮”的目的。

(2)Boostings算法實(shí)例: Adaboost
Adaboost的原理通過調(diào)整每輪中錯(cuò)誤樣本的權(quán)重(增大)和弱學(xué)習(xí)器的權(quán)重,在之前的錯(cuò)誤上不斷迭代,最終的學(xué)習(xí)器就成為一個(gè)比較強(qiáng)的學(xué)習(xí)器。
Adaboost的優(yōu)勢(shì)僅止于此嗎?那也不至于成為這樣一個(gè)寫進(jìn)教科書里的算法。其實(shí)另外的優(yōu)勢(shì)是,能夠很好地防止過擬合。也就是模型在訓(xùn)練集上效果很好后,在測(cè)試集上的效果不會(huì)下降,反而還能繼續(xù)提升。
是怎么做到的呢?其實(shí)體現(xiàn)在采用了“margin”的思想?;叵隨VM,最大化樣本離分界面的距離,實(shí)現(xiàn)一個(gè)最優(yōu)的分割。在boosting論文提到了他的損失函數(shù)里其實(shí)也包含了這樣一個(gè)margin,這樣就可以讓訓(xùn)練數(shù)據(jù)上的錯(cuò)誤率達(dá)到零之后,效果還能不斷繼續(xù)改進(jìn),不斷增大決策的信心。

(3)boosting算法的應(yīng)用有哪些呢?
比如:人臉圖像分割?,F(xiàn)在手機(jī)拍照里就能夠?qū)崟r(shí)檢測(cè)到人臉,決策一張圖片是不是人臉,弱學(xué)習(xí)器可以就是簡(jiǎn)單地看人臉特征的某個(gè)值是否大于某個(gè)threshold,可以簡(jiǎn)單地用一個(gè)條件判斷語句來形容。當(dāng)然效果不太好,但是用到boosting算法就可以很好解決。
另外 XGboost,已成為Kaggle競(jìng)賽上的常見獲獎(jiǎng)算法,是實(shí)現(xiàn)了 Gradient Boosting 的算法,計(jì)算速度快且耗用內(nèi)存很小。