AdaBoost 演算法 Latex原稿

2021-09-02 15:27:19 字數 3721 閱讀 1455

\documentclass[a4*****,11pt]

\title

\author

\date

\usepackage

\usepackage

\usepackage

\usepackage

\usepackage

\usepackage

\usepackage

\newtheorem

\newtheorem

\newtheorem

\ctexsetup[name=]

\ctexsetup[beforeskip = ]

\ctexsetup[afterskip = ]

\ctexsetup[format = \bfseries}]

\ctexsetup[name=]

\ctexsetup[beforeskip = ]

\ctexsetup[afterskip = ]

\ctexsetup[format = \selectfont\bfseries}]

\ctexsetup[beforeskip = ]

\ctexsetup[afterskip = ]

\ctexsetup[format = \bfseries}]

\geometry

\begin

\maketitle

\pagestyle

\section

通常對於非平凡的學習任務,直接設計乙個pac學習演算法是困難的,但是找到如下定義稍弱一點的學習演算法一般是比較容易的。

\begin

\textbf\\

乙個概念類c是 \textbf 的,如果存在$\gamma>0$和多項式函式$poly(\cdot,\cdot,\cdot,\cdot)$,使得對於所有 $\epsilon,\delta>0$,輸入空間 x 的任意分布 d,以及任意目標概念 $c\in c$,只要訓練樣本數 $m\geq poly(1/\epsilon,1/\delta,n,size(c))$,由某個演算法 a 訓練得到的假設函式 $h_s$ 滿足:

\begin

\pr_ [r(h_s)\leq \frac-\gamma] \geq 1-\delta.

\end

稱演算法a為針對概念類c的乙個\textbf,由弱學習演算法返回的假設函式h稱為\textbf。

\end

\section

\begin[ht]

\caption)$}

\begin[1]

\label

\for $m$}

\state $d_1(i) \leftarrow \frac$

\endfor

\for $t$}

\state $h_t \leftarrow$ 由弱學習演算法$h$得到的誤差為$\epsilon_t = \pr_[h_t(x_i)\neq y_i]$ 的基分類器

\state $\alpha_t \leftarrow \fraclog\frac$

\state $z_t \leftarrow 2[\epsilon_t(1-\epsilon_t)]^}$

\for $m$}

\state $d_(i) \leftarrow \frac$

\endfor

\endfor

\state $g \leftarrow \sum_^ \alpha_t h_t$

\return $h=sgn(g)$

\end

\end

整合學習方法中的boosting技術是指通過整合多個基分類器來得到乙個具有更高準確率的強分類器。演算法 \ref 給出了adaboost的偽**,通過整合$t$個基分類器得到乙個強分類器$h$。

首先假定每個樣本點的權重是相等的,即$d_1(i)=\frac$。每次通過弱學習演算法$h$得到乙個弱分類器$h_t$,利用它在當前分布下的訓練誤差來更新每個樣本的權重,具體來說,使分類正確的樣本點的分布權重減小,而使分類錯誤的樣本點的分布權重增大。這樣一來,演算法在下一次訓練時將著重利用上一次分類錯誤的樣本,從而彌補上乙個分類器的不足。最後將這$t$個基分類器整合起來,也就是加權相加,其中錯誤率$\epsilon_t$越低的基分類器$h_t$在疊加時的權值越大。加權得到的分類器也可以看成是一種投票。

\section

adaboost演算法的訓練誤差隨著boost次數(基分類器個數)指數下降到零,即有如下定理:

\begin

由adaboost演算法返回的分類器$h$的訓練誤差滿足:

\begin

\hat(h) \leq exp\big[-2\sum_^(\frac-\epsilon_t)^2\big].

\end

更進一步,如果 $\forall t \in [1,t]$,$\gamma \leq (\frac-\epsilon_t)$,則有

$$\hat(h) \leq exp(-2\gamma^2t).$$

\end

\paragraph 利用不等式 $\mathbf_ \leq exp(-u), \forall u \in \mathbb$,

\begin

\hat(h) = \frac \sum_^ \mathbf_ \leq \frac \sum_^ e^ = \frac \sum_^ \big[ m \prod_^ z_t \big] d_(i) = \prod_^z_i.

\end

因為 $\forall t \in [1,t]$,$z_t$是乙個歸一化因子,它又可以用 $\epsilon_t$ 來表示:

\begin

z_t = \sum_^ d_t(i)e^ &=& \sum_ d_t(i)e^+\sum_ d_t(i)e^ \\

&=& (1-\epsilon_t)e^ + \epsilon_te^\\

&=& (1-\epsilon_t)\sqrt} + \epsilon_t\sqrt}\\

&=& 2\sqrt.

\end

因此,歸一化因子的乘積具有如下上界:

\begin

\prod_^z_i = \prod_^2\sqrt = \prod_^\sqrt-\epsilon_t)^2} &\leq& \prod_^ exp\big[ -2(\frac-\epsilon_t)^2\big] \\

&=& exp\big[ -2\sum_^(\frac-\epsilon_t)^2\big]

\end

證畢。上述定理表明,只要弱分類器不是隨機猜測,即 $e(\epsilon_t) \neq \frac$,就能保證訓練誤差收斂到零。在實際訓練中,當訓練誤差已經減小到0,有時候繼續增加boost次數仍然可以觀察到測試誤差的減小。

\section

基於vc維理論可以得到以下泛化界:

\begin

r(h) \leq \hat(h) + \mathcal \big(\sqrt }\big).

\end

其中$t$代表boost次數,d代表基分類器的vc維,m代表訓練樣本數。可以感覺到這個上界是很松的,因為隨著boost次數的增加,泛化誤差的上界也隨之增加,說明可能導致過擬合的發生。

基於邊界理論的泛化界如下:

\begin

r(h) \leq \pr[margin_f(x,y) \leq \theta] + \mathcal \big( \sqrt } \big)

\end

上式對任意引數 $\theta \in [0,1]$ 成立,並且和boost次數沒有關係。

\end

AdaBoost演算法原理

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

AdaBoost演算法詳解

adaboost 演算法介紹 adaboost演算法本身是通過改變資料分布來實現的,它根據每次訓練集之中每個樣本的分類是否正確,以及上次的總體分類的準確率,來修改每個樣本的權值。將修改過權值的新資料集送給下層分類器進行訓練,最後將每次得到的分類器最後融合起來,作為最後的決策分類器。adaboost演...

AdaBoost演算法梳理

在boosting family中,最具代表性的實現就是adaboost。adaboost是英文 adaptive boosting 自適應增強 的縮寫,它的自適應在於 前乙個基本分類器被錯誤分類的樣本的權值會增大,而正確分類的樣本的權值會減小,並再次用來訓練下乙個基本分類器。同時,在每一輪迭代中,...