AdaBoost 算法【Latex原稿】

\documentclass[a4paper,11pt]{ctexart}
\title{AdaBoost}
\author{itnerd}
\date{\today}

\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{geometry}
\usepackage{cite}
\usepackage{latexsym}
\usepackage{amsmath}
\usepackage{amsfonts}
\newtheorem{definition}{定义}
\newtheorem{theorm}{定理}
\newtheorem{proof}{证明}

\CTEXsetup[name={第,节}]{section}
\CTEXsetup[beforeskip = {20bp plus 1ex minus 0.2ex}]{section}
\CTEXsetup[afterskip = {6bp plus 0.2ex}]{section}
\CTEXsetup[format = {\zihao{4}\bfseries}]{section}
\CTEXsetup[name={第,小节}]{subsection}
\CTEXsetup[beforeskip = {12bp plus 1ex minus 0.2ex}]{subsection}
\CTEXsetup[afterskip = {6bp plus 0.2ex}]{subsection}
\CTEXsetup[format = {\fontsize{13bp}{15.6bp}\selectfont\bfseries}]{subsection}
\CTEXsetup[beforeskip = {12bp plus 1ex minus 0.2ex}]{subsubsection}
\CTEXsetup[afterskip = {6bp plus 0.2ex}]{subsubsection}
\CTEXsetup[format = {\zihao{-4}\bfseries}]{subsubsection}
\geometry{
	a4paper, hmargin = 2.6cm, top = 2.92cm, bottom = 3.03cm,
	headheight = 0.45cm, headsep = 0.55cm, footskip = 1.05cm
}


\begin{document}
\maketitle

\pagestyle{plain}

\section{弱学习器}
通常对于非平凡的学习任务,直接设计一个PAC学习算法是困难的,但是找到如下定义稍弱一点的学习算法一般是比较容易的。
\begin{definition}
\textbf{弱学习}\\
一个概念类C是 \textbf{弱PAC-可学习} 的,如果存在$\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{equation}
    \Pr_{S\sim D^m} [R(h_s)\leq \frac{1}{2}-\gamma] \geq 1-\delta.
\end{equation}
称算法A为针对概念类C的一个\textbf{弱学习算法},由弱学习算法返回的假设函数h称为\textbf{基分类器}。
\end{definition}


\section{Adaboost算法}

\begin{algorithm}[ht]
\caption{AdaBoost($S=\{(x_1,y_1),\dots,(x_m,y_m)\})$}
\begin{algorithmic}[1]
\label{alg:1}
\FOR{$i \leftarrow 1$ \textbf{to} $m$}
\STATE $D_1(i) \leftarrow \frac{1}{m}$
\ENDFOR
\FOR{$t \leftarrow 1$ \textbf{to} $T$}
\STATE $h_t \leftarrow$ 由弱学习算法$H$得到的误差为$\epsilon_t = \Pr_{i\sim D_t}[h_t(x_i)\neq y_i]$ 的基分类器
\STATE $\alpha_t \leftarrow \frac{1}{2}log\frac{1-\epsilon_t}{\epsilon_t}$
\STATE $Z_t \leftarrow 2[\epsilon_t(1-\epsilon_t)]^{\frac{1}{2}}$
\FOR{$i \leftarrow 1$ \textbf{to} $m$}
\STATE $D_{t+1}(i) \leftarrow \frac{D_t(i)exp(-\alpha_t y_i h_t(x_i))}{Z_t}$
\ENDFOR
\ENDFOR
\STATE $g \leftarrow \sum_{t=1}^{T} \alpha_t h_t$
\RETURN $h=sgn(g)$
\end{algorithmic}
\end{algorithm}

集成学习方法中的Boosting技术是指通过集成多个基分类器来得到一个具有更高准确率的强分类器。算法 \ref{alg:1} 给出了adaboost的伪代码,通过集成$T$个基分类器得到一个强分类器$h$。

首先假定每个样本点的权重是相等的,即$D_1(i)=\frac{1}{m}$。每次通过弱学习算法$H$得到一个弱分类器$h_t$,利用它在当前分布下的训练误差来更新每个样本的权重,具体来说,使分类正确的样本点的分布权重减小,而使分类错误的样本点的分布权重增大。这样一来,算法在下一次训练时将着重利用上一次分类错误的样本,从而弥补上一个分类器的不足。最后将这$T$个基分类器集成起来,也就是加权相加,其中错误率$\epsilon_t$越低的基分类器$h_t$在叠加时的权值越大。加权得到的分类器也可以看成是一种投票。


