集成学习算法梯度提升(gradient boosting)的直观看法

这篇具有很好参考价值的文章主要介绍了集成学习算法梯度提升(gradient boosting)的直观看法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

reference:
Intuitive Ensemble Learning Guide with Gradient Boosting

几句话总结全文

  1. 梯度提升算法的核心思想:使用前一个模型的残差作为下一个模型的目标。

Introduction

使用单个机器学习模型可能并不总是适合数据。优化其参数也可能无济于事。一种解决方案是将多个模型组合在一起以拟合数据。本教程以梯度提升(gradient boosting)作为研究案例讨论了集成学习的重要性。
机器学习(ML)管道的一个关键步骤是选择适合数据的最佳算法。根据一些统计数据和数据的可视化,ML工程师将选择最佳算法。让我们在一个回归的例子上应用,其数据如图1所示。
Figure 1
集成学习算法梯度提升(gradient boosting)的直观看法
对图1的数据进行可视化得到图2,似乎线性回归模型是合适的。
Figure 2
集成学习算法梯度提升(gradient boosting)的直观看法
将根据图 3 中的等式来制定只有一个输入和一个输出的回归模型。
Figure 3
集成学习算法梯度提升(gradient boosting)的直观看法
其中 a 和 b 是方程的参数。
因为我们不知道适合数据的最佳参数,我们可以从初始值开始。我们可以将a设为1.0,b设为0.0,并将模型可视化如图4所示。
Figure 4
集成学习算法梯度提升(gradient boosting)的直观看法
看来,根据参数的初始值,该模型并不适合数据。
第一次的模型尝试不成功很正常。问题是如何在这种情况下提高结果?换句话说,如何最大化分类准确率或最小化回归误差?有不同的方法可以做到这一点。
一个简单的方法是尝试改变以前选择的参数。经过若干次试验,模型将知道最佳参数是a=2和b=1。在这种情况下,模型将适合数据,如图5所示。非常好。
Figure 5
集成学习算法梯度提升(gradient boosting)的直观看法
但在有些情况下,改变模型参数并不能使模型符合数据。会有一些错误的预测。假设数据有一个新点(x=2,y=2)。根据图6,不可能找到使模型完全适合每个数据点的参数。
Figure 6
集成学习算法梯度提升(gradient boosting)的直观看法
人们可能会说,拟合4个点而漏掉一个是可以接受的。但是,如果有更多的点,如图7所示,直线无法拟合呢?因此,该模型会做出比正确预测更多的错误预测。没有一条线能适合整个数据。该模型对直线上的点的预测很强,但对其他点的预测很弱。
Figure 7
集成学习算法梯度提升(gradient boosting)的直观看法

Ensemble Learning

因为单一的回归模型不会适合整个数据,所以另一个解决方案是使用多个回归模型。每个回归模型将能够有力地拟合一部分数据。所有模型的组合将减少整个数据的总误差,产生一个普遍强大的模型。在一个问题中使用多个模型被称为集合学习。使用多个模型的重要性在图8中得到了描述。图8(a)显示,在预测样本的结果时,误差很高。根据图8(b),当有多个模型(如三个模型)时,它们的结果的平均值将能够做出比以前更准确的预测。
Figure 8
集成学习算法梯度提升(gradient boosting)的直观看法
当被应用于图7中的问题时,拟合数据的4个回归模型的集合如图9所示。
Figure 9
集成学习算法梯度提升(gradient boosting)的直观看法
这就留下了另一个问题。如果有多个模型来拟合数据,如何得到单个预测?有两种方法可以组合多个回归模型以返回单个结果。它们是 bagging 和 boosting(这是本教程的重点)。
在 bagging 中,每个模型将返回其结果,最终结果将通过汇总所有这些结果返回。一种方法是对所有结果进行平均。 Bagging 是并行的,因为所有模型都在同时工作。

相反,boosting 被认为是顺序的,因为一个模型的结果是下一个模型的输入。 boosting 的思想是使用弱学习器来拟合数据。因为它很弱,所以无法正确拟合数据。这样一个学习者的弱点将被另一个弱学习者修复。如果仍然存在一些弱点,那么将使用另一个弱学习器来修复它们。链条不断延伸,直到最终从多个弱学习者中产生出一个强大的学习者。

