大白话5分钟带你走进人工智能-第31节集成学习之最通俗理解GBDT原理和过程 (2)

这就是向量空间的梯度下降的过程。所谓向量空间的梯度下降,为什么叫做向量空间的梯度下降,因为w是一组向量,我们是在w上给它往下降所以称为向量空间的梯度下降

3、函数空间的梯度下降

这里面的F*在假如逻辑回归里面就是1/1+e^-z。在其他算法里各自对应其损失函数。对于决策树来说,树其实也是有损失函数的,比如我们之前在后剪枝的时候,通常做法就是,拿测试集或者验证集去检验一下我cancel掉叶子节点会不会变好一点,但实际上还有另一种减枝方式,就是根据损失函数来的,别管损失函数是什么,它是一个L,L跟x有关的,跟叶子节点的数量T有关,表达为L (x,T)。T相当于一个正则项,叶子节点算的数量越多,它的损失函数就越大,它不想让树太复杂了,通过剪枝剪一次去去看损失函数,是上升了还是下降了,如果损失函数下降了,剪枝就承认它,以后就都不要节点了,所以说对于决策树本身是可以定义一个损失函数的,只不过定义出来它意义不大,只能在剪枝的时候看看用来效果怎么样,因为我们知道损失函数是用来评估结果的,评估你的模型到底怎么样的,那我们剪枝的时候拿它进行一个评估也是一个比较科学的方法,但是训练的过程中是用不到损失函数,因为你不知道怎么分裂可以影响到损失函数,所以训练的时候基本都没有提损失函数,而是用基尼系数,信息熵这种变通的方式。另一方面,树的损失函数也不能直接使用梯度下降来下降这个损失函数,按原来的做法我们有一堆w把空先给你留好了,然后你找到一组最好的w让损失函数最小就可以了,但树按照这个思路怎么来呢,应该是找到所有可能性的树,挑出一个能使损失函数最小的树,按理说应该这么做,但是这么做不现实,因为树有无穷多个,所以我们采用其它方式得到一个近似最好的可能性。所以对与单纯的决策树我们一般不适用损失函数。

但是一旦变成了集成学习,我们又可以把损失函数又让它重出江湖了。对于决策树我们不能使用梯度下降的方式,因为在决策树里面损失函数就像一个黑盒,没有具体的参数通过损失函数供我们优化。但是对于集成学习则可以使用,因为集成学习对应着很多树。首先决策树是根据选取的特定条件由根节点开始逐级分裂,直到满足纯度要求或达到预剪枝设置的停止而形成的一种树。那如何选取特定条件? 常见的有:GINI系数, Entropy,最小二乘MSE。而回归树就是每次分裂后计算分裂出的节点的平均值, 将平均值带入MSE损失函数进行评估。而GBDT是一种决策树的提升算法 ,通过全部样本迭代生成多棵回归树, 用来解决回归预测问题(迭代生成的每棵树都是回归树),通过调整目标函数也可以解决分类问题。传统的回归问题损失函数是:

                                                                                               

$L=\sum(y -\hat{y})^{2}$

yi是真实的样本的结果,y^是预测的结果。而在集成学习里面,y^就是我们每一次的预测的G(x),所以现在我们的损失函数变成yi和大G(x)的一个损失函数了,因此集成学习里面损失函数表达式为L=L(yi,G)。我虽然不能写出来具体的损失函数,但是肯定是关于yi和G的一个表达式,我想找到一个最好的大G(x),一步去找,找不到,怎么办,我就分步去找,最开始找到一个G0(x),它一般不是能让损失函数最小的,我知道有梯度下降这个工具,能让它更接近损失函数最低点一些。我们希望损失函数下降,希望每一次能找到一个新的G(x),就像向量空间梯度下降中更新w一样,我们希望找到一个新的w,w是损失函数改变的原因,现在变成了每一次的G(x)是损失函数改变的原因,每一次的G(x)的改变一定会改变损失函数,G(x)只要它能改变损失函数,损失函数不是上升就是下降。怎么着能让它损失函数降低呢?我们知道最终的G(x)是一堆g(x)相加,换一个角度来讲,第一步迭代我们得到了一个G1(x)=g1(x),第二步迭代我们得到了G2(x)=G1(x)+g2(x),第三步就是G3(x)=G2(x)+g3(x),注意这个形式,集成树的每一步迭代形式和梯度下降每一步的迭代形式似乎很像,我们注意观察,在梯度下降里,每一步迭代所要加的△w只要是前一项的值带到损失函数里面的负梯度

-\lambda \frac{\partial L\left(y, w_{n-1}\right)}{\partial w_{n-1}}=\Delta w_{n}

,就可以让损失函数变得更小。而我现在所谓的集成学习一轮一轮的迭代,第一轮我想加上一个g1(x),第二轮我想再加上g2(x),第三轮我想再加上g3(x),根据梯度下降的原则,加上的每一个g(x)等于什么的时候能够让集成学习的损失函数越来越小呢?能不能也让它等于损失函数对于上一次的预测整体的结果G(x)这个东西的负梯度?这样损失函数一定会也是下降的。我把G(x)当做一个整体来看待,类似于原先的w变量。反正都是让损失函数改变的原因。这种梯度下降的过程就称为函数空间的梯度下降过程函数空间的梯度下降是什么意思呢?因为在函数空间中这个函数它写不出来是由什么w组成的,它的最小单位就是这个弱分类器本身,所以我们只能在函数空间进行梯度下降。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgssf.html