Foundations of Machine Learning: Boosting
Boosting是属于自适应基函数(Adaptive basis-function Model(ABM))中的一种模型。自适应基函数可以表示成:
f(x)=w0+M∑m=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的特点:
- 每次迭代中的训练集因分布Dt不同而不同,而Dt+1根据Dt产生。
- 每次迭代产生的ϵt称为该weak learner的错误率。由于ϵt<1/2,故αt>0,而αt最后作为组合weak learner的权重,显然ϵt越小,αt越大,也即好的weak learner的权重越大。
- Dt作为每个样本的权重分布,当第t步产生的ht使样本xi发生错误则,Dt+1(i)=Dt(i)exp(αt)zt,使第i个样本权重增大;当ht使样本xi不发生错误时,Dt+1(i)=Dt(i)exp(−αt)zt,使样本i的权重减小。也就是说,在下一步总是更关心上一步被分错的那些点。
- 除以zt是为了使Dt+1成为一个分布,即保证∑mi=1Dt+1(i)=1。故
Zt=m∑i=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+εt√1−εtεt=2√εt(1−εt)
二、经验错误的界。
定理 3.1 AdaBoost算法返回的分类器所产生的经验错误满足如下的界:
ˆR(h)≤exp[−2T∑t=1(12−ϵt)2],
更进一步说,如果对所有的t∈[1,T],γ≤(12−ϵt),那么
ˆR(h)≤exp(−2γ2T).
证明:由I((u≤0))≤exp(−u)得:
ˆR(h)=1m∑i=1mI((yigT(xi))≤0)≤1mm∑i=1e−yigT(xi)
根据Dt的定义有:
D1(i)=1mD2(i)=exp(−α1yih1(xi))mz1D3(i)=exp(−α1yih1(xi))mz1⋅exp(−α2yih2(xi))z2......Dt(i)=exp(−α1yih1(xi))⋅exp(−α2yih2(xi))...exp(−αt−1yiht−1(xi))mz1⋅...⋅zt−1
⟹ Dt+1(i)=e−yigt(xt)mΠts=1zs ⇒e−yigT(xi)=mΠTs=1zs⋅DT+1(i)
代入上式:
ˆR(h)≤1mm∑i=0mΠTs=1zsDT+1(i)=ΠTs=1zs=ΠTt=12√ϵt(1−ϵt)≤ΠTt=1exp[−2(12−ϵ)2)]=exp[−2T∑t=1(12−ϵt)2]
注意点:
- α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)的上界变小。 - 其中的γ叫做edge。
三、使用VC理论去界定泛化界。
像上面章节一样,假设集H为所有可选择的基本假设ht的集合,CT为用T个基本假设线性组合的组合假设。对二分类来说:CT={H(x)=sign(∑Tt=1αtht(x)),ht∈H,αt∈R}。定义一个函数σ:RT⇀{−1,+1},且σ(x)=sign(w⋅x),令∑T表示所有这样的σ函数,即∑T={σ(x)=sign(w⋅x);w∈RT}。所以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,...,hT∈H}.
引理 3.1 在Rn中的线性阈值函数空间∑n的VC维为n。
证明:
1:证明存在n个点可以被打散。
令ei为n维空间的基向量,即
ei(j)={1j=i0j≠i
则只需证明e1,e2,...,en可以被∑n打散。
首先,对于任何一种二分结果,我们都可以将其表示成(y1,y2,...,yn),其中yi∈{−1,+1}。所以当我们令w=(y1,y2,...,yn)时,由sign(w⋅ei)=yi可知,该二分结果总可以被实现。故e1,e2,...,en可以被∑n打散。
所以∑n的VC维至少为n。
2: 证明所有n+1个点都不可以被打散。
假设存在n+1个点x1,...,xn+1∈Rn可以被∑n打散。那么,必定存在不全为0的β1,β2,....,βn+1使∑n+1i=1βixi=0。
不失一般性,我们假设βn+1>0,由于这些点可以被∑n打散,故一定存在一个ω∈Rn使分类的结果为
yi={+1if βi>0−1if βi≤0
即ω满足sign(ω⋅xn+1)=+1,
sign(ω⋅xi)={+1ifβi>0−1ifβi≤0
即βn+1⋅ω⋅xn+1>0,βi⋅ω⋅xi>0。
而且
0=ω⋅0=ω⋅n+1∑i=1βi⋅xi=n+1∑i=1βi⋅ω⋅xi>0
所以矛盾。
引理 3.2 假设H是有限的。令m≥T≥1,那么对任意的有m个点的集合S,由CT所实现的划分的数量的界为:
∣ΠCT(S)∣≤ΠCT(m)≤(emT)T∣H∣T
证明:令S=(x1,x2,...,xm)。考虑到固定序列的基本假设h1,h2,...,hT∈H,相对这些基本假设,我们得到一个新的样本S′=(x′1,x′2,...,x′m),其中x′i=(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线性组合起来。
第一种的选择方式有∣H∣T 种可能,第二种的选择方式有无穷多种,但有效的选择方式只有∣Π∑T(S′)种。
或者可以这样理解:先选择h1,h2,...,hT,然后由这些h1,h2,...,hT 组成一个新的坐标系,把原来的样本转换到这个新坐标系中得到新样本,然后用一个线性分类器对这个新样本分类。
引理3.3 假设H拥有有限的VC维d≥1。令m≥max。对任意的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 会越来越大,即可置信的程度越来越高。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次 .NET某固高运动卡测试 卡慢分析
· 微服务架构学习与思考:微服务拆分的原则
· 记一次 .NET某云HIS系统 CPU爆高分析
· 如果单表数据量大,只能考虑分库分表吗?
· 一文彻底搞懂 MCP:AI 大模型的标准化工具箱
· 博客园2025新款「AI繁忙」系列T恤上架
· Avalonia跨平台实战(二),Avalonia相比WPF的便利合集(一)
· C# LINQ 快速入门实战指南,建议收藏学习!
· Redis实现高并发场景下的计数器设计
· 上周热点回顾(4.7-4.13)