梯度增强机器(GBM)在机器学习中的应用

2018-09-03 03:47丁晓旸
智富时代 2018年7期
关键词:机器应用

丁晓旸

【摘 要】梯度增强机器并不是独立的某种技术,而是一系列强大的机器学习技术的集合,它在广泛的实际应用中取得了相当大的成功。它们是高度可定制的,可以满足特殊需求的应用,就像是学会了尊重和适应不同的损失函数。本文介绍了梯度增强方法的入门教程,重点介绍了建模的机器学习方面。

【关键词】梯度增强机器(GBM);机器;应用

一、研究背景

梯度增强器(GBM)实际上是从Boosting算法发展演化而来,Boosting算法其实思想相当的简单,大概是,对一份数据,建立M个模型(比如分类),一般这种模型比较简单,称为弱分类器(weak learner)每次分类都将上一次分错的数据权重提高一点再进行分类,这样最终得到的分类器在测试数据与训练数据上都可以得到比较好的成绩。

训练集中一共有n个点,我们可以为里面的每一个点赋上一个权重Wi(0 <= i < n),表示这个点的重要程度,通过依次训练模型的过程,我们对点的权重进行修正,如果分类正确了,权重降低,如果分类错了,则权重提高,初始的时候,权重都是一样的。上图中绿色的线就是表示依次训练模型,可以想象得到,程序越往后执行,训练出的模型就越会在意那些容易分錯(权重高)的点。当全部的程序执行完后,会得到M个模型,分别对应上图的y1(x)…yM(x),通过加权的方式组合成一个最终的模型YM(x)。

我觉得Boosting更像是一个人学习的过程,开始学一样东西的时候,会去做一些习题,但是常常连一些简单的题目都会弄错,但是越到后面,简单的题目已经难不倒他了,就会去做更复杂的题目,等到他做了很多的题目后,不管是难题还是简单的题都可以解决掉了。

Gradient Boosting方法:

其实Boosting更像是一种思想,Gradient Boosting是一种Boosting的方法,它主要的思想是,每一次建立模型是在之前建立模型损失函数的梯度下降方向。这句话有一点拗口,损失函数(loss function)描述的是模型的不靠谱程度,损失函数越大,则说明模型越容易出错(其实这里有一个方差、偏差均衡的问题,但是这里就假设损失函数越大,模型越容易出错)。如果我们的模型能够让损失函数持续的下降,则说明我们的模型在不停的改进,而最好的方式就是让损失函数在其梯度(Gradient)的方向上下降。

如果我们考虑与早期发展的联系,就会得出众所周知的级联相关神经网络可以被认为是算法中定义的特殊类型的梯度增强模型。由于每个神经元的输入侧权重在添加到网络之后变得固定,所以整个模型可以被认为是GBM,其中基础学习者模型只是一个神经元,损失函数是标准平方误差。这个算法也最大化了整个网络的误差与新创建的神经元之间的相关性,而且比较明显。

二、梯度增强器在决策树中的应用

一种计算可行的捕获相互作用的方式。GBM模型中的变量基于使用决策树模型。虽然几个解释变量之间的相互作用会消除加性模型的可解释性,但这不能被认为是一个显着的缺点,因为还有几种用于基于树的GBM解释的工具。

决策树背后的想法是分配空间,通过树形输入变量到均匀的矩形区域规则制度。每个树分裂对应于if-then规则一些输入变量。这种结构的决策树自然而然编码和模拟预测变量之间的相互作用,ABLES。这些树通常用数字参数化分裂,或等效地相互作用深度。它也是可能的,可以将其中一个变量拆分成特定的几倍。

只有一个分裂的决策树(即具有两个终端节点的树)的特殊情况称为树桩。因此,如果想要使用树型基础学习者来拟合一个加法模型,那么可以使用树状树来做到这一点。在许多实际应用中,小树和树桩提供了相当准确的结果(Wenxin,2002)。此外,有很多证据表明,即使是具有丰富的树结构(相互作用深度>20)的复杂模型几乎不会对紧凑的树(相互作用)提供任何好处。

