機(jī)器學(xué)習(xí)技法--Adaptive Boosting

本文參考整理了Coursera上由NTU的林軒田講授的《機(jī)器學(xué)習(xí)技法》課程的第八章的內(nèi)容,主要講解了Adaptive Boosting的引入動(dòng)機(jī)、如何通過加權(quán)example來獲得多樣的假設(shè)函數(shù)、AdaBoost的偽代碼實(shí)現(xiàn)及其在現(xiàn)實(shí)生活中的應(yīng)用等。文中的圖片都是截取自在線課程的講義。
歡迎到我的博客跟蹤最新的內(nèi)容變化。
如果有任何錯(cuò)誤或者建議,歡迎指出,感激不盡!
--

本系列文章已發(fā)八章,前七章的地址如下:


Motivation of Boosting

一個(gè)簡(jiǎn)單類比

想像一個(gè)小學(xué)老師教小學(xué)生如何分辨一張圖片是否是一個(gè)蘋果的場(chǎng)景,老師在網(wǎng)絡(luò)上搜集了很多蘋果的圖片。

10張?zhí)O果的圖片

10張非蘋果的圖片

你怎樣描述一個(gè)蘋果的特征?

  • Michael:

蘋果是圓形的

藍(lán)色部分表示錯(cuò)誤識(shí)別為蘋果的例子或者沒有正確識(shí)別出蘋果的例子。

課堂已經(jīng)獲得的特征:

  1. 蘋果是圓形的(Michael)

老師可能會(huì)把錯(cuò)誤的例子舉出來,把分類正確的例子縮小,把錯(cuò)誤的例子放大,投入更大的關(guān)注,再尋找特征。

  • Tina:

蘋果是紅色的

課堂已經(jīng)獲得的特征:

  1. 蘋果圓圓的(Michael)
  2. 蘋果紅紅的(Tina)

老師繼續(xù)放大錯(cuò)誤的,縮小正確的

老師:的確,大部分蘋果是紅色的,但是只靠圓形和紅色來區(qū)分蘋果還是有可能犯錯(cuò),你有其他的建議嗎?Joey?

  • Joey:

蘋果也可能是綠色的

課堂已經(jīng)獲得的特征:

  1. 蘋果圓圓的(Michael)
  2. 蘋果紅紅的(Tina)
  3. 蘋果可能是綠色的(Joey)

老師繼續(xù)放大錯(cuò)誤的,縮小正確的

  • Jessica:

蘋果上面有莖

課堂已經(jīng)獲得的特征:

  1. 蘋果圓圓的(Michael)
  2. 蘋果紅紅的(Tina)
  3. 蘋果可能是綠色的(Joey)
  4. 蘋果上面有莖(Jessica)

通過不斷集中于分類不太完美的例子,尋找新的特征描述,我們得到了比原來更加豐富的對(duì)蘋果的認(rèn)知,這就是逐步增強(qiáng)法(adaptive boosting)的原理所在。

Motivation

對(duì)應(yīng)到我們的adaptive boosting algorithm的概念中

學(xué)生:代表一些很簡(jiǎn)單的hypotheses gt(就像垂直/水平分隔線)

班級(jí):整個(gè)班級(jí)有很多學(xué)生,就是一個(gè)復(fù)雜的hypothesis G(就像下圖中黑色的實(shí)線),就是灰線的aggregation。

老師:一個(gè)循循善誘的學(xué)習(xí)算法,它使得學(xué)生去專注于犯過錯(cuò)的關(guān)鍵樣例中。

下一節(jié),我們將介紹逐步增強(qiáng)法的數(shù)學(xué)形式。

Diversity of Re-weighting

Bootstrapping as Re-weighting Process

Bagging的核心就是bootstrapping

在base algorithm中獲得gt的要求可能如下

既然兩筆(X1,y1)一樣,不妨寫成更簡(jiǎn)潔的形式

我們給每筆資料添加一個(gè)權(quán)重u

顯然,兩種表示方式等價(jià)。

這樣,Bagging所做的就是通過bootstrapping產(chǎn)生這些u

base algorithm嘗試最小化bootstrap-weighted error.

Weighted Base Algorithm

Bagging中u都是整數(shù),但既然u是權(quán)重,自然可以推廣到全體實(shí)數(shù)。

如何求解帶有權(quán)重的Ein最小化問題呢?

SVM

比如,在SVM中,我們使用C來表示0/1錯(cuò)誤的權(quán)重,加上權(quán)重u后

un就會(huì)跑到αn的上限位置,因此求解weighted SVM是容易的。

Logistic Regression

SGD抽樣時(shí)候的概率大小不同,被抽到的概率與un成正比。

因此,把un放到algorithm中,不是特別困難。如果你學(xué)過《機(jī)器學(xué)習(xí)基石》的第8章,可能記得我們講過class-weighted,不同類別的錯(cuò)誤代價(jià)不同,現(xiàn)在不是+1或-1哪一種更重要,而是哪一個(gè)點(diǎn)更重要,即example-weighted是class-weighted的擴(kuò)展。

因此,求解weighted base algorithm不是困難點(diǎn),先想象我們已經(jīng)會(huì)做這件事情了。

Re-weighting for More Diverse Hypothesis

既然,我們的base algorithm會(huì)根據(jù)u回傳g,那么,我們希望g越不一樣越好,怎樣的u能保證這一點(diǎn)?

how to re-weight for more diverse hypotheses?

如果gt對(duì)于u(t+1)表現(xiàn)很差,那么像gt的hypotheses都不會(huì)被傳回作為g(t+1),因此g(t+1)和gt差別就很大。

