爱吧机器人网 » 技术 > 机器学习 > 正文

机器学习集成算法:XGBoost模型构造

1、回顾
 
上文(机器学习集成算法:XGBoost思想)介绍了XGBoost的基本思想,说到新加入进来的决策树必须能使原已有的更好才行吧,那么将XGBoost这个提升的过程如何用数学模型来表达呢?
 
2、XGBoost整体模型
 
机器学习的有监督问题,通常可以分为两步走:模型建立(比如线性回归时选用线性模型),根据目标函数求出参数(比如球出线性回归的参数)。对于XGBoost,也是做有监督任务了,也可以按照这个过程去分析,它的模型表示为如下,k表示树的个数,f表示构建的每个数结构,xi表示第i个样本,xi在每个树上的得分值的和就是xi的预测值,
\
它的目标函数表示为如下,其中等号右侧第一项表示所有样本点的误差和,第二项表示对每棵树的惩罚项(我们知道,惩罚项是用来使得预测的模型不那么复杂的方法,这也是为了提高模型的泛化能力),原始目标函数形式如下:
\
其中上标 t 代表第 t 轮集成。
 
总之,我们就是要让预测值接近真实值,同时要让树模型尽可能的简单。接下来,看看在集成的过程中,如何尽可能地使得目标函数尽可能地小。
 
3、如何集成
 
XGBoost是串行集成的,这是与随机森林的不同之处,详细看下这个过程,期初只有一棵树,后来yi2时,加入进来f2,依次递推,第 t轮的预测模型,等于保留前面 t-1 轮的模型预测,和新来的 ft,前面说过f可以看做一颗树的构造。
\
将上面的递推公式带入到初始目标函数后得到,第一次改进目标函数后得到:
\
上式中等号的第二项是正则化惩罚项,是为了限制树的叶子节点的个数,防止树变得过于庞大的,它等于:
\
上式怎么用呢?举个例子,如下图,一共3个叶子节点,则 T = 3,小男孩这个叶子节点的权重为+2,所以平方为4,因此惩罚项等于如下吧:
\
目标函数至此做了一步演化,下面进一步将等号右边第一项误差函数项,在此采用常用的平方误差项,进行目标函数的第二次演化,如下,
\
XGBoost模型还给出了一个更一般的误差模型,上面我们不是根据平方误差项吗,如果采取一个通用性更强的模型,应该怎么写的,可以看到 ft 相当于一个当前轮次的变化量,可以想到 f(x + dx) = f(x) + f(x)'dx + 0.5f(x)''dx + ... 这就是泰勒展开式,一般地取前三项就能保证问题的精度了,所以我们进行目标函数的第二次,更一般的演化,得到下式:
这是第一次演化后的公式,进行泰勒展开,关键要分清谁是 x , 谁是 dx 吧! 可以看到 与参数 t 相关的才是公式的变量,所以 x 为 y(t-1), dx 相当于 ft(xi) 吧,yi是给定样本编号 i的真实值吧,为常数,
\
所以,对其展开后为
\
其中,
\
在进行第 t 轮集成的时候,loss( yi, yi(t-1) )这项已经知道了吧,是个常数了,比如预测一个价格为每股2元的股票,在第 t-1 轮的时候我们就得出股票的价格为1.5元,所以在第 t 轮的时候,loss就等于0.5吧,因此 loss那项是可以拿掉的。
 
好了,至此,我们就把目标函数演化了一部分了,但是,XGBoost真正NB的地方,是下面这节,将对样本的遍历,转化为对叶子节点的遍历,这是巧妙的地方。
 
4、XGBoost最精彩的部分:转化的巧妙
 
首先,晒出两个映射,第一个映射是 q,在树结构 f 已知的情况下表,给出一个样本 xi ,通过 q 可以得出 xi 位于的叶子节点编号,如同下图,给出小女孩,通过 q 可以得出 leaf2,即属于叶子编号2,
\
晒出的第二个映射为 w ,这个不难理解,就像神经网络中神经元的权重参数,即 小女孩的权重参数为 +0.1,综合起来分析,
 
w ( q ( 小女孩 )  ) = +0.1 
 
因此,可以将下式:
\
进行第三次演化后为下式:
\
这还不是最精彩的地方,因为上式还是对样本 i 从1到n的遍历,接下来,这个式子,将对样本的遍历转化为了对叶子节点的遍历,这是XGBoost的最重要的一步转化,进行第四次演化后为下式,
\
其中 , 表示:第 j 个叶子中包括的所有样本, wj表示第 j 个叶子的权重。
 
综上所述,将  再由上带入进去,进一步化简为,
\
令,Gj, Hj 分别为:
\
 
目标函数经过第五次演化后为下式,
\
这就是目标函数的最终形式了。
 
5、求解目标函数
\
看到这个目标函数,就已经非常明了了,它是关于wj 的一维二次函数吧,所以对它求最小值,还是非常简单的吧,这个就不讲了,直接求出 wj 在取得什么值时,loss值会取到最小值,
 
\
 
我们费了这么多劲,至此终于推算出,在第 t 轮集成时,到底该选择哪个树结构 ft 的衡量标准了,哪个树结构 ft 能使得在t-1轮的目标函数上减少的最多,也就是 obj 越小越好吧,我们就选择它吧。
 
6、分割所得的信息增益
 