决策树的一个重要特征是,通过设计,单个决策树总是以常量值推断函数。这意味着,即使像一个非零角度的直线的简单函数也不能用单个决策树正确地近似。

三、梯度增强器的模型泛化能力

从数据建立机器学习模型的最重要的关注是产生的模型的泛化能力。如果学习算法不适用,该模型可以轻松地过载数据。这意味着它会预测训练数据比输入和响应变量之间的功能依赖性。这些关切显然是相同的GBM。很容易想像一个情况,即新的基础学习者被添加到合奏,直到数据被完全过度使用。使用不同类型的基础学习者可能适应GBM具有非常不同的损失功能。

为GBM引入的最简单的正则化程序是二次抽样。子采样程序已经显示提高模型的泛化属性,同时减少所需的计算量。这种方法背后的想法是引入一些随机变量进入拟合程序。仅在每次学习迭代时训练数据的随机部分用于适应充足的基础学习者。训练数据通常是采样的替换,但是,替换抽样,就像它做的一样引导,是另一种可能的设计选择。子采样过程需要一个称为的参数“袋子分数”。袋子分数是不大于正值一个,其规定了在每个itera-glue。例如,袋=0.1对应于采样和使用每次迭代只有10%的数据。另一个有用的属性的抽样是自然地适应了GBM学习程序到大数据集时没有理由使用全部一次潜在的巨大数据量。当数据量,由数据量测量N点不是实际值得关注的,设置默认值bag=0.5给出了许多实际任务的合理结果。如果一个最佳的袋子部分是感兴趣的,可以简单的估计它通过比较不同参数下的预测性能值。

在GBM的背景下,收缩用于减少或缩小每个额外安装的基础学习者的影响。它减少增量步长的大小,从而惩罚每次连续迭代的重要性。这种技术是通过采取改进模型更好许多小步骤比采取较少的大步骤。如果其中之一增强迭代证明是错误的,它的负面影响可以在随后的步骤中轻松校正。通过收缩的最简单的正规化形式是直接比例收缩。在这种情况下,收缩的影响直接定义为参数λ∈(0,1),正则化应用于最终梯度提升算法的一步。

四、梯度增强器的缺点

梯度增压机是一种强大的方法,可以有效捕获复杂的非线性函数依赖性。这个模型系列在各种各样的显示器上取得了相当大的实际应用。此外,GBM非常灵活,可以轻松地根据不同的实际需要进行定制。然而,所有这些结果和好处并不是免费的。虽然GBM可以被认为是一种方法论框架比一个特定的方法,他们还有几个缺点:

GBM出现的最明显的问题是存储预测模型的成本取决于用于学习的升压迭代次数。正如我们在正则化部分中讨论的,为了减少过拟合的影响,我们要寻求最优迭代次数对于合适的收缩参数可以相当大。在一些精确密集的应用程序(如入侵检测系统)中,所需的迭代次数可以很容易地达到范围数万。处理这种大规模模型需要存储每个适合的基础学习者的所有参数。

GBM的另一个问题自然来自于高内存消耗是评估速度。使用拟合GBM模型获得预测,一个必须评估所有合奏中的基础学习者。尽管每个人都很简单的基础学习者,当合奏相当大时,以快速的速度获得预测可能变得耗时。因此,在密集的在线任务中使用GBM最多可能要求从业者接受这种权衡模型复杂性和所需数量的函数评估-每个时间间隔。然而,当GBM合奏是已经学会了,可以充分利用并行化获得预测。尽管功能评估的并行化,学习过程本质上是顺序的,并且通过设计并行化存在问题。

目前,GBM的另一个缺点是没有快速有效的模式和执行顺利持续的基础学习者捕获相互作用。我们从应用实例可以看出,可以在特定的预测模型中发挥至关重要的作用设计。然而,只有决策树才能有效地捕获非在合理计算中,变量之间的微不足道的相互作用时间。值得注意的是,基础学习者可能会忽略这个问题,但是这种算法目前在实践中并没有被使用GBM模型设计。

猜你喜欢
机器应用
机器狗
机器狗
无所不能的机器
神奇的写作机器
未来机器城
多媒体技术在小学语文教学中的应用研究