AdaBoost 算法还有另一个解释,即可以认为 AdaBoost 算法是模型为加法模型,损失函数为指数函数,学习算法为前向分步算法时的二类分类学习方法。
前向分步算法也是 Gradient Boosting 的基础,因此这一节我们先了解前向分步算法。
加法模型
加法模型(additive model)是这样的:**
其中, 为基函数,
为基函数的参数,
为基函数的系数。显然,上式是一个加法模型,也就是基学习器的一种线性组合。
在给定训练数据及损失函数 的条件下,学习加法模型
成为损失函数极小化问题:
通常这是一个复杂的优化问题。前向分步算法(forward stagewise algorithm)求解这一优化问题的想法是:因为学习的是加法模型,如果能够从前向后,每一步只学习一个基函数及其系数,逐步逼近哟花目标函数(即上式),那么就可以简化优化的复杂度。具体地,每步只需优化如下损失函数:
给定训练集,其中
。损失函数
和基函数的集合
,学习加法模型
的前向分步算法如下
算法:前向分步算法
输入:训练数据集;损失函数
;基函数集
输出:加法模型
训练过程:
**
(1)初始化 ;
(2)对
(a)极小化损失函数
得到参数 。
(b)更新
(3)得到加法模型
这样,前向分布算法将同时求解从 到
所有参数
的优化问题简化为逐次求解各个
的优化问题。
前向分步算法与AdaBoost
由前向分步算法可以推导出 AdaBoost,用定理叙述这一关系如下:
定理3:AdaBoost 算法是前向分步加法算法的特例。这时,模型是由基本分类器组成的加法模型,损失函数是指数函数。
证明请参考李航博士《统计学习方法》的第 164 页。