深度森林第三弹:周志华组提出可做表征学习的多层梯度提升决策树

自去年周志华等研究者提出了「深度森林」以后,这种新型的层级表征方式吸引了很多研究者的关注。今日,南京大学的冯霁、俞扬和周志华提出了多层梯度提升决策树模型,它通过堆叠多个回归 GBDT 层作为构建块,并探索了其学习层级表征的能力。此外,与层级表征的神经网络不同,他们提出的方法并不要求每一层都是可微,也不需要使用反向传播更新参数。因此,多层分布式表征学习不仅有深度神经网络,同时还有决策树!


近十年来,深层神经网络的发展在机器学习领域取得了显著进展。通过构建分层或「深层」结构,该模型能够在有监督或无监督的环境下从原始数据中学习良好的表征,这被认为是其成功的关键因素。成功的应用领域包括计算机视觉语音识别自然语言处理等 [1]。

目前,几乎所有的深层神经网络都使用具有随机梯度下降的反向传播 [2,3] 作为训练过程中更新参数的幕后主力军。实际上,当模型由可微分量(例如,具有非线性激活函数的加权和)组成时,反向传播似乎仍是当前的最佳选择。其他一些方法如目标传播 [4] 已经被作为训练神经网络的替代方法被提出,但其效果和普及还处于早期阶段。例如,[5_]_的研究表明,目标传播最多可达到和反向传播一样的效果,并且实际上常常需要额外的反向传播来进行微调。换句话说,老掉牙的反向传播仍然是训练神经网络等可微分学习系统的最好方法。

