0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Adaboost算法總結(jié)

lviY_AI_shequ ? 來源:劉林華 ? 作者:電子發(fā)燒友 ? 2018-12-29 16:08 ? 次閱讀

前言

集成學(xué)習(xí)的Boosting算法串行生成多個(gè)弱學(xué)習(xí)器并按一定的結(jié)合策略生成強(qiáng)學(xué)習(xí)器,AdaBoost算法是Boosting系列算法中的一種,本文詳細(xì)總結(jié)了AdaBoost算法的相關(guān)理論。

目錄

1. Boosting算法基本原理

2. Boosting算法的權(quán)重理解

3. AdaBoost的算法流程

4. AdaBoost算法的訓(xùn)練誤差分析

5. AdaBoost算法的解釋

6. AdaBoost算法的正則化

7. AdaBoost算法的過擬合問題討論

8. 總結(jié)

Boosting的算法流程

Boosting算法是一種由原始數(shù)據(jù)集生成不同弱學(xué)習(xí)器的迭代算法,然后把這些弱學(xué)習(xí)器結(jié)合起來,根據(jù)結(jié)合策略生成強(qiáng)學(xué)習(xí)器。

如上圖,Boosting算法的思路:

(1)樣本權(quán)重表示樣本分布,對特定的樣本分布生成一個(gè)弱學(xué)習(xí)器。

(2)根據(jù)該弱學(xué)習(xí)器模型的誤差率e更新學(xué)習(xí)器權(quán)重α。

(3)根據(jù)上一輪的學(xué)習(xí)器權(quán)重α來更新下一輪的樣本權(quán)重。

(4)重復(fù)步驟(1)(2)(3),結(jié)合所有弱學(xué)習(xí)器模型,根據(jù)結(jié)合策略生成強(qiáng)學(xué)習(xí)器。

Boosting算法的權(quán)重理解

Boosting算法意為可提升算法,可提升方法具體表現(xiàn)在(一)改變訓(xùn)練數(shù)據(jù)的概率分布(訓(xùn)練數(shù)據(jù)的權(quán)值分布),(二)弱分類器權(quán)重的生成。理解這兩個(gè)原理是理解AdaBoost算法的基礎(chǔ)。

1. 訓(xùn)練數(shù)據(jù)的權(quán)重理解

我們對癌癥病人和健康人作一個(gè)定性的分析,目的是理解Boosingt算法訓(xùn)練數(shù)據(jù)權(quán)重更新的思想。

如下圖為分類器G(1)的分類情況,假設(shè)樣本數(shù)據(jù)的權(quán)重相等。

pIYBAFwnLOWAF_WUAAAVycDjoz0260.png

癌癥誤分類成健康人的結(jié)果很可能是喪失生命,因此這種誤分類情況肯定不能出現(xiàn)的,若我們對該誤分類點(diǎn)的權(quán)重增加一個(gè)極大值,以突出該樣本的重要性,分類結(jié)果如下圖:

pIYBAFwnLOWAAg3yAAAMQ6FK3mI723.png

因此,增加誤分類樣本的權(quán)重,使分類器往該誤分類樣本的正確決策邊界方向移動(dòng),當(dāng)權(quán)重增加到一定值時(shí),誤分類樣本實(shí)現(xiàn)了正確分類,因?yàn)橛?xùn)練樣本的權(quán)重和是不變的,增加誤分類樣本權(quán)重的同時(shí),也降低了正確分類樣本的權(quán)重。這是Boosting算法的樣本權(quán)重更新思想。

2. 弱學(xué)習(xí)器的權(quán)重理解

Boosting算法通過迭代生成了一系列的學(xué)習(xí)器,我們給予誤差率低的學(xué)習(xí)器一個(gè)高的權(quán)重,給予誤差率高的學(xué)習(xí)器一個(gè)低的權(quán)重,結(jié)合弱學(xué)習(xí)器和對應(yīng)的權(quán)重,生成強(qiáng)學(xué)習(xí)器。弱學(xué)習(xí)器的權(quán)重更新是符合常識(shí)的,弱學(xué)習(xí)器性能越好,我們越重視它,權(quán)重表示我們對弱學(xué)習(xí)器的重視程度,即權(quán)重越大,這是Boosting算法弱學(xué)習(xí)器權(quán)重的更新思想。

