演算法原理
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演算法是將 弱學習...