精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

AdaBoost算法相關理論和算法介紹

lviY_AI_shequ ? 來源:lq ? 作者:張磊 ? 2019-01-07 18:26 ? 次閱讀

作者簡介

張磊:從事AI醫療算法相關工作個人微信公眾號:機器學習算法那些事(微信ID:zl13751026985)

目錄

1. Boosting算法基本原理

2. Boosting算法的權重理解

3. AdaBoost的算法流程

4. AdaBoost算法的訓練誤差分析

5. AdaBoost算法的解釋

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

7. AdaBoost算法的正則化

8. 總結

本文詳細總結了AdaBoost算法的相關理論,相當于深入理解AdaBoost算法,該文詳細推導了AdaBoost算法的參數求解過程以及討論了模型的過擬合問題。

AdaBoost算法的解釋

AdaBoost算法是一種迭代算法,樣本權重和學習器權重根據一定的公式進行更新,第一篇文章給出了更新公式,但是并沒有解釋原因,本節用前向分布算法去推導樣本權重和學習器權重的更新公式。

1. 前向分布算法

考慮加法模型:

給定訓練數據和損失函數L(y,f(x))的條件下,構建最優加法模型f(x)的問題等價于損失函數最小化:

我們利用前向分布算法來求解(2)式的最優參數,前向分布算法的核心是從前向后,每一步計算一個基函數及其系數,逐步逼近優化目標函數式(2),那么就可以簡化優化的復雜度。

算法思路如下:

M-1個基函數的加法模型:

M個基函數的加法模型:

由(3)(4)得:

因此,極小化M個基函數的損失函數等價于:

前向分布算法的思想是從前向后計算,當我們已知的值時,可通過(6)式遞歸來計算第 i 個基函數及其系數,i = 1,2,...M。

結論:通過前向分布算法來求解加法模型的參數。

2. AdaBoost損失函數最小化

AdaBoost算法的強分類器是一系列弱分類器的線性組合:

其中f(x)為強分類器,共M個弱分類器,是對應的弱分類器權重。

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

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

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

首先根據(9)式來求解弱學習器,權值α看作常數:

求解弱學習器后,(9)式對α求導并使導數為0,得:

其中,α是弱學習器權值,e為分類誤差率:

因為AdaBoost是加法迭代模型:

以及,得:

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

AdaBoost算法的過擬合問題討論

1. 何時該討論過擬合問題

模型的泛化誤差可分解為偏差、方差與噪聲之和。當模型的擬合能力不夠強時,泛化誤差由偏差主導;當模型的擬合能力足夠強時,泛化誤差由方差主導。因此,當模型的訓練程度足夠深時,我們才考慮模型的過擬合問題。

2. 問題的提出

如下圖為同一份訓練數據的不同模型分類情況:

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

3. 邊界理論

周志華教授在《集成學習方法基礎與算法》證明了:

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

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

結論:增加集成學習的弱學習器數目,邊界變大,泛化誤差減小。

4. 不同模型的邊界評估

1) 線性分類模型的邊界評估

用邊界理論回答第一小節的問題

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

2) logistic分類模型的邊界評估

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

3)AdaBoost分類模型邊界評估

AdaBoost的強分類器:

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

當訓練程度足夠深時,弱學習器數目增加,f(x)絕對值增加,則泛化能力增強。

結論:AdaBoost算法隨著弱學習器數目的增加,邊界變大,泛化能力增強。

AdaBoost算法的正則化

為了防止AdaBoost過擬合,我們通常也會加入正則化項。AdaBoost的正則化項可以理解為學習率(learning rate)。

AdaBoost的弱學習器迭代:

加入正則化項:

v的取值范圍為:0 < v < 1。因此,要達到同樣的訓練集效果,加入正則化項的弱學習器迭代次數增加,由上節可知,迭代次數增加可以提高模型的泛化能力。

總結

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

關于AdaBoost算法的過擬合問題,上兩節描述當弱學習器迭代數增加時,泛化能力增強。AdaBoost算法不容易出現過擬合問題,但不是絕對的,模型可能會處于過擬合的情況

(1)弱學習器的復雜度很大,因此選擇較小復雜度模型可以避免過擬合問題,如選擇決策樹樁。adaboost + 決策樹 = 提升樹模型。

(2)訓練數據含有較大的噪聲,隨著迭代次數的增加,可能出現過擬合情況。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 算法
    +關注

    關注

    23

    文章

    4601

    瀏覽量

    92671
  • Adaboost算法
    +關注

    關注

    0

    文章

    5

    瀏覽量

    1305

原文標題:比較全面的Adaboost算法總結(二)

文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Adaboost算法的Haar特征怎么進行并行處理?

    Adaboost 算法是Freund 和Schapire 于1995 年提出的,全稱為Adaptive Boosting。它是 Boosting 算法的改進,意為該算法通過機器訓練與學
    發表于 08-28 07:05

    實現AdaBoost算法的代碼

    AdaBoost算法實現
    發表于 11-07 09:19

    SVPWM算法架構介紹

    簡要文檔說明算法介紹算法架構如下所示,其中采用SVPWM矢量控制,id=0。主要包括三個部分:轉速環PI調節器,電流環PI調節器,SVPWM算法等。主要參數計算3.1 轉速環ADRC
    發表于 08-27 07:41

    基于模擬退火結合粒子群算法相關資料分享

    【優化選址】基于模擬退火結合粒子群算法求解分布式電源定容選址問題matlab源碼1 算法介紹1.1 模擬退火算法1.2 粒子群算法粒子群
    發表于 01-03 07:58

    Adaboost算法的FPGA實現與性能分析

    Adaboost算法采用由弱到強的級聯型分類器用以快速檢測人臉。但在實際應用中計算量巨大。在PC機上用純軟件實現該算法得到的目標檢測速度也難以達到實時。本文論述了一種采用像
    發表于 07-17 18:11 ?22次下載

    AdaBoost算法流程和證明

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

    UKF濾波算法_非線性系統

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

    基于AdaBoost_Bayes算法的中文文本分類系統

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

    一種多分類的AdaBoost算法

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

    非線性AdaBoost算法

    AdaBoost是數據挖掘領域最常見的提升算法之一。對傳統AdaBoost將各個基分類器線性相加所存在的不足進行分析,并針對AdaBoost各個弱分類器的加權方式提出新的改進,將傳統的
    發表于 01-04 16:58 ?0次下載

    關于二叉樹一些數據結構和算法相關的題目

    最近總結了一些數據結構和算法相關的題目,這是第一篇文章,關于二叉樹的。
    的頭像 發表于 02-07 13:57 ?3178次閱讀

    Adaboost算法總結

    集成學習的Boosting算法通過結合多個弱學習器組成強學習器,AdaBoost算法是Boosting算法中的一種,本文詳細的總結了AdaBoost
    的頭像 發表于 12-29 16:08 ?3085次閱讀
    <b class='flag-5'>Adaboost</b><b class='flag-5'>算法</b>總結

    基于AdaBoost算法的復雜網絡鏈路預測

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

    基于SVM與Adaboost算法的入侵檢測系統

    入侵檢測系統在大數據量的情況下誤報率高、泛化能力弱,且單一機器學習算法不能較好地應對多種攻擊類型。為此,設計一個基于支持向量機(SM)與 Adaboost算法的入侵檢測系統。依托 Snort系統
    發表于 05-25 16:35 ?6次下載

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

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