1、演算法簡介:
adaboost(adaptive boosting)演算法是一種原理簡單的有監督的機器學習演算法。它的發展與乙個非常有趣的理論有關,即強學習演算法與弱學習演算法的等價性問題,能否使用弱分類器和多個例項來構建乙個強分類器。這裡的「弱」是指分類器的效能比隨機猜測略好,但也不會好太多;而「強」是指識別錯誤率很高並能在多項式時間內完成。可以分析的是,如果以上猜想成立,即二者等價,那麼只需找到乙個弱分類器,就可以構建出我們所期望的強分類器。adaboost演算法正是脫胎於以上理論。而本文介紹的知識最流行的乙個版本的adaboost。
2、原理介紹:
adaboost演算法是基於迭代思想,針對同乙個訓練集,訓練不同的弱分類器,然後統籌各個弱分類器的結果,構成乙個強分類器。
其具體實現是這樣的:首先對於訓練資料的每個樣本,會分配乙個權重(權重和為1,初始化為相等值,每個樣本的權重會隨訓練過程而改變),對於每次的弱分類器的訓練,該分類器會對樣本產生相應的**值,進一步的基於權重求和得到錯誤率
(**錯誤的樣本的權重和)
,基於錯誤率會計算得到該若分類器在最後的強分類器的權重
,錯誤率越高,其權重自然越低,計算公式下文會具體說明。而以上說到的樣本的權重,會在每次**之後加以修改,演算法降低分類正確的樣本的權重,而提高分類錯誤的樣本的權重。幾個關鍵的需要注意的因素就是每次訓練中樣本權重向量
的計算更新(下文會說明更新方式),每個弱分類器的分類錯誤率
,每個弱分類器在最終強分類器的比重
。adaboost演算法不斷重複訓練,每次更新權重向量直到訓練錯誤率為0或弱分類器數目達到使用者指定值為止。
3、演算法實現:
1)給定訓練集:
,其中,表示
(樣本特徵向量)的正確的類別標籤,
;2)初始化樣本權重向量:
3)尋找弱分類器
:對於每個樣本中的第j個特徵,可以得到乙個弱分類器
,即可得到閾值
和方向,使得
達到最小,而弱分類器
為:其中
決定不等式的方向, 只有+1和-1兩種情況
4)將所有特徵(j)中挑選出乙個具有最小誤差
的弱分類器
,即為本輪訓練中所需要的弱分類器,計算該弱分類器在最終的強分類器中所佔的權重:
5)對所有的樣本權重進行更新:
其中是歸一化因子,使
。對於上式進一步說明,我們前面提到,對於正確分類的樣本會降低其權重,錯誤分類的樣本會增大其權重,通過以上式子即可實現。注意到對於分類正確的樣本
,分類錯誤的樣本
,則對於正確的樣本有:
錯誤的樣本有:
經分析知道,分別可以達到降低與增大權重的效果。
6)重複以上步驟直到演算法終止,得到每輪訓練中最優的弱分類器,此時基於每次迭代的弱分類器及其權重組成乙個強分類器:
至此演算法步驟描述完畢。
4、演算法分析
adaboost演算法的優點可以概括如下:
泛化錯誤率低,即分類準確度較高;容易編碼實現;可以應用於大部分分類器上,其子分類器可以是任意分類器,而adaboost只是基於子分類器搭建的框架。
然而另一方面,adaboost也存在對離群點敏感的問題。
adaboost主要應用解決:兩類問題、多類單標籤問題、多類多標籤問題、大類單標籤問題,回歸問題。
AdaBoost演算法原理
每個haar特徵對應看乙個弱分類器,但並不是任伺乙個haar特徵都能較好的描述人臉灰度分布的某一特點,如何從大量的haar特徵中挑選出最優的haar特徵並製作成分類器用於人臉檢測,這是adaboost演算法訓練過程所要解決的關鍵問題。paul viola和michael jones於2001年將ad...
AdaBoost演算法詳解
adaboost 演算法介紹 adaboost演算法本身是通過改變資料分布來實現的,它根據每次訓練集之中每個樣本的分類是否正確,以及上次的總體分類的準確率,來修改每個樣本的權值。將修改過權值的新資料集送給下層分類器進行訓練,最後將每次得到的分類器最後融合起來,作為最後的決策分類器。adaboost演...
AdaBoost演算法梳理
在boosting family中,最具代表性的實現就是adaboost。adaboost是英文 adaptive boosting 自適應增強 的縮寫,它的自適應在於 前乙個基本分類器被錯誤分類的樣本的權值會增大,而正確分類的樣本的權值會減小,並再次用來訓練下乙個基本分類器。同時,在每一輪迭代中,...