接下来是解释梯度提升(gradient boosting)的工作原理。

Gradient Boosting (GB)

以下是基于一个简单示例的梯度提升的工作原理:
假设要建立一个回归模型,数据有一个输出,其中第一个样本的输出为15。它的描述如图10所示。我们的目标是建立一个回归模型,正确预测这样一个样本的输出。
Figure 10
集成学习算法梯度提升(gradient boosting)的直观看法
如图11所示,第一个弱模型预测第一个样本的输出为9而不是15。
Figure 11
集成学习算法梯度提升(gradient boosting)的直观看法
为了衡量预测中的损失量,要计算其残差。残差是期望输出和预测输出之间的差异。它是根据以下公式计算的:
desired – predicted1 = residual1
其中 predicted1 和 residual1 分别是第一个弱模型的预测输出和残差。
15 – 9 = 6
对于 residual1=6,我们可以创建第二个弱模型,其目标是预测输出等于第一个模型的残差(residual1)。
因此,第二个模型将修复第一个模型的弱点。根据下一个等式,两个模型的输出总和将等于所需输出:
desired = predicted1 + predicted2(residual1)
如果第二个弱模型能够正确预测residual1,则所需输出将等于所有弱模型的预测,如下所示:
desired = predicted1 + predicted2(residual1) = 9 + 6 = 15
但是,如果第二个弱模型未能正确预测 residual1 的值,例如只返回 3,那么第二个弱学习器也会有一个非零残差计算如下:
residual2 = predicted1 - predicted2 = 6 - 3 = 3
如图 12 所示。
Figure 12
集成学习算法梯度提升(gradient boosting)的直观看法
为了修复第二个弱模型的弱点,将创建第三个弱模型。它的目标是预测第二个弱模型的残差。因此它的目标是 3。因此我们样本的期望输出将等于所有弱模型的预测,如下所示:
desired = predicted1 + predicted2(residual1) + predicted3(residual2)
如果第三个弱模型预测为2,即无法预测第二个弱模型的残差,则该第三个模型的残差等于:
residual3 = predicted2 – predicted3 = 3 - 2 = 1
这在图 13 中进行了描述。
Figure 13
集成学习算法梯度提升(gradient boosting)的直观看法
同理得到第四个模型:
集成学习算法梯度提升(gradient boosting)的直观看法
这就是梯度提升算法的核心思想。使用上一个模型的残差作为下一个模型的目标。

梯度提升的总结

总而言之,梯度提升从一个用于预测的弱模型开始。这种模型的目标是问题的期望输出。在训练这样的模型之后,计算它的残差。如果残差不为零,则创建另一个弱模型来修复前一个模型的弱点。但是这种新模型的目标不是期望的输出,而是先前模型的残差。也就是说,如果给定样本的期望输出是 T,那么第一个模型的目标就是 T。第一个模型训练之后,会产生残差集R。要创建的新模型的目标将设置为R,而不是T。这是因为新模型填补了以前模型的空白。
梯度提升类似于由多个虚弱的人抬起一个沉重的金属,走过若干个楼梯。没有一个弱者能够举起所有楼梯的金属。每个人只能抬起它一步。第一个虚弱的人会抬起金属一步,然后就累了。另一个虚弱的人将金属再举一步,依此类推,直到将金属举起所有楼梯。文章来源地址https://www.toymoban.com/news/detail-407277.html

