前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >图解集成学习中的梯度提升思想

图解集成学习中的梯度提升思想

作者头像
用户3578099
发布2019-08-15 17:32:57
5590
发布2019-08-15 17:32:57
举报
文章被收录于专栏:AI科技时讯AI科技时讯

机器学习(ML)中的一个关键步骤是选择适合数据的最佳算法,根据数据中的一些统计数据和可视化信息,机器学习工程师将选择最佳算法。假设数据如下图所示,现在将其应用于回归示例:

对数据进行可视化,如下图示所示,似乎线性回归模型对其比较合适:

将根据线性等式制定仅具有一个输入x和一个输出y的回归模型:

y=ax+b

其中a和b是上述等式的两个参数。 由于我们不知道适合数据的最佳参数,因此可以从初始化取值开始。可以将a设置为1.0,将b设置为0.0,并可视化等式,如下图所示:

从图中可以看到,似乎该模型不能基于参数初始化取值来拟合数据。 很明显,不可能第一次试验初始化就能取得很好的结果。但问题是如何在这种情况下提高性能?换句话说,如何最大化分类准确度或最小化回归误差?下面有不同的方法。其中一种简单的方法就是尝试更改先前选择的参数。经过多次试验,模型将知道最佳参数是a = 2和b = 1,该模型适合这种情况下的数据,如下图所示,可以看见拟合得非常好:

但是在某些情况下,更改模型参数并不会使得模型很好地拟合数据,仍然会有一些错误的预测。假设数据有一个新点(x = 2, y = 2)。从下图可以看出,不可能找到使模型完全适合每个数据点的参数,不适用于线性拟合。

有人可能会说,该模型能够拟合四个点而缺少一个点,这是可以接受的。但是,如果有更多的点,如下图所示呢?在这种情况下,该模型将做出更多的错误预测。没有一条直线可以拟合整个数据。该模型只对线上点的预测很强,但对其他点则较弱。

集成学习|Ensemble Learning

由于单个回归模型不适合整个数据,因此另一种解决方案是使用多个回归模型。每个回归模型都能够强有力地适应部分数据,将所有模型组合起来将减少整个数据的总误差,并产生一个通用的强大模型。在问题中使用多个模型的这种方法称为集合学习。使用多个模型的重要性如下图所示。图中显示了在预测样本结果时的误差很大。从图b中可以看到,当存在多个模型(例如,三个模型)时,其结果的平均值将能够比以前做出更准确的预测。

当应用于图7中的先前问题时,拟合数据的4个回归模型的集合在图9中已经表示出:

这就带了了另外的一个问题,如果有多个模型可以拟合数据,那么如何获得单个数据的预测?有两种方法可以组合多个回归模型来返回单个结果。它们是bagging和boosting(本文重点内容)。 在bagging中,每个模型将返回其结果,并对所有模型的输出结果进行综合,进而返回最终结果。一种综合方法是将所有模型的输出结果进行平均,bagging是平行工作的,因为所有模型都在同时工作。 相反,boosting被认为是顺序处理的,因为一个模型的输出结果是下一个模型的输入。boosting的想法是使用弱学习器来拟合数据。由于模型很弱,所以无法正确拟合数据,这种学习器的弱点将由另一个弱学习器来解决。如果仍然存在一些弱点,那么将使用另一个弱学习器来修复它们,直到最终从多个弱学习器中产生了强大的学习器。接下来将解释梯度增强的工作原理。

梯度提升|Gradient Boosting

以下是基于一个简单示例梯度提升的工作原理: 假设要构建一个回归模型,并且数据具有单个输出,其中第一个样本的输出为15,如下图所示。最终目标是建立能够正确预测这种输出的回归模型。

第一个弱模型预测第一个样本的输出为9而不是15,如下图所示:

为了衡量预测的损失量,对其计算残差,剩余量是期望和预测输出之间的差异。计算等式如下:

期望−预测1=残差1

其中预测和残差1分别是第一个弱模型的预测输出和残差。 因此,上述例子的残差将为为:

15−9=6

由于预测输出和期望输出之间存在残差值为6的差距,因此可以创建第二个弱模型,其目标是预测输出等于第一模型的残差。所以,第二个模型将解决第一个模型的弱点。根据下面这个等式,两个模型的输出总和将等于期望输出:

期望输出=预测1+预测2(残差1)

如果第二个弱模型能够正确地预测残差1,则期望输出将等于所有弱模型的预测,如下所示:

期望输出=预测1+预测2(残差1)=9+6=15

但是,如果第二个弱模型未能正确预测残差1的值,而仅返回的值为3,那么第二个弱学习器也将具有如下的残差:

残差2=预测1−预测2=6−3=3

如下图所示:

为了解决第二个弱模型的弱点,将创建第三个弱模型。其目标是预测第二弱模型的残差。因此,它的目标输出值为3。所以,样本的期望输出将等于所有弱模型的预测,如下所示:

期望输出=预测1+预测2(残差1)+预测3(残差2)

如果第三弱模型预测是2,不等于3,即它不能预测出第二个弱模型的残差,那么对于这样的第三个弱模型将存在残差:

残留3=预测2−预测3=3−2=1

如下图所示

因此,将创建第四个弱模型来预测第三个弱模型的残差,其值等于1。期望输出将等于所有弱模型的预测,如下所示:

期望输出=预测1+预测2(残差1)+预测3(残差2)+预测4(残差3)

如果第四个弱模型正确地预测其目标(即,残差值3),则总共使用四个弱模型即可达到15的期望输出,如下图所示。

这就是梯度增强算法的核心思想,使用先前模型的残差作为下一个模型的目标,有点类似于递归算法,满足终止条件即退出递归。 梯度提升总结 总而言之,梯度提升始于弱模型预测,这种弱模型的目标是使其预测值与问题的理想输出一致。在模型训练之后,计算其残差。如果残差不等于零,则创建另一个弱模型以修复前一个的弱点。但是这种新模型的目标并不是获得期望输出,而是先前模型的残差。也就是说,如果给定样本的期望输出是T,则第一模型的目标是T。在训练之后,对于这样的样本可能存在R的残差,所以要创建一个的新模型,并将其目标设置为R,而不是T,新模型填补以前模型的空白。 梯度增强类似于多个力量弱的人抬一个重物上楼梯。没有一个力量弱的人能够抬着重物走完真个楼梯,每个人只能抬着走一步。第一个人将重物提升一步并在此之后变得疲惫,无法继续;另一个人继续抬起重物并向前走另一步,依此类推,直到走完所有楼梯,重物到达指定位置。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI科技时讯 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 集成学习|Ensemble Learning
  • 梯度提升|Gradient Boosting
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档