提升方法(中)前向分步算法

前向分步算法是一种计算方法,可以用于像提升方法这类由多个模型组合而成的模型的优化求解。

以AdaBoost为例是由多个弱分类器的线性组合而成的。前向分布算法可以是加法模型,也可以是其他模型。

AdaBoost算法的一种解释就是,即可以认为AdaBoost算法是模型为加法模型损失函 数为指数函数学习算法为前向分步算法时的二类分类学习方法。

下面以前向分步算法再来解释一遍AdaBoost算法:

考虑加法模型(additive model)

就是AdaBoost中的每一轮的分类器,就是每个弱分类器的权重。 

在给定训练数据及损失函数L(Y,f(X))的条件下,我们的目标是优化参数来最小化损失函数: 

因为通常这是一个复杂的优化问题。所以才有了前向分步算法。

前向分步算法(forward stagewise algorithm)求解这 一优化问题的想法是:因为学习的是加法模型,如果能够从前向后,每一步只学习一个基 函数及其系数,逐步逼近优化目标函数式(8.14),那么就可以简化优化的复杂度。

扫描二维码关注公众号,回复: 15405675 查看本文章

具体 地,每步只需优化如下损失函数:

算法: 

 

解释:

(1)首先初始化f0(x) = 0

(2)极小化损失函数得到我们想要的参数

 

其中:是上一轮的得到模型集合,里面包含了从1-m-1轮的模型的和。

是当前的模型,其中的参数是待优化求得的。

对比AdaBoost,参数就是输入数据Xi的权值参数w和模型G的权值a

(3)得到了参数之后这一轮的模型也就求得了:

 

(4)这样循环1,2,……M轮,最终最后一次得到的模型就是: 

 

猜你喜欢

转载自blog.csdn.net/stephon_100/article/details/125359371