AdaBoost演算法原理

2022-07-14 21:45:18 字數 1320 閱讀 8524

演算法原理

adaboost

演算法針對不同的訓練集訓練同乙個基本分類器(弱分類器),然後把這些在不同訓練集上得到的分類器集合起來,構成乙個更強的最終的分類器(強分類器)。理論證明,只要每個弱分類器分類能力比隨機猜測要好,當其個數趨向於無窮個數時,強分類器的錯誤率將趨向於零。adaboost

演算法中不同的訓練集是通過調整每個樣本對應的權重實現的。最開始的時候,每個樣本對應的權重是相同的,在此樣本分佈下訓練出乙個基本分類器

h1(x)

。對於h1(x)

錯分的樣本,則增加其對應樣本的權重;而對於正確分類的樣本,則降低其權重。這樣可以使得錯分的樣本突出出來,並得到乙個新的樣本分佈。同時,根據錯分的情況賦予

h1(x)

乙個權重,表示該基本分類器的重要程度,錯分得越少權重越大。在新的樣本分佈下,再次對基本分類器進行訓練,得到基本分類器

h2(x)

及其權重。依次類推,經過

t次這樣的迴圈,就得到了

t個基本分類器,以及

t個對應的權重。最後把這

t個基本分類器按一定權重累加起來,就得到了最終所期望的強分類器。

adaboost

演算法的具體描述如下:假定x

表示樣本空間,

y表示樣本類別標識集合,假設是二值分類問題,這裡限定

y=。令

s=為樣本訓練集,其中xi∈

x,yi∈

y。①始化

m個樣本的權值,假設樣本分佈

dt為均勻分布:

dt(i)=1/m

,dt(i)

表示在第

t輪迭代中賦給樣本

(xi,yi)

的權值。②令

t表示迭代的次數。

③for t=1 to t do

根據樣本分佈

dt,通過對訓練集

s進行抽樣(有回放)產生訓練集st。

在訓練集

st上訓練分類器ht。

用分類器

ht對原訓練集

s中的所有樣本分類。

得到本輪的分類器ht:

x →y,並且有誤差ε

t=pri-di[ht(xi) 

≠yi]。令α

t=(1/2

)ln[(1-εt

)/ εt]

。更新每個樣本的權值

,其中,

zt是乙個正規因子,用來確保σ

idt+1(i)=1

。end for

④最終的**輸出為:

AdaBoost演算法原理

每個haar特徵對應看乙個弱分類器,但並不是任伺乙個haar特徵都能較好的描述人臉灰度分布的某一特點,如何從大量的haar特徵中挑選出最優的haar特徵並製作成分類器用於人臉檢測,這是adaboost演算法訓練過程所要解決的關鍵問題。paul viola和michael jones於2001年將ad...

整合演算法原理 Adaboost

有位前輩總結得很清晰有條理,借鑑一下 簡單把裡面我自己要備忘的要點概括一下 1 基本原理 boosting演算法的工作機制是首先從訓練集用初始權重訓練出乙個弱學習器1,根據弱學習的學習誤差率表現來更新訓練樣本的權重,使得之前弱學習器1學習誤差率高的訓練樣本點的權重變高,使得這些誤差率高的點在後面的弱...

AdaBoost原理詳解

寫一點自己理解的adaboost,然後再貼上面試過程中被問到的相關問題。按照以下目錄展開。當然,也可以去我的部落格上看 面經adaboost是典型的boosting演算法,屬於boosting家族的一員。在說adaboost之前,先說說boosting提公升演算法。boosting演算法是將 弱學習...