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

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

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

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

lviY_AI_shequ ? 來(lái)源:lq ? 作者:張磊 ? 2019-01-07 18:26 ? 次閱讀

作者簡(jiǎn)介

張磊:從事AI醫(yī)療算法相關(guān)工作個(gè)人微信公眾號(hào):機(jī)器學(xué)習(xí)算法那些事(微信ID:zl13751026985)

目錄

1. Boosting算法基本原理

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

3. AdaBoost的算法流程

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

5. AdaBoost算法的解釋

6. AdaBoost算法的過(guò)擬合問(wèn)題討論

7. AdaBoost算法的正則化

8. 總結(jié)

本文詳細(xì)總結(jié)了AdaBoost算法的相關(guān)理論,相當(dāng)于深入理解AdaBoost算法,該文詳細(xì)推導(dǎo)了AdaBoost算法的參數(shù)求解過(guò)程以及討論了模型的過(guò)擬合問(wèn)題。

AdaBoost算法的解釋

AdaBoost算法是一種迭代算法,樣本權(quán)重和學(xué)習(xí)器權(quán)重根據(jù)一定的公式進(jìn)行更新,第一篇文章給出了更新公式,但是并沒(méi)有解釋原因,本節(jié)用前向分布算法去推導(dǎo)樣本權(quán)重和學(xué)習(xí)器權(quán)重的更新公式。

1. 前向分布算法

考慮加法模型:

給定訓(xùn)練數(shù)據(jù)和損失函數(shù)L(y,f(x))的條件下,構(gòu)建最優(yōu)加法模型f(x)的問(wèn)題等價(jià)于損失函數(shù)最小化:

我們利用前向分布算法來(lái)求解(2)式的最優(yōu)參數(shù),前向分布算法的核心是從前向后,每一步計(jì)算一個(gè)基函數(shù)及其系數(shù),逐步逼近優(yōu)化目標(biāo)函數(shù)式(2),那么就可以簡(jiǎn)化優(yōu)化的復(fù)雜度。

算法思路如下:

M-1個(gè)基函數(shù)的加法模型:

M個(gè)基函數(shù)的加法模型:

由(3)(4)得:

因此,極小化M個(gè)基函數(shù)的損失函數(shù)等價(jià)于:

前向分布算法的思想是從前向后計(jì)算,當(dāng)我們已知的值時(shí),可通過(guò)(6)式遞歸來(lái)計(jì)算第 i 個(gè)基函數(shù)及其系數(shù),i = 1,2,...M。

結(jié)論:通過(guò)前向分布算法來(lái)求解加法模型的參數(shù)。

2. AdaBoost損失函數(shù)最小化

AdaBoost算法的強(qiáng)分類器是一系列弱分類器的線性組合:

其中f(x)為強(qiáng)分類器,共M個(gè)弱分類器,是對(duì)應(yīng)的弱分類器權(quán)重。

由(7)式易知,f(x)是一個(gè)加法模型。

AdaBoost的損失函數(shù)L(y,f(x))為指數(shù)函數(shù)

利用前向分布算法最小化(8)式,可得到每一輪的弱學(xué)習(xí)器和弱學(xué)習(xí)器權(quán)值。第m輪的弱學(xué)習(xí)器和權(quán)值求解過(guò)程:

首先根據(jù)(9)式來(lái)求解弱學(xué)習(xí)器,權(quán)值α看作常數(shù):

求解弱學(xué)習(xí)器后,(9)式對(duì)α求導(dǎo)并使導(dǎo)數(shù)為0,得:

其中,α是弱學(xué)習(xí)器權(quán)值,e為分類誤差率:

因?yàn)锳daBoost是加法迭代模型:

以及,得:

結(jié)論:式(14)(15)(16)與第一篇文章介紹AdaBoost算法的權(quán)重更新完全一致,即AdaBoost算法的權(quán)重更新與AdaBoost損失函數(shù)最優(yōu)化是等價(jià)的,每次更新都是模型最優(yōu)化的結(jié)果,(13)式的含義是每一輪弱學(xué)習(xí)器是最小化訓(xùn)練集權(quán)值誤差率的結(jié)果。一句話,AdaBoost的參數(shù)更新和弱學(xué)習(xí)器模型構(gòu)建都是模型最優(yōu)化的結(jié)果。

AdaBoost算法的過(guò)擬合問(wèn)題討論

1. 何時(shí)該討論過(guò)擬合問(wèn)題

模型的泛化誤差可分解為偏差、方差與噪聲之和。當(dāng)模型的擬合能力不夠強(qiáng)時(shí),泛化誤差由偏差主導(dǎo);當(dāng)模型的擬合能力足夠強(qiáng)時(shí),泛化誤差由方差主導(dǎo)。因此,當(dāng)模型的訓(xùn)練程度足夠深時(shí),我們才考慮模型的過(guò)擬合問(wèn)題。

2. 問(wèn)題的提出

如下圖為同一份訓(xùn)練數(shù)據(jù)的不同模型分類情況:

圖(1)(2)的訓(xùn)練誤差都為0,那么這兩種分類模型的泛化能力孰優(yōu)孰劣?在回答這個(gè)問(wèn)題,我想首先介紹下邊界理論(Margin Theory)。

3. 邊界理論

周志華教授在《集成學(xué)習(xí)方法基礎(chǔ)與算法》證明了:

其中,為泛化誤差率,為邊界閾值。

由上式可知,泛化誤差收斂于某個(gè)上界,訓(xùn)練集的邊界(Margin)越大,泛化誤差越小,防止模型處于過(guò)擬合情況。如下圖:

結(jié)論:增加集成學(xué)習(xí)的弱學(xué)習(xí)器數(shù)目,邊界變大,泛化誤差減小。

