GBM & GBDT详解

GBM & GBDT详解,第1张

在理解GBDT之前,我们需要知道什么是GBM,GBM的全称是Gradient Boosting Machines,它是1999年被Jerome Friedman在他的论文中提出来的,从名字中我们可以知道这个算法的关键词:G(Gradient)、B(Boosting)。

为了理解GBM,首先我们需要知道什么是B(Boosting):

Boosting是集成方法中的一种, 集成方法的主要思想是利用一定的手段学习出多个基学习器,而且这多个基学习器要求是弱学习器,然后将多个基学习器进行组合。boosting方法通过分步迭代(stage-wise)的方式来构建模型,每一步迭代构建的弱学习器都是为了弥补已有模型的不足。

G(Gradient)是指用来最小化损失函数的方法,传统的Boosting模型,如Adaboost,最小化损失函数的方式是,每次迭代后,通过更新样本权重分布(分对的样本权重变小,分错的样本权重变大),让后一个基学习器更加关注分错的样本,这样一轮轮的迭代下去,从而达到使损失函数最小化的目标。Adaboost的损失函数是指数损失函数,所以比较好用数学推导的方式去计算每一次迭代时让损失函数达到最小值的最优解,但是其它的损失函数可能不那么容易优化,为了找到一种通用的最优化损失函数的方法,Gradient Boosting被提出来了,Gradient Boosting是指每一步迭代,都是用损失函数的负梯度来拟合弱学习器,以达到使损失函数最小化的目的,GBM 在损失函数的选择上有更大的灵活性。这和梯度下降法的思想是一样的,通过找到使损失函数下降最快的方向,一步一步逼近最小值点,大家可以参考我的另外一篇文章:‘梯度下降和牛顿法’。

我们用 来表示我们的总模型,其中第m步后的模型,可以用上一轮迭代之后的模型 加上本轮学习的基学习器 然后再乘以一个 表示, 和梯度下降中的步长意义是一样的,表示这一步应该走多远:

让我们来看看GBM的训练步骤(以下来自维基百科)

GBM中最常用的基学习器是CART回归树,该类GBM算法也叫GBDT。

为什么要选择决策树做基学习器呢,因为决策树有很多优点:

因为基学习器是决策树,所有GBDT在GBM算法的基础上做了一点修改,以更好的发挥决策树的优点。

因为是树模型,所以 可以用 表示,其中 是第m个基决策树的叶子节点数, 是每个叶子节点的值,那么原先的 就可以写成

把 放到求和里面去,就变成了

我们来看看GBDT的训练步骤:

大家可能会有一个疑问,按照上面的步骤,好像(21)和(22)没什么作用,其实(21)和(22)是用来确定树结构的,训练后树的每个叶子节点的值通过(23)的方式确定,有几个叶子节点,就有几个 值,这样每一步迭代就有多个参数可以调节来进一步改善拟合的质量,使损失函数最小化。

不管是分类问题,还是回归问题,GBDT使用的决策树都是CART回归树,为什么回归树可以解决分类问题呢,因为GBDT基学习器拟合的是负梯度值,负梯度是一个实数,所以基学习器解决的其实是一个回归问题。

回归问题最常见的损失函数有误差平方和、绝对误差等损失函数。

如果损失函数是误差平方和:

此时我们把它叫做 LS_TreeBoost ,具体实现如下:

如果损失函数是绝对误差:

此时我们把它叫做 LAD_TreeBoost ,具体实现如下:

分类问题最常见的损失函数有对数损失函数和指数损失函数。

如果损失函数为对数损失:

其中,

此时我们把它叫做 _TreeBoost ,具体实现如下:

最后应用的时候,还需要通过sigmoid函数,将输出结果转换成概率p,转换公式如下:

上式是作者论文中关于 _TreeBoost 的算法流程图,在21中,其实我们无法一眼看出这个负梯度值究竟是什么。

现在我们将 改为 ,损失函数为 ,其中

算法流程如下:

现在我们以分类问题,损失函数为对数损失函数,来推导初始化值、负梯度、叶子节点的值的由来。

已知:

损失函数为 ,其中

1、负梯度值推导

将 值带入 中,得

对上式求导,并取负,则得到我们的负梯度值:

