Loading [MathJax]/jax/element/mml/optable/BasicLatin.js

Boostable

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  116 随笔 :: 0 文章 :: 28 评论 :: 92382 阅读

Foundations of Machine Learning: Boosting

    Boosting是属于自适应基函数(Adaptive basis-function Model(ABM))中的一种模型。自适应基函数可以表示成:

f(x)=w0+Mm=1wmϕm(x).

其中基函数ϕm在Boosting里面叫做weak learner。Boosting会不断学习出weak learner,然后通过权重向量将这些weak learner组合成一个stronger learner。 并且可以证明只要weak learner 比随机learner好,那么Boosting总可以以很高的概率组合成一个性能任意好的stronger learner。

Boosting 在每一次迭代都会产生一个weak learner,而这个weak learner 与其他的机器学习算法一样,都是通过训练集学习出来的,现在假如我们每一步学习用到的训练集都一样的话,那么每一步学习出来的weak learner可能都差不多,甚至一样,这样组合起来的最终结果并没有什么意义。所以Boosting在每一步都会根据上一步的结果来产生一个新的训练集。

一、二分类下的AdaBoost算法。

   

AdaBoost的特点:

  1. 每次迭代中的训练集因分布Dt不同而不同,而Dt+1根据Dt产生。
  2. 每次迭代产生的ϵt称为该weak learner的错误率。由于ϵt<1/2,故αt>0,而αt最后作为组合weak learner的权重,显然ϵt越小,αt越大,也即好的weak learner的权重越大。
  3. Dt作为每个样本的权重分布,当第t步产生的ht使样本xi发生错误则,Dt+1(i)=Dt(i)exp(αt)zt,使第i个样本权重增大;当ht使样本xi不发生错误时,Dt+1(i)=Dt(i)exp(αt)zt,使样本i的权重减小。也就是说,在下一步总是更关心上一步被分错的那些点。
  4. 除以zt是为了使Dt+1成为一个分布,即保证mi=1Dt+1(i)=1。故
     Zt=mi=1Dt(i)eαtyiht(xi)=i:yiht(xi)=1Dt(i)eαt+i:yiht(xi)=1Dt(i)eαt=(1εt)eαt+εteαt=(1εt)εt1εt+εt1εtεt=2εt(1εt)

二、经验错误的界。

定理 3.1 AdaBoost算法返回的分类器所产生的经验错误满足如下的界:

ˆR(h)exp[2Tt=1(12ϵt)2],

更进一步说,如果对所有的t[1,T],γ(12ϵt),那么

ˆR(h)exp(2γ2T).

证明:由I((u0))exp(u)得:

ˆR(h)=1mi=1mI((yigT(xi))0)1mmi=1eyigT(xi)

根据Dt的定义有:

D1(i)=1mD2(i)=exp(α1yih1(xi))mz1D3(i)=exp(α1yih1(xi))mz1exp(α2yih2(xi))z2......Dt(i)=exp(α1yih1(xi))exp(α2yih2(xi))...exp(αt1yiht1(xi))mz1...zt1

 Dt+1(i)=eyigt(xt)mΠts=1zs eyigT(xi)=mΠTs=1zsDT+1(i)

代入上式:
 ˆR(h)1mmi=0mΠTs=1zsDT+1(i)=ΠTs=1zs=ΠTt=12ϵt(1ϵt)ΠTt=1exp[2(12ϵ)2)]=exp[2Tt=1(12ϵt)2]

 注意点:

  1. αt=1/2log1ϵtϵt的原因:要使得zt=(1εt)eαt+εteαt最小,令其导数等于0即可求得。即令dZt(αt)dαt=(1ϵt)eαt+ϵteαt=0
      (1ϵt)eαt=ϵteαt  αt=12log1ϵtϵt
    αt是根据最小化Zt来选取,即每次选得αt都使ˆR(h)的上界变小。
  2. 其中的γ叫做edge。

三、使用VC理论去界定泛化界。

    像上面章节一样,假设集H为所有可选择的基本假设ht的集合,CT为用T个基本假设线性组合的组合假设。对二分类来说:CT={H(x)=sign(Tt=1αtht(x)),htH,αtR}。定义一个函数σ:RT{1,+1},且σ(x)=sign(wx),令T表示所有这样的σ函数,即T={σ(x)=sign(wx);wRT}。所以H(x)=sign(Tt=1αtht(x))就可以表示成H(x)=σ(h1(x),h2(x),...,hT(x))。而

CT={xσ(h1(x),h2(x),...hT(x)):σΣT;h1,...,hTH}.

引理 3.1Rn中的线性阈值函数空间n的VC维为n

证明:

 1:证明存在n个点可以被打散。

    令ei为n维空间的基向量,即

