预备知识

  • 强学习与弱学习
    一个概念是强可学习的充分必要条件是这个概念是弱可学的。
  • 分类
    对于分类问题,提升算法通过组合多个较为容易学习到的弱分类器构成一个强分类器。
  • 关键问题
    • 每一轮训练数据的权值或概率分布确定;
    • 弱分类器构建强分类器的方式。

adaboost算法

损失函数

\((x_1, y_1),(x_2, y_2),(x_3, y_3), \cdots, (x_n, y_n)\)是一组样本\(x_i\)是特征向量,\(y_i\)是类别标签,分类问题的目标函数为:

\[\min \limits_{G} \frac{1}{n}\sum_{i=1}^{n}I(G(x_i) \neq y_i) \]

即需要训练出的分类器使得误分概率最小,\(I\)是示性函数。

定理一(算法收敛)

adaboost算法最终分类器的训练的误差界为:

\[\frac{1}{n}\sum_{i=1}^{n}I(G(x_i) \neq y_i) \leq \frac{1}{n}\sum_{i=1}^{n}e^{-y_if(x_i)}=\prod_{m}Z_m \]

其中\(G\)为最终分类器,\(f\)为多个弱分类器的线性组合,\(Z_m\)为第m轮训练中各样本点权值的线性组合且有\(Z_m \le 1\),该定理确保了算法在迭代过程的收敛性。

定理二(二分类问题指数级收敛)

针对二分类问题adaboost算法的训练误差界有以下性质:

\[\prod_{m=1}^{M}Z_m=\prod_{m=1}^{M}[2\sqrt{e_m(1-e_m)}]=\prod_{m=1}^{M}\sqrt{1-4\gamma_{m}^{2}} \leq e^{-2\sum \limits_{m=1}^{M} \gamma_{m}^{2}} \]

其中\(\gamma_{m}=\frac{1}{2} - e_m\), \(M\)总训练轮数, \(e_m =P(G_m(x_i) \neq y_i)=\sum \limits_{G_m(x_i) \neq y_i} w_{mi}\)即每轮训练中误分样本权值之和。\(e^{-2\sum \limits_{m=1}^{M} \gamma_{m}^{2}}\)确保了在训练过程中随着迭代次数得到增加模型误分概率呈指数级下降。

算法步骤(来自于李航的《统计学习方法》)

输入:数据集\(\{(x_1, y_1),(x_2, y_2),(x_3, y_3), \cdots, (x_N, y_N)\}\),其中\(x_i \in X \subseteq R^n\),\(y_i \in \{-1, 1\}\);弱分类器;
输出:最终分类器\(G(x)\).

  1. 给初始数据设置权值,默认等概率。$$D_1=(w_{11},\cdots,w_{1i},\cdots,w_{1N}),w_{1i}=\frac{1}{N},i=1,2,3,\cdots,N$$
  2. 弱分类器训练及样本点权值更新:对\(M=1,2,\cdots,m\)
    1. 在具有权值\(D_m\)的数据集\(X\)上训练基本分类器:$$G_m(x):X\longrightarrow {-1,1}$$
    2. 计算分类器\(G_m(x)\)在具备权值\(D_m\)的数据集\(X\)上的分类误差率:$$e_m = P(G_m(x_i) \neq y_i) = \sum_{i=1}^{N}w_{mi}I(G(x_i) \neq y_i)$$
    3. 计算分类器\(G_m(x)\)的系数$$\alpha_m = \frac{1}{2}\log \frac{1-e_m}{e_m}$$,上式\(\alpha_m\)是一个减函数,分类器的误分率越小,分类器的系数越大也就是在最终分类器中 的权值越大。
    4. 权值更新$$D_m=(w_{m+1,1},\cdots,w_{m+1,i},\cdots,w_{m+1,N})$$,$$w_{m+1,i} = \frac{w_{mi}}{Z_m}e^{-\alpha_m y_i G_m(x_i)},i=1,2,3,\cdots,N$$,其中\(Z_m\)是规范化因子$$Z_m = \sum_{i=1}{N}e$$

3.组合步骤2中训练的弱分类器为强分类器\(G(x)\):$$f(x) = \sum_{m=1}^{M}\alpha_mG_m(x)$$,$$G(x) = sign(f(x))=sign(\sum_{m=1}^{M}\alpha_mG_m(x))$$

算法分析

  • adaboost算法的主要思想是将多个对局部样本具备较强反映的“弱分类器”组合为一个综合能力较强的“强分类器”;
  • 每个基本分类器的分类能力有强有弱,在最终分类器中其系数和分类能力强弱成正比例关系,此处以误分比例来衡量分类器的强与弱;
  • 区别与随机森林中的随机抽取样本训练局决策树,在adaboost中是通过样本点的权值控制分类器主要作用在哪些样本点上;
  • 对于正确分类的样本点\((x_i,y_i)\)\(y_i G_m(x_i)>1, e^{-\alpha_m y_i G_m(x_i)}>1\),反之则\(e^{-\alpha_m y_i G_m(x_i)}<1\),这样保证了在训练下一个基本分类器时此次被误分的样本点会被重点照顾;
  • 分类器的系数\(\alpha_m = \frac{1}{2}\log \frac{1-e_m}{e_m}\)合理的反映了分类能力强弱。
  • 最终的分类器$$G(x) = sign(\sum_{m=1}^{M}\alpha_mG_m(x))$$相当于让所有的弱分类器做了一次带权重的投票。
 posted on 2017-09-26 01:12  暴走小飞鼠  阅读(333)  评论(0编辑  收藏  举报