AdaBoost的算法流程

第一節(jié)描述了Boosting算法的流程,但是沒有給出具體的算法詳細(xì)說明:

(1)如何計(jì)算弱學(xué)習(xí)器的學(xué)習(xí)誤差;

(2)如何得到弱學(xué)習(xí)器的權(quán)重系數(shù)α;

(3)如何更新樣本權(quán)重D;

(4)使用何種結(jié)合策略;

我們從這四種問題的角度去分析AdaBoost的分類算法流程和回歸算法流程。第k輪的弱分類器為pIYBAFwnLOWAM6hGAAAB0pE-h8I829.png

pIYBAFwnLOaAbS-8AAAS9gbjddk471.png

1. AdaBoost的分類算法流程

我們假設(shè)是二分類問題,輸出為{-1,1}。第K輪的弱分類器為pIYBAFwnLOaAPl0oAAAB1HaOLLE390.png

1) 計(jì)算弱分類器的分類誤差

在訓(xùn)練集上的加權(quán)誤差率為:

pIYBAFwnLOaAaXC4AAAFqFweWkY862.png

pIYBAFwnLOaAFaNMAAAFqE1EjVA155.png

2) 弱學(xué)習(xí)權(quán)重系數(shù)α的計(jì)算

pIYBAFwnLOaAIWQFAAADHs2iFgM803.png

由上式可知,學(xué)習(xí)器誤差率越小,則權(quán)重系數(shù)越大。

3) 下一輪樣本的權(quán)重更新

pIYBAFwnLOaAVRPmAAAFZ4g6KBs544.png

其中Zk是規(guī)范化因子,使每輪訓(xùn)練數(shù)據(jù)集的樣本權(quán)重和等于1。

pIYBAFwnLOeAJU5dAAAFe2OjnC4150.png

當(dāng)樣本處于誤分類的情況,pIYBAFwnLOeAMrcPAAACuqCpET0176.pngpIYBAFwnLOeAUa6cAAACEij3tM4710.png該誤分類樣本的權(quán)重增加;當(dāng)樣本是處于正確分類的情況,pIYBAFwnLOeAadJ7AAACqSsz3lE511.png,則pIYBAFwnLOeAFTXTAAACELcvEzE585.png,該正確分類樣本的權(quán)值減小。

4) 結(jié)合策略,構(gòu)建最終分類器為:

pIYBAFwnLOiAa_ijAAAEtAcpxNw172.png

2. AdaBoost的回歸算法流程

1) 計(jì)算弱學(xué)習(xí)器的回歸誤差率:

a) 計(jì)算訓(xùn)練集上的最大誤差:

pIYBAFwnLOiAIfIYAAAE3hc22gk118.png

b) 計(jì)算每個(gè)樣本的相對誤差:

如果是線性誤差,則

pIYBAFwnLOiAAuvmAAADruQgYXY330.png

如果是平方誤差,則

pIYBAFwnLOiAIYOtAAAEACKcP7Q415.png

如果是指數(shù)誤差,則

pIYBAFwnLOiAft8PAAAE0u8qAck766.png

c) 計(jì)算回歸誤差率

pIYBAFwnLOmAECSzAAAC2f99QAQ079.png

(2) 弱學(xué)習(xí)權(quán)重系數(shù)α的計(jì)算

pIYBAFwnLOmAUA-lAAAB7wJp-Xs401.png

(3)下一輪樣本的權(quán)重更新

pIYBAFwnLOmAMK0EAAADXW5QmoY120.png

Zk是規(guī)范化因子,使樣本權(quán)重的和為1,

pIYBAFwnLOmAdGFYAAADorV6BbA617.png