\section{训练误差的上界}
Adaboost算法的训练误差随着boost次数(基分类器个数)指数下降到零,即有如下定理:
\begin{theorm}
由Adaboost算法返回的分类器$h$的训练误差满足:
\begin{equation}
    \hat{R}(h) \leq exp\big[-2\sum_{t=1}^{T}(\frac{1}{2}-\epsilon_t)^2\big].
\end{equation}
更进一步,如果 $\forall t \in [1,T]$,$\gamma \leq (\frac{1}{2}-\epsilon_t)$,则有
$$\hat{R}(h) \leq exp(-2\gamma^2T).$$
\end{theorm}
\paragraph{证明} 利用不等式 $\mathbf{1}_{u \leq 0} \leq exp(-u), \forall u \in \mathbb{R}$,
\begin{equation*}
\hat{R}(h) = \frac{1}{m} \sum_{i=1}^{m} \mathbf{1}_{y_ig(x_i)\leq 0} \leq \frac{1}{m} \sum_{i=1}^{m} e^{-y_ig(x_i)} = \frac{1}{m} \sum_{i=1}^{m} \big[ m \prod_{t=i}^{T} Z_t \big] D_{T+1}(i) = \prod_{t=1}^{T}Z_i.
\end{equation*}
因为 $\forall t \in [1,T]$,$Z_t$是一个归一化因子,它又可以用 $\epsilon_t$ 来表示:
\begin{eqnarray*}
Z_t = \sum_{i=1}^{m} D_t(i)e^{-\alpha_t y_i h_t(x_i)} &=& \sum_{i:y_i h_i(x_i) = +1} D_t(i)e^{-\alpha_t}+\sum_{i:y_i h_i(x_i) = -1} D_t(i)e^{\alpha_t} \\
&=& (1-\epsilon_t)e^{-\alpha_t} + \epsilon_te^{\alpha_t}\\
&=& (1-\epsilon_t)\sqrt{\frac{\epsilon_t}{1-\epsilon_t}} + \epsilon_t\sqrt{\frac{1-\epsilon_t}{\epsilon_t}}\\
&=& 2\sqrt{\epsilon_t(1-\epsilon_t)}.
\end{eqnarray*}
因此,归一化因子的乘积具有如下上界:
\begin{eqnarray*}
\prod_{t=1}^{T}Z_i = \prod_{t=1}^{T}2\sqrt{\epsilon_t(1-\epsilon_t)} = \prod_{t=1}^{T}\sqrt{1-4(\frac{1}{2}-\epsilon_t)^2} &\leq& \prod_{t=1}^{T} exp\big[ -2(\frac{1}{2}-\epsilon_t)^2\big] \\
&=& exp\big[ -2\sum_{t=1}^{T}(\frac{1}{2}-\epsilon_t)^2\big]
\end{eqnarray*}
证毕。

上述定理表明,只要弱分类器不是随机猜测,即 $E(\epsilon_t) \neq \frac{1}{2}$,就能保证训练误差收敛到零。在实际训练中,当训练误差已经减小到0,有时候继续增加boost次数仍然可以观察到测试误差的减小。

\section{泛化界}
基于VC维理论可以得到以下泛化界:
\begin{equation}
R(H) \leq \hat{R}(H) + \mathcal{O} \big(\sqrt{ \frac{Td}{m}  }\big).
\end{equation}

其中$T$代表boost次数,d代表基分类器的VC维,m代表训练样本数。可以感觉到这个上界是很松的,因为随着boost次数的增加,泛化误差的上界也随之增加,说明可能导致过拟合的发生。

基于边界理论的泛化界如下:
\begin{equation}
    R(H) \leq  \Pr[margin_f(x,y) \leq \theta] + \mathcal{O} \big( \sqrt{ \frac{d}{m\theta^2} } \big)
\end{equation}
上式对任意参数 $\theta \in [0,1]$ 成立,并且和boost次数没有关系。

\end{document}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值