AdaBoost 演算法簡介

2022-07-29 19:18:12 字數 1592 閱讀 2040

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 自適應增強 的縮寫,它的自適應在於 前乙個基本分類器被錯誤分類的樣本的權值會增大,而正確分類的樣本的權值會減小,並再次用來訓練下乙個基本分類器。同時,在每一輪迭代中,...