【深度森林第三弹】周志华等提出梯度提升决策树再胜DNN
【深度森林第三弹】周志华等提出梯度提升决策树再胜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的更多相关文章
- (二)《机器学习》(周志华)第4章 决策树 笔记 理论及实现——“西瓜树”——CART决策树
		
CART决策树 (一)<机器学习>(周志华)第4章 决策树 笔记 理论及实现——“西瓜树” 参照上一篇ID3算法实现的决策树(点击上面链接直达),进一步实现CART决策树. 其实只需要改动 ...
 - [重磅]Deep Forest,非神经网络的深度模型,周志华老师最新之作,三十分钟理解!
		
欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术感兴趣的同学加入. 深度学习最大的贡献,个人认为就是表征 ...
 - AI产业将更凸显个人英雄主义     周志华老师的观点是如此的有深度
		
今天无意间在网上看的了一则推送,<周志华:AI产业将更凸显个人英雄主义> http://tech.163.com/18/0601/13/DJ7J39US00098IEO.html 摘录一些 ...
 - 周志华-机器学习西瓜书-第三章习题3.5 LDA
		
本文为周志华机器学习西瓜书第三章课后习题3.5答案,编程实现线性判别分析LDA,数据集为书本第89页的数据 首先介绍LDA算法流程: LDA的一个手工计算数学实例: 课后习题的代码: # coding ...
 - 【Todo】【读书笔记】机器学习-周志华
		
书籍位置: /Users/baidu/Documents/Data/Interview/机器学习-数据挖掘/<机器学习_周志华.pdf> 一共442页.能不能这个周末先囫囵吞枣看完呢.哈哈 ...
 - 《AlphaGo世纪对决》与周志华《机器学习》观后感
		
这两天看了<AlphaGo世纪对决>纪录片与南大周志华老师的<机器学习>,想谈谈对人工智能的感想. 首先概述一下视频的内容吧,AlphaGo与李世石对战的过程大家都有基本的了解 ...
 - 偶尔转帖:AI会议的总结(by南大周志华)
		
偶尔转帖:AI会议的总结(by南大周志华) 说明: 纯属个人看法, 仅供参考. tier-1的列得较全, tier-2的不太全, tier-3的很不全. 同分的按字母序排列. 不很严谨地说, tier ...
 - 机器学习周志华 pdf统计学习人工智能资料下载
		
周志华-机器学习 pdf,下载地址: https://u12230716.pipipan.com/fs/12230716-239561959 统计学习方法-李航, 下载地址: https://u12 ...
 - 【转载】    AI会议的总结(by南大周志华)
		
原文地址: https://blog.csdn.net/LiFeitengup/article/details/8441054 最近在查找期刊会议级别的时候发现这篇博客,应该是2012年之前的内容,现 ...
 
随机推荐
- 经典算法:n个人围成一圈,报m的离开,最后剩下谁?
			
public int remainPersonNumber(int n, int m) { //输入不合法 if(n < 1 || m < 1) return -1; //初始化,存入Li ...
 - Custom Roles Based Access Control (RBAC) in ASP.NET MVC Applications - Part 1 (Framework Introduction)
			
https://www.codeproject.com/Articles/875547/Custom-Roles-Based-Access-Control-RBAC-in-ASP-NET Introd ...
 - Gokit微服务-服务链路追踪
			
https://mp.weixin.qq.com/s/gjKOy4SDpsjUXDC3Q1YdFw Gokit微服务-服务链路追踪 原创: 兮一昂吧 兮一昂吧 2月28日
 - UML期末复习题——2.5:System Sequence Diagram & Post-condition
			
第五题:系统顺序图 重要概念: 1.对象: 对象是特定行为与属性的集合. 对象的表示方式有三种: a.包括对象名和类名 b.只有类名. c.只有对象名 2.消息表示形式: 消息用于描述对象间交互的方式 ...
 - android java.util.Date和java.util.sql中Date的区别
			
1.将java.util.Date 转换为 java.sql.Date java.sql.Date sd; java.util.Date ud; //initialize the ud such as ...
 - Java面试题(基础)
			
一.Java 基础 1.JDK 和 JRE 有什么区别? 答:JRE是java运行时环境,包含了java虚拟机,java基础类库.是使用java语言编写的程序运行所需要的软件环境,是提供给想运行jav ...
 - [Scikit-learn] 2.3 Clustering - Spectral clustering
			
From: 2.3.5 Clustering - Spectral clustering From: 漫谈 Clustering (4): Spectral Clustering From: 漫谈 C ...
 - 一个BADI中实施多个Implementation
			
转自:https://blog.csdn.net/zhongguomao/article/details/76251407 业务场景:例如我们需要对国家的税率做一个增强,以完成某种业务运算,但是每个国 ...
 - mud那些坑 find_object问题
			
find_object find_object 没有找到对象时 实际上会load_obejct 一次,需要设定一个标记表示 find_obejct 找出来的 对象和需要对比的对象有什么不同 只要n ...
 - sed例子
			
以care.log这个log文件为例, care.log: 05:44:31,816 DEBUG RawAggregationWorker:70 - LTS is working on Raw Dat ...