AdaBoost算法原理

AdaBoost是一种提升弱学习器至强学习器的算法,通过调整样本分布来聚焦错误样本。它使用指数损失函数替代0/1损失函数,优化目标是连续可微的,从而在迭代中生成能最小化错误率的基学习器。每个基学习器的权重由其在当前分布下的分类误差决定,并据此更新样本分布,以便后续学习器更关注难分类的样本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AdaBoost

AdaBoost是将弱学习器提升为强学习器的算法,首先从初始训练集训练一个基学习器,再根据基学习器的表现对样本分布进行调整,基于调整后的样本分布训练下一个学习器,下一个基学习器会更多的关注先前学习器做错的样本。如此重复进行,直至基学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合。

AdaBoost算法模型之加性模型

\large H(x)=\sum_{t=1}^T\alpha _th_t(x)

通过最小化指数损失函数来进行模型求解

\large l_{exp}(H|D)=E_{x\sim D}[e^{(-f(x)H(x))}]

其中\large f(x)是真实函数,\large y_i\in\{-1,+1\}

为什么可以用指数损失函数代替原本分类任务中的0/1损失函数

\large sign(H(x))=\mathop{\arg\max}_{y\in\{-1,+1\}}P(f(x)=y|x)
上式意味着\large sign(H(x))达到了最优贝叶斯错误率,换言之,若指数损失函数最小,则分类错误率也将最小化。

由于这个替代函数有更好的数学性质,例如它是连续可微函数,因此,我们用它代替0/1损失函数作为优化目标。

在AdaBoost算法中,第一个学习器\large h_t是通过直接将基学习器算法用于初始数据分布而得;此后迭代地生成\large h_t\large \alpha_t,当基学习器\large h_t基于分布\large D_t产生后,该分类器的权重\large \alpha_t应使得\large \alpha_t\large h_t最小化指数损失函数。

\large l_{exp}(\alpha_t h_t|D_t)=E_{x\sim D_t}[e^{-\alpha_t h_t(x) f(x)}]

                            \large =E_{x\sim D_t}[e^{-\alpha_t }{\mathbb{I}}{(h_t(x)= f(x))+e^{\alpha_t }{\mathbb{I}}{(h_t(x)\neq f(x))]

                            \large =e^{-\alpha_t}P_{x\sim D_t}(f(x)=h_t(x))+e^{\alpha_t}P_{x\sim D_t}(f(x)\neq h_t(x))

                            \large =e^{-\alpha_t}(1-\epsilon_t)+e^{\alpha_t}\epsilon_t

其中\large \epsilon_t =P_{x \sim D_t(h_t(x)\neq f(x)) }

考虑指数损失函数的倒数

\large \frac{\partial l_{exp}(\alpha_t h_t|D_t) }{\partial \alpha_t}=-e^{-\alpha_t}(1-\epsilon_t)+e^{\alpha_t}\epsilon_t

令上式为零得

\large \alpha_t=\frac{1}{2}ln\frac{1-\epsilon_t }{\epsilon_t }

AdaBoost算法在获得\large H_{t-1}之后样本分布将进行调整,使下一轮的基学习器能纠正\large H_{t-1}的一些错误。理想的\large h_t能纠正\large H_{t-1}的全部错误,即最小化

\large l_{exp}(H_{t-1}+h_t|D)=E_{x\sim D}[e^{-f(x)(H_{t-1}(x)+h_t(x))}]

                                      \large =E_{x\sim D}[e^{-f(x)H_{t-1}(x)}e^{-f(x)(h_t(x)}]

得到理想的基学习器为

\large h_t(x)=\mathop\arg\min_h l_{exp}(H_{t-1}+h_t|D)

            \large =\mathop\arg\min_hE_{x\sim D_t}[\mathbb{I}(f(x)\neq h(x))]

由此可见。理想的\large h_t在分布\large D_t下最小化分类误差,因此,弱分类器将基于\large D_t来训练,且针对\large D_t的分类误差应小于0.5.

样本分布更新公式:

\large D_{t+1}=D_t(x).e^{-f(x)\alpha_th_t(x)}\frac{E_{x\sim D}[e^{-f(x)H_{t-1}(x)}]}{E_{x\sim D}[e^{-f(x)H_{t}(x)}]}

从偏差-方差的角度来看,boosting主要关注降低偏差,因此boosting能基于泛化性能相当弱的学习器构建出很强的学习器.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值