2、初始化值推导

我们知道,初始化值的目标是:

对损失函数求导,并令导数=0,则可求出最优的

导数的运算法则有:

由上可知,每个样本的导数(梯度)为:

加总所有样本的导数,得到总体样本的导数为:

令导数=0,得

又因为对所有的样本,初始化的 都是一样的,所有上式可以写成

从而可得到:

3、叶子节点值

我们知道,每个叶子节点对应的最优的

上式没有闭式解,我们用近似值去替代它,这里用到二阶泰勒展开式去近似:

由于 已知,上面的一阶导、二阶导和 是一个常数

其中:

上式其实就是一个一元二次方程 ,我们知道,一元二次方程取极值的地方就是 ;

当 >0时, 为最小值, 当 <0时, 为最大值;

上式 是一个大于0的值,所以当 时取到最小值

带入上式得:

最终:

在实际应用中,为了防止GBDT过拟合,我们一般有如下处理 *** 作:

4和5都是对每颗树的复杂度进行处理,其他任何控制决策树生长的方法都可以使用。

先验知识: 交叉熵 - (jianshucom)

针对类别不均衡问题,作者提出一种新的损失函数:focal loss,这个损失函数是在标准交叉熵损失基础上修改得到的。这个函数可以通过减少易分类样本的权重,使得模型在训练时更专注于难分类的样本。Focal loss主要是为了解决one-stage目标检测中正负样本比例严重失衡的问题。该损失函数降低了大量简单负样本在训练中所占的权重,也可理解为一种困难样本挖掘。

例如gamma为2,对于正类样本而言,预测结果为095肯定是简单样本,所以(1-095)的gamma次方就会很小,这时损失函数值就变得更小。而预测概率为03的样本其损失相对很大。对于负类样本而言同样,预测01的结果应当远比预测07的样本损失值要小得多。对于预测概率为05时,损失只减少了025倍,所以更加关注于这种难以区分的样本。这样减少了简单样本的影响,大量预测概率很小的样本叠加起来后的效应才可能比较有效。

论文:

https://arxivorg/pdf/170802002pdf

一些博客:

Focal loss论文详解 - 知乎 (zhihucom)

Focal Loss理解 - 三年一梦 - 博客园 (cnblogscom)

可以采用相似测量法来测量。测量1根1米长的杆子在同一时刻、同一地点的高度,得出杆子本身高度与影子的比例值,然后同时测量旗杆的影子长度,根据比例值就可得出旗杆的高度了。

找一根杆子放在旗杆旁边,测量杆子的长度和影子的长度,算出它们的比例;再测量旗杆影子的长度,套用刚刚算出的比例,就可算出旗杆的高度。

例:杆子的影子是15米,杆子长为1米,其比例就是3:2;旗杆影子是18米,那么旗杆的高度就是12米(18×3/2)。

扩展资料:

1、分数乘整数,分母不变,分子乘整数,最后能约分的要约分。

2、分数乘分数,用分子乘分子,用分母乘分母,最后能约分的要约分。

3、分数除以整数,分母不变,如果分子是整数的倍数,则用分子除以整数,最后能约分的要约分。

4、分数除以整数,分母不变,如果分子不是整数的倍数,则用这个分数乘这个整数的倒数,最后能约分的要约分。

5、分数除以分数,等于被除数乘除数的倒数,最后能约分的要约分。

-相似性测度

见解析

证明:碰撞过程中机械能损失表为:

△E=

m

1

υ

1

2

+

m

2

υ

2

2

m

1

u

1

2

m

2

u

2

2

由动量守恒的表达式中得:

u

2

=

(m

1

υ

1

+m

2

υ

2

-m

1

u

1

)

代入上式可将机械能的损失△E表为u

1

的函数为:

△E=-

u

1

2

u

1

+[(

m

1

υ

1

2

+

m

2

υ

2

2

)-

(

m

1

υ

1

+m

2

υ

2

)

2

]

这是一个二次项系数小于零的二次三项式,显然:当u

1

=u

2

=

时,

即当碰撞是完全非d性碰撞时,系统机械能的损失达到最大值

△E

m

=

m

1

υ

1

2

+

m

2

υ

2

2

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/12182436.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存