分類器之adaboost

2021-07-01 23:27:30 字數 1876 閱讀 1580

分類中通常使用將多個弱分類器組合成強分類器進行分類的方法,統稱為整合分類方法(ensemble method)。比較簡單的如在boosting之前出現bagging的方法,首先從從總體樣本集合中抽樣採取不同的訓練集訓練弱分類器,然後使用多個弱分類器進行voting,終於的結果是分類器投票的優勝結果。這樣的簡單的voting策略通常難以有非常好的效果。直到後來的boosting方法問世,組合弱分類器的威力才被發揮出來。boosting意為加強、提公升,也就是說將弱分類器提公升為強分類器。而我們常聽到的adaboost是boosting發展到後來最為代表性的一類。所謂adaboost,即adaptive boosting,是指弱分類器依據學習的結果反饋adaptively調整如果的錯誤率,所以也不須要不論什麼的先驗知識就能夠自主訓練。breiman在他的**裡讚揚adaboost是最好的off-the-shelf方法。

adaboosting方法大致有:discrete adaboost, real adaboost, logitboost, 和gentle adaboost。全部的方法訓練的框架的都是類似的。以discrete adaboost為例,其訓練流程例如以下:

首先初始化每乙個樣本同樣的權重(步驟2);之後使用加權的樣本訓練每乙個弱分類器 (步驟3.1);分類後得到加權的訓練錯誤率和比例因子 (步驟3.2);將被錯誤分類的樣本的權重加大,並將改動後的權重再次歸一化(步驟3.3);迴圈訓練過程,終於使用比例因子 組合組合弱分類器構成終於的強分類器。

以下看乙個更形象的圖,多個弱分類器的組合過程和結果大致為:

訓練的迴圈過程,加重被錯誤分類的樣本的權重是一種有效的加速訓練的方法。因為訓練中正確率高的弱分類器權重較大,新一輪的訓練中正確分類的樣本會越來越多,權重較小的訓練樣本對在新一輪的訓練中起作用較小,也就是,每一輪新的訓練都著重訓練被錯誤分類的樣本。

實際訓練中弱分類器是一樣的,但弱分類器實際使用的訓練資料不同,通常使用特徵向量的每一維分別構成乙個弱分類器。而後來大名鼎鼎的haar+adaboost人臉檢測方法是使用每種haar特徵構成乙個弱分類器,基於block的haar特徵比簡單的基於pixel的特徵有帶有很多其它的資訊,通常能得到更好的檢測效果,而積分圖integral的方法使其在計算速度上也有非常大優勢。有興趣可參考《基於adaboost和haar-like特徵人臉識別》。

discrete adaboost是最簡單的兩類boosting分類結果,而興許的real adaboost(也稱為adaboost.mh)能夠看做discrete adaboost的泛化形式,弱分類器能夠輸出多個分類結果,並輸出這幾個分類結果的可能性,能夠看成每乙個弱分類器都更不「武斷」。而gentle adaboost則是改動了迭代訓練過程中錯誤樣本權重調整的方法,較少地強調難以分類的樣本,從而避免了原本adaboost對」非典型」的正樣本權值調整非常高而導致了分類器的效率下降的情況。,而產生的變種演算法。adaboost的matlabe工具箱

《cart和gml adaboost matlab toolbox》):

至於logitadaboost我事實上不太了解,詳細可參考《

opencv關於adaboost的一些說明》。

adaboost演算法分類器的訓練

經過多時的摸索,終於實現分類器的訓練。不敢保證每次都成功,但有一次實現,就可以把該注意的記錄下來 分類器的訓練分三步進行 第一步 收集材料 正負樣本材料的收集,本人是在灰度圖下進行實驗的。正樣本的大小最好一致,負樣本的大小沒有要求,只要內沒有目標就行。1.正樣本描述檔案 正樣本放在單獨的資料夾下,並...

機器學習 分類器組合 AdaBoost

adaboost是一種迭代演算法,其核心思想是針對同乙個訓練集訓練不同的分類器 弱分類器 然後把這些弱分類器集合起來,構成乙個更強的最終分類器 強分類器 adaboost其實只是boost的乙個特例。1.要訓練出多個弱分類器 圖中為3個 每個弱分類器由不同權重的樣本 圖中為5個訓練樣本 訓練得到 其...

機器學習 分類器 Adaboost原理

adaboost adaptiveboosting 是一種迭代演算法,通過對訓練集不斷訓練弱分類器,然後把這些弱分類器集合起來,構成強分類器。adaboost演算法訓練的過程中,初始化所有訓練樣例的具有相同的權值重,在此樣本分佈下訓練出乙個弱分類器,針對錯分樣本加大對其對應的權值,分類正確的樣本降低...