ei(j)={1j=i0ji
 则只需证明e1,e2,...,en可以被n打散。
    首先,对于任何一种二分结果,我们都可以将其表示成(y1,y2,...,yn),其中yi{1,+1}。所以当我们令w=(y1,y2,...,yn)时,由sign(wei)=yi可知,该二分结果总可以被实现。故e1,e2,...,en可以被n打散。
     所以n的VC维至少为n。

2: 证明所有n+1个点都不可以被打散。

    假设存在n+1个点x1,...,xn+1Rn可以被n打散。那么,必定存在不全为0的β1,β2,....,βn+1使n+1i=1βixi=0

不失一般性,我们假设βn+1>0,由于这些点可以被n打散,故一定存在一个ωRn使分类的结果为

yi={+1if βi>01if βi0

ω满足sign(ωxn+1)=+1,
  sign(ωxi)={+1ifβi>01ifβi0
  即βn+1ωxn+1>0,βiωxi>0
  而且
  0=ω0=ωn+1i=1βixi=n+1i=1βiωxi>0
  所以矛盾。

引理 3.2 假设H是有限的。令mT1,那么对任意的有m个点的集合S,由CT所实现的划分的数量的界为:
ΠCT(S)∣≤ΠCT(m)(emT)THT

证明:令S=(x1,x2,...,xm)。考虑到固定序列的基本假设h1,h2,...,hTH,相对这些基本假设,我们得到一个新的样本S=(x1,x2,...,xm),其中xi=(h1(xi),...,hT(xi)),即每一个样本xi在每一步中得到的结果组成的向量。
 由于T的VC维为T,所以根据推论2.3有:
  |ΠT(S)|(emT)T
 由于选择h1,...,hT的方式有|H|T种,所以可以得到
|ΠCT(S)|ΠCT(m)(emd)T|H|T

 

    如何理解上述引理?首先我们得先明确,Boosting的假设集CT 由两部分结合而成(或者说是由两种函数复合而成)。第一个选基函数,即选h1,h2,...,hT;第二个选线性函数,即选择系数将h1,h2,...,hT线性组合起来。
    第一种的选择方式有HT 种可能,第二种的选择方式有无穷多种,但有效的选择方式只有ΠT(S)种。
    或者可以这样理解:先选择h1,h2,...,hT,然后由这些h1,h2,...,hT 组成一个新的坐标系,把原来的样本转换到这个新坐标系中得到新样本,然后用一个线性分类器对这个新样本分类。

引理3.3 假设H拥有有限的VC维d1。令mmax。对任意的m个点的集合S,由C_T所实现的划分的数量的界为:
\mid \Pi_{C_T}(S)\mid\leq \Pi _{C_T}(m)\leq(\frac{em}{T})^T(\frac{em}{d})^{dT}

证明:

    令任意大小为 m 的样本 S=\{x_1,x_2,...,x_m\}, 则用假设集H中的每一个元素预测样本S最多可以实现的“二分”结果个数为\mid \Pi_H(S)\mid。 现在我们对每一个“二分”结果只取一个假设h' 构成一个新的假设集H',则 \mid H'\mid=\mid\Pi_H(S)\mid且根据 推论2.3 可知: |H'|=|\Pi_H(S)|\leq (\frac{em}{d})^d.
   由于每一个h\in H在样本S上产生的二分结果在H'中都存在着唯一一个h'\in H'与之相对应。所以在H上选择T个h\in H与在H'上选择T个h'\in H'是等价的。即根据 引理3.1 有:
 \begin{align*}|\Pi_{C_T}(S)| &\leq (\frac{em}{T})^T|H'|^T  \\     &\leq (\frac{em}{T})^T(\frac{em}{d})^dT  \end{align*}

 

    有了这个界后,我们可以将 推论2.2 拿过来产生Boosting的 generalization error的界,即:
\begin{align}\mathcal{R}(h) &\leq \widehat{\mathcal{R}}(h) + \sqrt{\frac{2log\Pi_{C_T}(m)}{m}} + \sqrt{\frac{log\frac{1}{\delta}}{2m}} \\        &\leq \widehat{\mathcal{R}}(h) + \sqrt{\frac{2Tlog\frac{em}{T}+2dTlog\frac{em}{d}}{m}} + \sqrt{\frac{log\frac{1}{\delta}}{2m}}\end{align}
从上面的不等式可以看出,当T越来越大时\mathcal{R}的上界会不断增大,似乎当T很大时会产生 overfit 的情况。但在实际情况下,Boosting 很少会产生overfit的情况,既然在\widehat{\mathcal{R}}(h)=0 情况增加T也不会产生 overfit。 而这种情况就需要用新的理论来解释,即 Margin 理论:当T不断增加时,Margin 会越来越大,即可置信的程度越来越高。

 

posted on   Boostable  阅读(736)  评论(0)    收藏  举报
编辑推荐:
· 记一次 .NET某固高运动卡测试 卡慢分析
· 微服务架构学习与思考:微服务拆分的原则
· 记一次 .NET某云HIS系统 CPU爆高分析
· 如果单表数据量大,只能考虑分库分表吗?
· 一文彻底搞懂 MCP:AI 大模型的标准化工具箱
阅读排行:
· 博客园2025新款「AI繁忙」系列T恤上架
· Avalonia跨平台实战(二),Avalonia相比WPF的便利合集(一)
· C# LINQ 快速入门实战指南,建议收藏学习!
· Redis实现高并发场景下的计数器设计
· 上周热点回顾(4.7-4.13)
点击右上角即可分享
微信分享提示