4. 不同模型的邊界評(píng)估

1) 線性分類模型的邊界評(píng)估

用邊界理論回答第一小節(jié)的問(wèn)題

線性分類模型的邊界定義為所有樣本點(diǎn)到分類邊界距離的最小值,第一小節(jié)的圖(b)的邊界值較大,因此圖(b)的泛化能力較好。

2) logistic分類模型的邊界評(píng)估

logistic分類模型的邊界定義為所有輸入樣本特征絕對(duì)值的最小值,由下圖可知,模型b邊界大于模型a邊界,因此,模型b的泛化能力強(qiáng)于模型a 。

3)AdaBoost分類模型邊界評(píng)估

AdaBoost的強(qiáng)分類器:

AdaBoost的邊界定義為f(x)的絕對(duì)值,邊界越大,泛化誤差越好。

當(dāng)訓(xùn)練程度足夠深時(shí),弱學(xué)習(xí)器數(shù)目增加,f(x)絕對(duì)值增加,則泛化能力增強(qiáng)。

結(jié)論:AdaBoost算法隨著弱學(xué)習(xí)器數(shù)目的增加,邊界變大,泛化能力增強(qiáng)。

AdaBoost算法的正則化

為了防止AdaBoost過(guò)擬合,我們通常也會(huì)加入正則化項(xiàng)。AdaBoost的正則化項(xiàng)可以理解為學(xué)習(xí)率(learning rate)。

AdaBoost的弱學(xué)習(xí)器迭代:

加入正則化項(xiàng):

v的取值范圍為:0 < v < 1。因此,要達(dá)到同樣的訓(xùn)練集效果,加入正則化項(xiàng)的弱學(xué)習(xí)器迭代次數(shù)增加,由上節(jié)可知,迭代次數(shù)增加可以提高模型的泛化能力。

總結(jié)

AdaBoost的核心思想在于樣本權(quán)重的更新和弱分類器權(quán)值的生成,樣本權(quán)重的更新保證了前面的弱分類器重點(diǎn)處理普遍情況,后續(xù)的分類器重點(diǎn)處理疑難雜癥。最終,弱分類器加權(quán)組合保證了前面的弱分類器會(huì)有更大的權(quán)重,這其實(shí)有先抓總體,再抓特例的分而治之思想。

關(guān)于AdaBoost算法的過(guò)擬合問(wèn)題,上兩節(jié)描述當(dāng)弱學(xué)習(xí)器迭代數(shù)增加時(shí),泛化能力增強(qiáng)。AdaBoost算法不容易出現(xiàn)過(guò)擬合問(wèn)題,但不是絕對(duì)的,模型可能會(huì)處于過(guò)擬合的情況

(1)弱學(xué)習(xí)器的復(fù)雜度很大,因此選擇較小復(fù)雜度模型可以避免過(guò)擬合問(wèn)題,如選擇決策樹(shù)樁。adaboost + 決策樹(shù) = 提升樹(shù)模型。

(2)訓(xùn)練數(shù)據(jù)含有較大的噪聲,隨著迭代次數(shù)的增加,可能出現(xiàn)過(guò)擬合情況。


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

    關(guān)注

    23

    文章

    4587

    瀏覽量

    92500
  • Adaboost算法
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    1303

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

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

    SVPWM算法架構(gòu)介紹

    簡(jiǎn)要文檔說(shuō)明算法介紹算法架構(gòu)如下所示,其中采用SVPWM矢量控制,id=0。主要包括三個(gè)部分:轉(zhuǎn)速環(huán)PI調(diào)節(jié)器,電流環(huán)PI調(diào)節(jié)器,SVPWM算法等。主要參數(shù)計(jì)算3.1 轉(zhuǎn)速環(huán)ADRC
    發(fā)表于 08-27 07:41

    基于模擬退火結(jié)合粒子群算法相關(guān)資料分享

    【優(yōu)化選址】基于模擬退火結(jié)合粒子群算法求解分布式電源定容選址問(wèn)題matlab源碼1 算法介紹1.1 模擬退火算法1.2 粒子群算法粒子群
    發(fā)表于 01-03 07:58

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

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

    AdaBoost算法流程和證明

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

    UKF濾波算法_非線性系統(tǒng)

    UKF濾波算法相關(guān)理論,有興趣的朋友可以看看,強(qiáng)力推薦。
    發(fā)表于 02-23 11:23 ?0次下載

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

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

    一種多分類的AdaBoost算法

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

    非線性AdaBoost算法

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

    關(guān)于二叉樹(shù)一些數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目

    最近總結(jié)了一些數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目,這是第一篇文章,關(guān)于二叉樹(shù)的。
    的頭像 發(fā)表于 02-07 13:57 ?3169次閱讀

    Adaboost算法總結(jié)

    集成學(xué)習(xí)的Boosting算法通過(guò)結(jié)合多個(gè)弱學(xué)習(xí)器組成強(qiáng)學(xué)習(xí)器,AdaBoost算法是Boosting算法中的一種,本文詳細(xì)的總結(jié)了AdaBoost
    的頭像 發(fā)表于 12-29 16:08 ?3074次閱讀
    <b class='flag-5'>Adaboost</b><b class='flag-5'>算法</b>總結(jié)

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

    鏈路預(yù)測(cè)是復(fù)雜網(wǎng)絡(luò)的重要研究方向,當(dāng)前的鏈路預(yù)測(cè)算法因可利用的網(wǎng)絡(luò)信息有限,導(dǎo)致預(yù)測(cè)算法的精確度受限為了提高預(yù)測(cè)算法的性能,采用改進(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ù)測(cè)

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

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

    基于AdaBoost算法的回放語(yǔ)音檢測(cè)方法

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