表現(xiàn)很差如何衡量?

gt對(duì)u(t+1)的預(yù)測(cè)錯(cuò)誤的概率,和隨便猜的幾率差不多,即1/2(樣本平衡的狀態(tài)下)。

Optimal Re-weighting

我們需要

一種可能的方法是重新放縮權(quán)重

如果第t輪錯(cuò)誤率為εt,正確率則為1-εt。

'最優(yōu)的'重新放縮方法是正確的點(diǎn)所對(duì)應(yīng)的un乘上錯(cuò)誤率εt,錯(cuò)誤的點(diǎn)的un乘上正確率(1-εt)。

Adaptive Boosting Algorithm

Scaling Factor

定義放縮因子

與上節(jié)的放縮效果等價(jià)。

◇t告訴了我們更多物理意義,比如如果◇t>=1,則當(dāng)且僅當(dāng)εt<=1/2

base algorithm應(yīng)該比亂猜的效果好,則εt<=1/2,則◇t應(yīng)該大于1,也就是錯(cuò)誤的真的被放大了,正確的真的被縮小了,也就是我們之前講的"放大錯(cuò)誤、縮小正確",正如剛才的類比中的老師所做的事情。

A Preliminary Algorithm

  • 希望g1能對(duì)Ein最優(yōu),即un(1) = 1/N
  • G(X)如何aggregate這些g呢?
  1. uniform g1做好了D1,但g2在D1上應(yīng)該做得很糟,一人一票,也許不會(huì)做得很好
  2. linear,non-linear? as you wish

接下來,介紹一種在計(jì)算g中順便將g線性融合的特殊算法。

Linear Aggregation on the Fly

α怎么計(jì)算?

  • 希望好的g能多給一點(diǎn)票,即α大一點(diǎn),而壞的g的α小一點(diǎn)。
  • 那么什么是好的g?

好的g,Ein(u)比較小,錯(cuò)誤率ε比較小,那么◇比較大,那么αt應(yīng)該是某個(gè)單調(diào)函數(shù)(◇t),設(shè)計(jì)該演算法的人使用了單調(diào)函數(shù)ln()。


如果ε=1/2,則◇t=1 ==> αt = 0 (對(duì)于壞的gt的權(quán)重為0)
如果ε=0,則◇t=∞ ==> αt = ∞ (好的g有更大的權(quán)重)

因此,adaptive boosting = 弱弱的base learning algorithm A(學(xué)生) + 最優(yōu)的重新加權(quán)因子◇t(老師) + '神奇的'線性aggregation系數(shù)αt(班級(jí))。

Adaptive Boosting (AdaBoost) Algorithm

AdaBoost:三個(gè)臭皮匠,勝過諸葛亮。

AdaBoost的理論保證

VC bound

  • 第一項(xiàng)可以做得很小,理論已經(jīng)證明 Ein(G) = 0 after T = O(log N)輪。(如果總有εt<=ε<1/2,即base algorithm比"亂猜"表現(xiàn)好)
  • 第二項(xiàng)T很小、N很大,則整體也很小

則Eout(G)也很小,則實(shí)際表現(xiàn)很好。

從boosting的角度看待AdaBoost:

只要base algorithm A稍微比"亂猜"好一點(diǎn),那么通過AdaBoost + A就可以使它變得很強(qiáng)(Ein = 0 && Eout 很小)。

Adaptive Boosting In Action

decision stump

一個(gè)流行的選擇:決策樁

它是在某個(gè)單一的feature上的正/負(fù)向射線,有三個(gè)參數(shù)(feature i、threshold θ、direction s)。

可以通過枚舉(i,θ,s)的組合,真的做到最好。
物理意義:2D平面上的垂直/水平線。
優(yōu)化效率:O(d*NlogN)

decision stump如果單獨(dú)用,大部分情況下太弱了,但配合AdaBoost可以變強(qiáng),且允許有效率地最小化Ein(u)。

A Simple Data Set

'Teacher'-like algorithm works!

A Complicated Data Set

邊界是一個(gè)類似sin的形狀

AdaBoost-Stump: non-linear yet efficient

AdaBoost-Stump in Application

世界上第一個(gè)'實(shí)時(shí)'人臉識(shí)別程序

  • AdaBoost-Stump作為核心模型,從24*24的小圖塊的162336個(gè)可能性中選擇出來關(guān)鍵的圖案,然后進(jìn)行線性aggregation,即通過AdaBoost-Stump來進(jìn)行特征選擇。
  • 修改了線性融合G,提前排除非人臉部分。

AdaBoost-Stump: efficient feature selection and aggregation

Mind Map Summary


我們講過了Bagging,它是Learning Uniform Aggregation;我們講過了AdaBoost,它是Learning Linear Aggregation。在下一章,我們將介紹一種Learning Conditional Aggregation的方法,即決策樹(Decision Tree),敬請(qǐng)關(guān)注。

如果您對(duì)這一系列文章感興趣,歡迎訂閱我的專題或者關(guān)注我以獲得最新的更新信息!

本文首發(fā)于我的博客,如果您想提前看到更多的內(nèi)容或者懶于尋找之前的章節(jié),可以直接來我的博客閱讀長(zhǎng)文版,感謝您的鼓勵(lì)支持!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,836評(píng)論 6 540
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,275評(píng)論 3 428
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,904評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,633評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,368評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,736評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,740評(píng)論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,919評(píng)論 0 289
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,481評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,235評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,427評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,968評(píng)論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,656評(píng)論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,055評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,348評(píng)論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,160評(píng)論 3 398
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,380評(píng)論 2 379

推薦閱讀更多精彩內(nèi)容