(4)結(jié)合策略,構(gòu)建最終學(xué)習(xí)器為:

pIYBAFwnLOmAZuQfAAALITioM5M054.png

AdaBoost算法的訓(xùn)練誤差分析

過程就不推倒了,可參考李航《統(tǒng)計(jì)學(xué)習(xí)方法》P142~P143,這里就只給出結(jié)論。

AdaBoost的訓(xùn)練誤差界:

pIYBAFwnLOmAHXvHAAAGaTtOrPk997.png

pIYBAFwnLOqAJ_KyAAAKd7aUtAo887.png

由上式可知,AdaBoost的訓(xùn)練誤差是以指數(shù)速率下降的,即AdaBoost算法隨著迭代次數(shù)的增加,訓(xùn)練誤差不斷減小,即模型偏差顯著降低 。

本文傾向于入門AdaBoost算法,下一篇文章會(huì)發(fā)散思維,介紹AdaBoost算法的相關(guān)性質(zhì),

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4625

    瀏覽量

    93123
  • 數(shù)據(jù)結(jié)構(gòu)

    關(guān)注

    3

    文章

    573

    瀏覽量

    40170

原文標(biāo)題:比較全面的Adaboost算法總結(jié)(一)

文章出處:【微信號(hào):AI_shequ,微信公眾號(hào):人工智能愛好者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Adaboost算法的Haar特征怎么進(jìn)行并行處理?

    Adaboost 算法是Freund 和Schapire 于1995 年提出的,全稱為Adaptive Boosting。它是 Boosting 算法的改進(jìn),意為該算法通過機(jī)器訓(xùn)練與學(xué)
    發(fā)表于 08-28 07:05

    實(shí)現(xiàn)AdaBoost算法的代碼

    AdaBoost算法實(shí)現(xiàn)
    發(fā)表于 11-07 09:19

    一種基于AdaBoost的SVM分類器

    針對AdaBoost的分量分類器的分類精度和差異性互為矛盾、以至于該矛盾的存在降低了AdaBoost算法的分類精度和泛化性的問題,提出了一種變 一AdaB0ostRBFSVM算法,通過
    發(fā)表于 01-08 18:12 ?28次下載

    Adaboost算法的FPGA實(shí)現(xiàn)與性能分析

    Adaboost算法采用由弱到強(qiáng)的級聯(lián)型分類器用以快速檢測人臉。但在實(shí)際應(yīng)用中計(jì)算量巨大。在PC機(jī)上用純軟件實(shí)現(xiàn)該算法得到的目標(biāo)檢測速度也難以達(dá)到實(shí)時(shí)。本文論述了一種采用像
    發(fā)表于 07-17 18:11 ?22次下載

    基于Adaboost算法的駕駛員眨眼識(shí)別

    基于Adaboost算法的駕駛員眨眼識(shí)別 眨眼是一種睜閉眼睛的生理活動(dòng),眨眼的速度會(huì)受疲勞程度、情感壓力、行為種類、睡覺數(shù)量、眼睛受傷程度、疾
    發(fā)表于 11-09 17:17 ?1204次閱讀

    AdaBoost算法流程和證明

    Discete-AdaBoost算法 1、給定訓(xùn)練集: ,其中 ,表示 的正確的類別標(biāo)簽, , 表示第i副圖像的第j個(gè)特征值 2、訓(xùn)練集上樣本的初始分布: 3、尋找若分類器 ht( ) (1)對于每個(gè)樣本中的第j個(gè)特
    發(fā)表于 07-18 10:40 ?0次下載

    基于AdaBoost_Bayes算法的中文文本分類系統(tǒng)

    基于AdaBoost_Bayes算法的中文文本分類系統(tǒng)_徐凱
    發(fā)表于 01-07 18:56 ?2次下載

    基于主動(dòng)學(xué)習(xí)不平衡多分類AdaBoost改進(jìn)算法

    針對不平衡分類中小類樣本識(shí)別率低問題,提出一種基于主動(dòng)學(xué)習(xí)不平衡多分類AdaBoost改進(jìn)算法。首先,利用主動(dòng)學(xué)習(xí)方法通過多次迭代抽樣,選取少量的、對分類器最有價(jià)值的樣本作為訓(xùn)練集;然后
    發(fā)表于 11-30 17:12 ?3次下載

    一種多分類的AdaBoost算法

    多類指數(shù)損失函數(shù)逐步添加模型( SAMME)是一種多分類的AdaBoost算法,為進(jìn)一步提升SAMME算法的性能,針對使用加權(quán)概率和偽損失對算法的影響進(jìn)行研究,在此基礎(chǔ)上提出了一種基于
    發(fā)表于 12-01 16:50 ?1次下載

    非線性AdaBoost算法

    AdaBoost是數(shù)據(jù)挖掘領(lǐng)域最常見的提升算法之一。對傳統(tǒng)AdaBoost將各個(gè)基分類器線性相加所存在的不足進(jìn)行分析,并針對AdaBoost各個(gè)弱分類器的加權(quán)方式提出新的改進(jìn),將傳統(tǒng)的
    發(fā)表于 01-04 16:58 ?0次下載

    adaboost運(yùn)行函數(shù)的算法怎么來的?基本程序代碼實(shí)現(xiàn)詳細(xì)

    adaboost運(yùn)行過程。算法是利用指數(shù)函數(shù)降低誤差,運(yùn)行過程通過迭代進(jìn)行。其中函數(shù)的算法怎么來的,你不用知道!當(dāng)然你也可以嘗試使用其它的函數(shù)代替指數(shù)函數(shù),看看效果如何。誤差的上界限由Zm約束,然而Zm又是由Gm(xi)約束,所
    的頭像 發(fā)表于 07-21 10:18 ?2477次閱讀

    AdaBoost算法相關(guān)理論和算法介紹

    本文詳細(xì)總結(jié)AdaBoost算法的相關(guān)理論,本文詳細(xì)推導(dǎo)了AdaBoost算法的參數(shù)求解過程以及討論了模型的過擬合問題。
    的頭像 發(fā)表于 01-07 18:26 ?4191次閱讀
    <b class='flag-5'>AdaBoost</b><b class='flag-5'>算法</b>相關(guān)理論和<b class='flag-5'>算法</b>介紹

    基于AdaBoost算法的復(fù)雜網(wǎng)絡(luò)鏈路預(yù)測

    鏈路預(yù)測是復(fù)雜網(wǎng)絡(luò)的重要研究方向,當(dāng)前的鏈路預(yù)測算法因可利用的網(wǎng)絡(luò)信息有限,導(dǎo)致預(yù)測算法的精確度受限為了提高預(yù)測算法的性能,采用改進(jìn)的 Adaboost
    發(fā)表于 04-08 11:21 ?15次下載
    基于<b class='flag-5'>AdaBoost</b><b class='flag-5'>算法</b>的復(fù)雜網(wǎng)絡(luò)鏈路預(yù)測

    基于SVM與Adaboost算法的入侵檢測系統(tǒng)

    入侵檢測系統(tǒng)在大數(shù)據(jù)量的情況下誤報(bào)率高、泛化能力弱,且單一機(jī)器學(xué)習(xí)算法不能較好地應(yīng)對多種攻擊類型。為此,設(shè)計(jì)一個(gè)基于支持向量機(jī)(SM)與 Adaboost算法的入侵檢測系統(tǒng)。依托 Snort系統(tǒng)
    發(fā)表于 05-25 16:35 ?6次下載

    基于AdaBoost算法的回放語音檢測方法

    針對語音判別系統(tǒng)中單個(gè)分類器分類能力有限的問題,提出一種基于 Adaboost算法的回放語音檢測方法。以常量Q倒譜系數(shù)和均值超矢量分別作為特征參數(shù)和 Adaboost算法的輸人,將多個(gè)
    發(fā)表于 06-03 11:34 ?10次下載