到了这里,关于集成学习算法梯度提升(gradient boosting)的直观看法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习_集成学习_梯度提升_回归_决策树_XGBoost相关概念

    目录 1. 机器学习 使用监督吗?什么又是监督学习? 2. 与XGBoost 类似的机器学习方法有哪些? 3. 随机森林方法 和 梯度提升方法 有什么区别? 分别应用于什么场景? 4. 决策树回归方法 和 Gradient Boosting类回归方法 有什么区别和联系? 5. 什么是集成学习? 6. 多元线性回归方法

    2024年04月26日
    浏览(35)
  • 梯度下降算法(Gradient descent)

         首先,我们需要明确梯度下降就是求一个函数的最小值,对应的梯度上升就是求函数最大值。简而言之: 梯度下降的目的就是求函数的极小值点, 例如在最小化损失函数或是线性回归学习中都要用到梯度 下降算法。       ##梯度下降算法作为很多算法的一个关键环节

    2024年01月16日
    浏览(47)
  • Policy Gradient策略梯度算法详解

    Policy Gradient策略梯度(PG),是一种基于策略的强化学习算法,不少帖子会讲到从基于值的算法(Q-learning/DQN/Saras)到基于策略的算法难以理解,我的理解是两者是完全两套思路,在学习一种的时候先不要考虑另一种,更容易接受算法基本思想,了解了算法原理推导过程之后再

    2024年02月07日
    浏览(41)
  • 策略梯度算法(Policy gradient,PG)

    强化学习 有三个组成部分:演员,环境和奖励函数, 演员是我们的智能体,环境就是对手,奖励就是没走出一步环境给我们的reward,环境和奖励是我们无法控制的,但是我们可以调整演员的策略,演员的策略决定了演员的动作,即给定一个输入,它会输出演员现在应该要执

    2023年04月08日
    浏览(84)
  • [机器学习] 1. 梯度下降 Gradient Descent 与随机梯度下降 Stochastic Gradient Descent

    ML Theory 太魔怔了!!!!! 从微积分课上我们学到 对一个 (mathscr C^2) 函数,其二阶泰勒展开的皮亚诺余项形式 [f(bm w\\\') = f(bm w) + langle nabla f(bm w), bm w\\\' - bm wrangle + o(|bm w\\\' - bm w|)] 这说明只要 (bm w\\\') 和 (bm w) 挨得足够接近,我们就可以用 (f(bm w) + langle nabla f(

    2024年02月08日
    浏览(52)
  • 随机梯度下降算法SGD(Stochastic gradient descent)

    SGD是什么 SGD是Stochastic Gradient Descent(随机梯度下降)的缩写,是深度学习中常用的优化算法之一。SGD是一种基于梯度的优化算法,用于更新深度神经网络的参数。它的基本思想是,在每一次迭代中,随机选择一个小批量的样本来计算损失函数的梯度,并用梯度来更新参数。这

    2024年02月11日
    浏览(33)
  • 【Matlab算法】梯度下降法(Gradient Descent)(附MATLAB完整代码)

    梯度下降法 是一种用于最小化函数的迭代优化算法。其基本思想是通过计算函数的梯度 (导数),找到函数的最小值点。在梯度下降法中,参数(或变量)沿着负梯度的方向进行更新,以降低函数值。 以下是梯度下降法的基本描述: 选择初始点: 选择一个初始点作为优化的起

    2024年01月19日
    浏览(44)
  • 集成学习——Boosting算法:Adaboost、GBDT、XGBOOST和lightGBM的简要原理和区别

    Boosting算法是通过串联的方式,将一组弱学习器提升为强学习器算法。它的工作机制如下: (1)用初始训练集训练出一个基学习器; (2)依据基学习器的表现对训练样本分布进行调整,使得之前做错的训练样本在之后中得到最大的关注; (3)用调整后的样本分布进行下一

    2024年02月16日
    浏览(39)
  • 【最优化算法】基于【MATLAB】的共轭梯度法【Conjugate Gradient】分析与推导

    🚀个人主页:欢迎访问Ali.S主页 📆 最近更新:2022年7月19日 ⛽ Java框架学习系列:Mybatis框架 ⛳ Java基础学习系列:面向对象飞机大战 🏆 通信仿真学习系列:【硬件】【通信】【MATLAB】【最优化】 🍄 个人简介:通信工程本硕🌈、Java程序员🚴。目前只会CURD😂 💌 点赞 👍

    2023年04月19日
    浏览(39)
  • 强化学习PPO从理论到代码详解(1)--- 策略梯度Policy gradient

    Proximal Policy Optimization(PPO) 近端策略优化,可以说是目前最稳定,最强的强化学习算法之一了,也是openAI默认的强化学习算法,有多叼不用我说了吧。 笔者在强化学习的道路上看来很多书,看了很多代码,和很多大佬的博客,只是很多都是侧重一个方面,所以我在吸取百家之

    2024年02月07日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包