另一方面,探索使用非可微模块来构建多层或深度模型的可能性的需求不仅仅是学界的兴趣所在,其在现实应用上也有很大的潜力。例如,基于树的集成(例如随机森林 [6] 或梯度提升决策树(GBDT)[7] 仍然是多个领域中建模离散或表格数据的主要方式,为此在这类数据上使用树集成来获得分层分布式表征是个很有趣的研究方向。在这样的案例中,由于不能使用链式法则来传播误差,反向传播不再可行。这引发了两个基本的问题:首先,我们是否可以用非可微组件构建多层模型,从而中间层的输出可以被当作分布式表征?其次,如果是这样,如何在没有反向传播的帮助下,联合地训练这种模型?本文的目的就在于提供这种尝试。

近期 Zhou 和 Feng [8] 提出了深度森林框架,这是首次尝试使用树集成来构建多层模型的工作。具体来说,通过引入细粒度的扫描和级联操作(cascading operation),该模型可以构建多层结构,该结构具备适应性模型复杂度,且能够在多种类型的任务上取得有竞争力的性能。[8] 提出的 gcForest 模型利用了集成学习多样性增强的各种策略,然而该方法仅适用于监督学习设置。同时,该论文仍然不清楚如何利用森林来构建多层模型,并明确地测试其表征学习能力。由于很多之前的研究者认为,多层分布式表征 [9] 可能是深度神经网络成功的关键,为此我们应该对表征学习进行这样的探索。

该研究力求利用两个方面的优势:树集成的出色性能和分层分布式表征的表达能力(主要在神经网络中进行探索)。具体来说,本研究提出了首个多层结构,每层使用梯度提升决策树作为构造块,明确强调其表征学习能力,训练过程可以通过目标传播的变体进行联合优化。该模型可以在有监督和无监督的环境下进行训练。本研究首次证明,确实可以使用决策树来获得分层和分布式表征,尽管决策树通常被认为只能用于神经网络或可微分系统。理论论证和实验结果均表明了该方法的有效性。

3 提出的方法

这一部分机器之心并不详细介绍,具体的方法读者可参考原论文第三章。在一般的多层前馈结构中,每一层都是可微函数,因此我们可以使用反向传播传递梯度并高效地更新参数。但是当每一个层级函数都是不可微或者非参数化的,那么我们就不能使用反向传播。所以这一部分重点在于解决当层级函数 F_i 是梯度提升决策树时,其参数的更新方法。

训练神经网络时,初始化可以通过向每个参数分配随机高斯噪声来实现,然后该步骤移动到下一阶段,即参数更新。对于此处介绍的树结构模型来说,从所有可能的树配置分布中绘制随机树结构不是一件容易的事情,因此本论文没有随机初始化树结构,而是生成一些高斯噪声作为中间层的输出,并训练一些非常小的树来获取,其中索引 0 表示该初始化阶段获取的树结构。之后训练步骤移动到迭代更新正向映射和逆向映射。图 1 和算法 1 总结了该步骤。

图 1:训练 mGBDT 步骤的示意图。

值得注意的是,[23] 利用 GPU 加速训练 GBDT,Korlakai & Ran [24] 展示了一种实施 GBDT drop-out 技术的高效方式,进一步提升了性能。至于多维输出问题,使用 GBDT 的原始方法内存效率较低。Si 等人 [25] 提出了解决该问题的有效方式,可以在实践中将内存降低一个数量级。

4 实验

4.1 合成数据

为了进行完整性检查,研究者在合成数据集上训练两个小的多层 GBDT。

如图 2a 所示,研究者在 R^2 上得到了 1.5 万个点,分为两个类别(70% 用于训练,30% 用于测试)。用于训练的结构是(输入 − 5 − 3 − 输出),其中输入点在 R^2 中,输出是 0/1 分类预测。

研究者还进行了一项自动编码的无监督学习任务。生成了 1 万个 3D 点,如图 3a 所示。然后研究者用结构为(3 - 5 - 3)的 mGBDT 构建了一个自编码器,MSE 为重建损失。

重建输出如图 3b 所示。输入 3D 点的 5D 编码不可能直接可视化,这里研究者使用一种通用策略来可视化 2D 中 5D 编码的一些维度对,如图 4 所示。

4.2 收入预测

收入预测数据集 [28] 包含 48, 842 个样本(其中 32, 561 个是训练数据,16, 281 个是测试数据),这些样本是表格数据,具备类别属性和连续属性。每个样本包括一个人的社会背景,如种族、性别、工作种类等。这里的任务是预测这个人的年薪是否超过 50K。

图 5:收入数据集的特征可视化。

实验结果见图 6 和表 1。首先,基于同样的模型结构,多层 GBDT 森林(mGBDT)与使用反向传播或目标传播(target-prop)的 DNN 方法相比取得了最高的准确率。它的准确率还比单个 GBDT 或多个 GBDT 的简单堆叠更高。其次,与期望相反,NN^TargetProp 的收敛效果不如 NN^BackProp(与 [5] 的结果一致),而使用 GBDT 层的同样结构可以达到更低的训练损失,同时避免过拟合

图 6:收入数据集学习曲线

表 1:分类准确率对比。对于蛋白质数据集,使用 10 折交叉验证评估出的准确率以平均值 ± 标准差的形式表示。

4.3 蛋白质定位

蛋白质数据集 [28] 是一个 10 类别分类任务,仅包含 1484 个训练数据,其中 8 个输入属性中的每一个都是蛋白质序列的一个测量值,目标是用 10 个可能的选择预测蛋白质定位位点。

图 7:蛋白质数据集的特征可视化

10 折交叉验证的训练和测试曲线用平均值绘制在图 8 中。多层 GBDT(mGBDT)方法比神经网络方法收敛得快得多,如图 8a 所示。

图 8:蛋白质数据集学习曲线

表 2:不同模型结构的测试准确率。使用 10 折交叉验证评估出的准确率以平均值 ± 标准差的形式表示。N/A 表示并未应用。

论文:Multi-Layered Gradient Boosting Decision Trees 

论文链接:https://arxiv.org/pdf/1806.00007.pdf

摘要:多层表征被认为是深度神经网络的关键要素,尤其是在计算机视觉等认知任务中。尽管不可微模型如梯度提升决策树(gradient boosting decision tree,GBDT)是建模离散或表格数据的主要方法,但是它们很难整合这种表征学习能力。在本文中,我们提出了多层 GBDT 森林(mGBDT),通过堆叠多个回归 GBDT 层作为构建块,探索学习层级表征的能力。该模型可以使用层间目标传播的变体进行联合训练,无需推导反向传播和可微性。实验和可视化均证明该模型在性能和表征学习能力方面的有效性。

理论梯度提升树决策树南京大学周志华论文
3
相关数据
激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

集成学习技术

集成学习是指使用多种兼容的学习算法/模型来执行单个任务的技术,目的是为了得到更佳的预测表现。集成学习的主要方法可归类为三大类: 堆叠(Stacking)、提升(Boosting) 和 装袋(Bagging/bootstrapaggregating)。其中最流行的方法包括随机森林、梯度提升、AdaBoost、梯度提升决策树(GBDT)和XGBoost。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

学习曲线技术

在机器学习领域,学习曲线通常是表现学习准确率随着训练次数/时长/数据量的增长而变化的曲线

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

提升算法技术

Boosting是一种主要用于减少偏差的机器学习集成元算法,也是监督学习的一个变化,是一种将弱学习器转换为强学习器的机器学习算法家族。 Boosting是基于Kearns和Valiant(1988,1989)提出的问题:一组弱学习器能创造一个强大的学习器吗?一个弱的学习器被定义为一个分类器,它与真实的分类只有轻微的相关性(它可以比随机猜测更好地标注示例)。相反,强大的学习器是一个与真实分类任意相关的分类器。

梯度提升技术

梯度提升是用于回归和分类问题的机器学习技术,其以弱预测模型(通常为决策树)的集合的形式产生预测模型。 它像其他增强方法一样以阶段式方式构建模型,并且通过允许优化任意可微损失函数来推广它们。

表征学习技术

在机器学习领域,表征学习(或特征学习)是一种将原始数据转换成为能够被机器学习有效开发的一种技术的集合。在特征学习算法出现之前,机器学习研究人员需要利用手动特征工程(manual feature learning)等技术从原始数据的领域知识(domain knowledge)建立特征,然后再部署相关的机器学习算法。虽然手动特征工程对于应用机器学习很有效,但它同时也是很困难、很昂贵、很耗时、并依赖于强大专业知识。特征学习弥补了这一点,它使得机器不仅能学习到数据的特征,并能利用这些特征来完成一个具体的任务。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

随机森林技术

在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。 Leo Breiman和Adele Cutler发展出推论出随机森林的算法。而"Random Forests"是他们的商标。这个术语是1995年由贝尔实验室的Tin Kam Ho所提出的随机决策森林(random decision forests)而来的。这个方法则是结合Breimans的"Bootstrap aggregating"想法和Ho的"random subspace method" 以建造决策树的集合。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

随机梯度下降技术

梯度下降(Gradient Descent)是遵循成本函数的梯度来最小化一个函数的过程。这个过程涉及到对成本形式以及其衍生形式的认知,使得我们可以从已知的给定点朝既定方向移动。比如向下朝最小值移动。 在机器学习中,我们可以利用随机梯度下降的方法来最小化训练模型中的误差,即每次迭代时完成一次评估和更新。 这种优化算法的工作原理是模型每看到一个训练实例,就对其作出预测,并重复迭代该过程到一定的次数。这个流程可以用于找出能导致训练数据最小误差的模型的系数。

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

语音识别技术

自动语音识别是一种将口头语音转换为实时可读文本的技术。自动语音识别也称为语音识别(Speech Recognition)或计算机语音识别(Computer Speech Recognition)。自动语音识别是一个多学科交叉的领域,它与声学、语音学、语言学、数字信号处理理论、信息论、计算机科学等众多学科紧密相连。由于语音信号的多样性和复杂性,目前的语音识别系统只能在一定的限制条件下获得满意的性能,或者说只能应用于某些特定的场合。自动语音识别在人工智能领域占据着极其重要的位置。

链式法则技术

是求复合函数导数的一个法则, 是微积分中最重要的法则之一。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

交叉验证技术

交叉验证,有时亦称循环估计, 是一种统计学上将数据样本切割成较小子集的实用方法。于是可以先在一个子集上做分析, 而其它子集则用来做后续对此分析的确认及验证。 一开始的子集被称为训练集。而其它的子集则被称为验证集或测试集。交叉验证的目标是定义一个数据集到“测试”的模型在训练阶段,以便减少像过拟合的问题,得到该模型将如何衍生到一个独立的数据集的提示。

堆叠技术

堆叠泛化是一种用于最小化一个或多个泛化器的泛化误差率的方法。它通过推导泛化器相对于所提供的学习集的偏差来发挥其作用。这个推导的过程包括:在第二层中将第一层的原始泛化器对部分学习集的猜测进行泛化,以及尝试对学习集的剩余部分进行猜测,并且输出正确的结果。当与多个泛化器一起使用时,堆叠泛化可以被看作是一个交叉验证的复杂版本,利用比交叉验证更为复杂的策略来组合各个泛化器。当与单个泛化器一起使用时,堆叠泛化是一种用于估计(然后纠正)泛化器的错误的方法,该泛化器已经在特定学习集上进行了训练并被询问了特定问题。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

推荐文章
暂无评论
暂无评论~