【深度森林第三弹】周志华等提出梯度提升决策树再胜DNN

 

技术小能手 2018-06-04 14:39:46 浏览848

 

还记得周志华教授等人的“深度森林”论文吗?今天,ArXiv上公布了深度森林系列最新的第三弹——可做表示学习的多层GBDT。

在这篇题为“Multi-Layered Gradient Boosting Decision Trees”的论文中,作者冯霁、俞扬和周志华提出了一种新颖的具有显式表示学习能力的多层GBDT森林(mGBDT),它可以与目标传播(target propagation)的变体进行共同训练。由于树集成(tree ensembles)的优异性能,这种方法在很多神经网络不适合的应用领域中具有巨大的潜力。这项工作还表明,一个不可微分的系统,也能够具有可微分系统的关键功能(多层表示学习)。

用决策树也能做多层分布式表示学习

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

目前,几乎所有的深度神经网络都是利用随机梯度下降的反向传播作为训练过程中对训练更新参数的主力。的确,当模型由可微组件组成(例如,带有非线性激活函数的加权和)时,反向传播仍然是目前的最佳选择。其他一些方法如目标传播作为神经网络训练的一种替代方法已经被提出,但其有效性和普及程度仍处于早期阶段。例如,已有的工作证明了目标传播最多可以和反向传播一样好,并且在实践中,经常需要额外的反向传播来进行微调。换句话说,旧的、好的反向传播仍然是训练可微学习系统(如神经网络)最有效的方法。另一方面,探索利用不可微模块构建多层或深层模型的可能性不仅具有学术意义,而且具有重要的应用潜力。例如,

诸如随机森林或梯度提升决策树(GBDT)之类的树集成仍然是在各种领域中对离散或表格数据进行建模的主要方式,因此将在树集成的数据中获得所学习的分层分布式表示。

由于没有机会使用链式法则传播误差(use chain rule to propagate errors),因此不可能进行反向传播。这就产生了两个基本问题:首先,我们能否构造一个具有不可微组件的多层模型,使中间层中的输出可以被视为分布式表示?第二,如果是这样的,如何在不借助反向传播的情况下共同训练这些模型?本文的目的就是提供这样的一种尝试。

最近周志华和冯霁提出了“深度森林”框架,这是第一次尝试用树集成来构建多层模型。具体来说,通过引入细粒度扫描(fine-grained scanning )和级联操作(cascading operations),该模型能够构建具有自适应模型复杂性的多层结构,并在广泛的任务范围内有竞争性表现。周志华教授等人之前提出的gcForest模型利用了集合学习的多样性增强的所有策略,但这种方法只适用于有监督的学习环境。与此同时,如何利用forest构建多层次模型,明确地检验其表示学习能力,目前还不清楚。由于前人的许多研究表明,多层分布表示法可能是深度神经网络成功的关键原因,因此对表示学习法进行探索是必要的。

训练多层GBDT森林

在这一工作中,目标是充分利用两个世界中最好的部分:树集成的优秀性能和分层分布式表示的表达能力(主要在神经网络中进行了探索)。具体地说,我们提出了第一个多层结构,使用梯度增强决策树作为每层的构建块,明确强调其表示学习能力,并通过目标传播的变体共同优化训练过程。模型可以在监督和非监督设置下进行训练。过去通常认为树只可能用于神经网络或可微系统,作者在论文中指出,这项工作首次证明了,我们可以使用树来获得分层和分布式的表示。理论证明和实验结果都表明了该方法的有效性。论文的其余部分是这样组织的:首先,讨论一些相关的工作;其次,提出了具有理论依据的方法;最后对实验结果进行了说明和讨论。

实验结果:mGBDT的精度和鲁棒性都高于神经网络

在实验部分,作者表示他们的主要目的是证实联合训练mGBDT是否可行,并无考虑文中所提出的方法在视觉任务中优于CNN。具体说,他们设计了合成数据分类、收入预测、蛋白质定位等实验,考虑以下几个问题:(Q1)训练过程是否在实践中收敛?(Q2)学到的feature是怎样的?(Q3)深度是否有助于学习到更好的表示?(Q4)给定相同的结构,与通过反向传播或目标传播训练的神经网络相比,文中所提出的层级结构的性能如何?

下表展示了收入预测(左)和蛋白质定位(右)任务中,多层GBDT森林(mGBDT)与XGBoost、神经网络的精度对比。

在给定相同模型结构的情况下,mGBDT比神经网络(包括目标传播和反向传播两者)的精度要高,多层GBDT的性能比单层GBDT好。其次,目标传播训练的神经网络,收敛性不如预期的那样好,而使用GBDT层的相同结构可以实现较低的训练损失而不会过拟合。

此外,作者在蛋白质定位实验中,通过改变网络的结构设计,表明在大多数情况下,mGBDT的鲁棒性比神经网络更高。尤其是目标训练的神经网络,在中间层增加后,最高从 0.5964 降低到了0.3654,而mGBDT一直保持相对稳定。

最后,作者还列出了他们未来探讨的方面,比如深度森林整合(Deep Forest Integration)以及使用mGBDT的变体和混合DNN

