AdaBoost和梯度增强算法有什么不同,因为它们都使用了增强技术?
我无法从理论的角度来找出这两种算法之间的实际区别。
发布于 2018-10-04 20:12:52
AdaBoost和梯度助推都是以顺序的方式培养弱学习者。最初,AdaBoost的设计方式是:在每一步,样本分布都适应于对错误分类的样本赋予更多的权重,而对正确分类的样本的权重更小。最后的预测是所有弱学习者的加权平均值,其中更多的权重放在较强的学习者身上。
后来发现,AdaBoost也可以用具有特定损失函数(指数损失)的加性模型的框架来表示。参见(Hastie) ESL中的第10章。
加性建模试图解决给定损失函数L的以下问题:
其中f可以是决策树的树桩。由于损失函数中的和使生活变得困难,这个表达式可以用线性方式近似,有效地允许在损失函数前面迭代地移动和,每次最小化一个子问题:
对于任意损失函数,这仍然是一个棘手的问题,因此,我们可以通过直线搜索的最陡下降来进一步逼近这一问题,即通过向负梯度方向迈出一步来更新f_n。
为了避免梯度过拟合,采用新的弱学习方法对梯度进行逼近。这给出了梯度增强算法:
因此,梯度增强算法是求加性建模问题近似解的一种通用算法,而AdaBoost算法则是具有特定损失函数的特例。因此,梯度增强要灵活得多。
另一方面,AdaBoost可以从一个更直观的角度来解释,并且可以在不引用梯度的情况下实现,方法是根据以前学习者的分类重新加权训练样本。
另请参阅这个问题以获得更多参考资料(引用):
https://datascience.stackexchange.com/questions/39193
复制相似问题