首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Adaboost vs梯度增强

Adaboost vs梯度增强
EN

Data Science用户
提问于 2018-10-04 14:25:48
回答 1查看 34.9K关注 0票数 27

AdaBoost和梯度增强算法有什么不同,因为它们都使用了增强技术?

我无法从理论的角度来找出这两种算法之间的实际区别。

EN

回答 1

Data Science用户

回答已采纳

发布于 2018-10-04 20:12:52

AdaBoost和梯度助推都是以顺序的方式培养弱学习者。最初,AdaBoost的设计方式是:在每一步,样本分布都适应于对错误分类的样本赋予更多的权重,而对正确分类的样本的权重更小。最后的预测是所有弱学习者的加权平均值,其中更多的权重放在较强的学习者身上。

后来发现,AdaBoost也可以用具有特定损失函数(指数损失)的加性模型的框架来表示。参见(Hastie) ESL中的第10章。

加性建模试图解决给定损失函数L的以下问题:

\min_{\alpha_{n=1:N},\beta_{n=1:N}} L\left(y, \sum_{n=1}^N \alpha_n f(x,\beta_n) \right)

其中f可以是决策树的树桩。由于损失函数中的和使生活变得困难,这个表达式可以用线性方式近似,有效地允许在损失函数前面迭代地移动和,每次最小化一个子问题:

\min_{\alpha_n,\beta_n} L\left(y, f_{n-1}((x) + \alpha_n f_n(x,\beta_n) \right)

对于任意损失函数,这仍然是一个棘手的问题,因此,我们可以通过直线搜索的最陡下降来进一步逼近这一问题,即通过向负梯度方向迈出一步来更新f_n

为了避免梯度过拟合,采用新的弱学习方法对梯度进行逼近。这给出了梯度增强算法:

  1. 从常量模型f_0开始
  2. 将弱学习者h_n与损失函数w.r.t的负梯度进行拟合。f_{n-1}
  3. 采取步骤\gamma,以便f_n= f_{n-1} + \gamma h_n将损失L\left(y, f_n(x) \right)降到最低

因此,梯度增强算法是求加性建模问题近似解的一种通用算法,而AdaBoost算法则是具有特定损失函数的特例。因此,梯度增强要灵活得多。

另一方面,AdaBoost可以从一个更直观的角度来解释,并且可以在不引用梯度的情况下实现,方法是根据以前学习者的分类重新加权训练样本。

另请参阅这个问题以获得更多参考资料(引用):

  • 在梯度增强中,“缺点”(现有弱学习者)是通过梯度来识别的。
  • 在Adaboost中,“缺点”是通过高权重数据点来识别的。
票数 40
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/39193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档