【深度森林第三弹】周志华等提出梯度提升决策树再胜DNN的更多相关文章

  1. (二)《机器学习》(周志华)第4章 决策树 笔记 理论及实现——“西瓜树”——CART决策树

    CART决策树 (一)<机器学习>(周志华)第4章 决策树 笔记 理论及实现——“西瓜树” 参照上一篇ID3算法实现的决策树(点击上面链接直达),进一步实现CART决策树. 其实只需要改动 ...

  2. [重磅]Deep Forest,非神经网络的深度模型,周志华老师最新之作,三十分钟理解!

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术感兴趣的同学加入. 深度学习最大的贡献,个人认为就是表征 ...

  3. AI产业将更凸显个人英雄主义 周志华老师的观点是如此的有深度

    今天无意间在网上看的了一则推送,<周志华:AI产业将更凸显个人英雄主义> http://tech.163.com/18/0601/13/DJ7J39US00098IEO.html 摘录一些 ...

  4. 周志华-机器学习西瓜书-第三章习题3.5 LDA

    本文为周志华机器学习西瓜书第三章课后习题3.5答案,编程实现线性判别分析LDA,数据集为书本第89页的数据 首先介绍LDA算法流程: LDA的一个手工计算数学实例: 课后习题的代码: # coding ...

  5. 【Todo】【读书笔记】机器学习-周志华

    书籍位置: /Users/baidu/Documents/Data/Interview/机器学习-数据挖掘/<机器学习_周志华.pdf> 一共442页.能不能这个周末先囫囵吞枣看完呢.哈哈 ...

  6. 《AlphaGo世纪对决》与周志华《机器学习》观后感

    这两天看了<AlphaGo世纪对决>纪录片与南大周志华老师的<机器学习>,想谈谈对人工智能的感想. 首先概述一下视频的内容吧,AlphaGo与李世石对战的过程大家都有基本的了解 ...

  7. 偶尔转帖:AI会议的总结(by南大周志华)

    偶尔转帖:AI会议的总结(by南大周志华) 说明: 纯属个人看法, 仅供参考. tier-1的列得较全, tier-2的不太全, tier-3的很不全. 同分的按字母序排列. 不很严谨地说, tier ...

  8. 机器学习周志华 pdf统计学习人工智能资料下载

    周志华-机器学习 pdf,下载地址: https://u12230716.pipipan.com/fs/12230716-239561959 统计学习方法-李航,  下载地址: https://u12 ...

  9. 【转载】 AI会议的总结(by南大周志华)

    原文地址: https://blog.csdn.net/LiFeitengup/article/details/8441054 最近在查找期刊会议级别的时候发现这篇博客,应该是2012年之前的内容,现 ...

随机推荐

  1. Hive 参数

    hive.exec.max.created.files •说明:所有hive运行的map与reduce任务可以产生的文件的和 •默认值:100000  hive.exec.dynamic.partit ...

  2. VS2010,VS2013 Datagridview控件的编辑列功能,弹窗界面被挤扁了

    搜了很久,没找到解决办法,在一个角落看到说要卸载Framework,实践后可以,发出来记一下. 解决办法: 发现自己电脑上多了Framework4.8,可能安装VS2013的时候自动安装的. 卸载了F ...

  3. Linux中查看系统资源占用情况的命令

    用 'top -i' 看看有多少进程处于 Running 状态,可能系统存在内存或 I/O 瓶颈,用 free 看看系统内存使用情况,swap 是否被占用很多,用 iostat 看看 I/O 负载情况 ...

  4. PCA人脸识别学习笔记---原理篇

     前言 在PCA人脸识别中我们把一个人脸图片看做一个特征向量,PCA做的事情就是:找到这样一组基向量来表示已有的数据点,不仅仅是将高维度数据变成低维度数据,更能够找到最关键信息. 假设已有数据{xi} ...

  5. Qt自定义类添加qvector报错

    PtsData& PtsData::operator=(const PtsData& obj){ return *this;} PtsData::~PtsData(){ }

  6. Anaconda3详细安装使用教程及问题总结

    1.Anaconda是什么? 简单来说,Anaconda是Python的包管理器和环境管理器. 先来解决一个初学者都会问的问题:我已经安装了Python,那么为什么还需要Anaconda呢?原因有以下 ...

  7. python3 @classmethod 和 @staticmethod 的区别

    如果您将某个东西定义为classmethod,这可能是因为您打算从类而不是类实例中调用它. 定义类方法的几种方式: 常规方式                       : 需要self隐士传递当前类 ...

  8. Spring事务管理4-----声明式事务管理(2)

    声明式事务管理  基于AspectJ的 XML 方式配置 通过对事务管理器TransactionManager配置通知(增强),然后再配置切点和切面,详细见applicationContext.xml ...

  9. lexicalized Parsing

    $q$(S $\rightarrow$ NP VP) * $q$(NP $\rightarrow$ NNP) * $q$(VP $\rightarrow$ VB NP) * $q$(NP $\righ ...

  10. windows下redis配置密码

    redis安装后目录如下: 最简单的启动方式是直接双击redis-server.exe 如果要设置密码,首先打开配置文件,要注意的是这两个都是配置文件,记住你改的是哪一个,不放心的可以两个都改. 然后 ...