对于每次扩展,是要枚举所有可能的分割方案,比较分割后的信息增益,求出最大值对应的分割点。比如要枚举所有 x < constant 这样的条件,对于某个分割,要计算 constant 左边和右边,还有没有切分这个节点时的信息增益求出来,求解信息增益的公式如下:
\
如果,Gain 大于某个阈值,则这个分割是有必要的,然后根据枚举的结果,取出分割能获得的最大增益。
\
对于这次特定的分割,
        GL = g1 + g4
        HL = h1 + h4
        GR = g2 + g5 + g3
        HR = h2 + h5 + h3
然后带入信息增益的公式,求出本次分割获得信息增益,然后枚举所有可能的分割得到的信息增益,选取最大值,假定得出如下所示的最佳分割点,此时 constant = 0.9,则可以得到 x < 0.9时,左子树只含有一个节点,右子树含有剩余节点,这种 ft 树结构。
\


上一篇:主流机器学习算法简介与其优缺点分析
下一篇:【NIPS最佳论文出炉】冷扑大师能战胜AlphaZero吗?No(Science论文)
精选推荐
南加州大学机器人学家:机器人更适合粗暴的爱
南加州大学机器人学家:机器人更适合粗暴的爱

[2019-11-07]  图片来自JOHN MADERE GETTY IMAGES打是疼骂是爱,当人类粗暴的将物体从机器人手中敲掉,看似残忍,实际上却能帮助机器人找到最好的握持物 ...

搭载人工智能的太空机器人CIMON 2乘SpaceX抵达国际空间站
搭载人工智能的太空机器人CIMON 2乘SpaceX抵达国际空间站

[2019-12-09]  12月5日,搭载人工智能的太空机器人西蒙2号(CIMON 2)乘坐SpaceX火箭Dragon货运舱,从佛罗里达州卡纳维拉尔角空军基地升空,前往国际空间 ...

麻省理工又秀神技:推出如魔法般跳跃的方块机器人集群
麻省理工又秀神技:推出如魔法般跳跃的方块机器人集群

[2019-10-31]  几天前,小编向大家介绍过麻省理工(MIT)研发的一种自组装机器人集群(点此阅览),它们可以用统一标准的小单元自动组装出各种大型结构。 ...

农业将为高科技行业 农业机器人的应用领域
农业将为高科技行业 农业机器人的应用领域

[2017-12-17]  农业正在迅速成为一个令人兴奋的高科技产业,吸引了新专业人士,新公司和新投资者。技术发展迅速,不仅提高了农民的生产能力,而且促进了我们所知道的机器人和自动化技术的发展。...

从AI中窥探人性
从AI中窥探人性

[2018-01-03]  人们对人造智能的恐惧早已成为科幻书籍和电影的极好题材。但现在,一些同样的担忧开始影响关于现实世界AI技术的政策讨论。如果这样的担忧演变成为一种技术恐慌...

2022年全球工业机器人市场将达到790亿美元
2022年全球工业机器人市场将达到790亿美元

[2017-09-04]  预计到 2022年, 全球工业机器人市场将达到790亿美元, 并在预测期内登记11 5% 的复合年增长率。随着发展中国家中小型企业需求的不断增长, 采用自动化技术以确保生产质量......

苹果AI主管透露自动驾驶汽车项目关于机器学习方面的进展
苹果AI主管透露自动驾驶汽车项目关于机器学习方面的进展

[2017-12-11]  苹果隐秘的自动驾驶汽车项目多年来一直在转移焦点,但今年似乎正在加速。 4月份,公司获得了在加利福尼亚州进行自动驾驶汽车测试的许可证,而在6月份,苹果公司首席执行官库......

科学家从蟑螂获得启发 教机器人更好地走路
科学家从蟑螂获得启发 教机器人更好地走路

[2017-12-11]  Weihmann指出:“我特别感到惊讶的是,动物运动稳定机制的变化与腿部协调的变化是一致的。昆虫的慢运行非常稳定,因为它的重心很低,三条腿总是以协调的方式运动。...

本周栏目热点

盘点全球十大最具影响力的机器人摇篮

[1970-01-01]    人工智能(AI)研究现正迅速发展,如无人驾驶汽车、计算机在《危险边缘》智力竞赛节目中获胜、数字私人助手Siri、GoogleNow和语音助手C ...

深度学习反向传播算法(BP)原理推导及代码实现

[2017-12-19]  分析了手写字数据集分类的原理,利用神经网络模型,编写了SGD算法的代码,分多个epochs,每个 epoch 又对 mini_batch 样本做多次迭代计算。这其中,非常重要的一个步骤,......

如何在机器学习项目中使用统计方法的示例

[2018-07-23]  事实上,机器学习预测建模项目必须通过统计学方法才能有效的进行。在本文中,我们将通过实例介绍一些在预测建模问题中起关键作用的统计学方法。...

[2017-08-28]  模拟退火(Simulated Annealing,简称SA)是一种通用概率算法,用来在一个大的搜寻空间内找寻命题的最优解。1、固体退火原理:将固体加温 ...

Machine Learning-感知器分类算法详解

[2018-05-31]  今天我们来讲解的内容是感知器分类算法,本文的结构如下:什么是感知器分类算法,在Python中实现感知器学习算法,在iris(鸢尾花)数据集上训练一个感知器模型,自适应线性神......