Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >小菜鸟对周志华大神gcForest的理解

小菜鸟对周志华大神gcForest的理解

原创
作者头像
王相军
修改于 2017-06-19 11:10:33
修改于 2017-06-19 11:10:33
7.7K0
举报
文章被收录于专栏:王相军的专栏王相军的专栏

作者:王相军,腾讯助理工程师,毕业于哈尔滨工业大学,腾讯CDG征信中心员工,乐于分享,希望大家一起学习,共同进步!

导语

花了一下午时间学习了周志华教授的新paper——《Deep Forest: Towards An Alternative to Deep Neural Networks》,论文主要介绍了一种新的集成机器学习方法——gcForest,其核心思想是:利用级联森林(决策树集成)方法去学习生成模型,一定程度上可以弥补DNN的部分劣势!(强烈说明:作为一个小菜鸟,里面有很多都是自己的个人理解,不对的地方希望看到的大神多多指教,感激不尽!!! )

一、DNN和gcForest的优缺点

DNN

1)DNN需要大的样本集,在小样本数据集上表现不可观;

2)DNN本身就是复杂的模型,所以训练过程很复杂,需要大量的复杂计算;

3)参数太多,需要花费大量的调参时间。(坊间流行一句话:DNN的训练更像是艺术,而不是科学或者工程);

4)DNN在大数据集上的效果确实很好。

gcForest

1)gcForest在大数据集上的表现和DNN分庭抗礼,在小数据集上也表现很好;

2)参数少,调参简单,在很多领域的不同数据集上,使用默认设置,结果都很好;

3)训练过程简单、理论体系更易懂;

4)执行效率高,gcForest在一台PC上的效率相当于DNN在GPU机器上的效率;

5)并行度高,作为Forest,有着天然的高并行性。

二、gcForest的方法论

gcForest的核心主要包括两大块:级联森林(Cascade Forest)和多粒度扫描(Multi-Grained Scanning)。

1、级联森林(Cascade Forest)

级联森林的构成:级联森林的每一层都是由好多个森林(既有随机森林,又有完全随机森林)组成,而每一个森林又是由好多个决策树(Decision Tree)组成,所以这种组合是集成的集成!其中每一层的随机森林和完全随机森林保证了模型的多样性!具体的级联森林结构如下图1所示。

图1 级联森林结构图

图1中的级联森林每一层包括两个完全随机森林(黑色)和两个随机森林(蓝色)。每个完全随机森林包含1000个完全随机的决策树,每个决策树的每个节点都是随机选择一个特征做分裂,直至每一个叶节点包含的实例属于同一个类,或者实例数目不多于10个;每个随机森林也是1000个决策树,每个决策树的生成是随机选择sqrt(d)个特征(d输入的总特征),每次选择gini值最高的做分裂。

级联森林的迭代终止条件:迭代到效果不能提升就停止!!!

级联森林中每个森林是如何决策的呢?

每个森林中都包括好多棵决策树,每个决策树都会决策出一个类向量结果(以3类为例,下面也是),然后综合所有的决策树结果,再取均值,生成每个森林的最终决策结果——一个3维类向量!每个森林的决策过程如下图2所示。

图2 每个森林的决策过程(决策树中的叶子颜色代表不同的类)

这样,每个森林都会决策出一个3维类向量,回到图1中,级联森林中的4个森林就都可以决策出一个3维类向量,然后对4个*3维类向量取均值,最后取最大值对应的类别,作为最后的预测结果!

2、多粒度扫描(Multi-Grained Scanning)

多粒度扫描是为了增强级联森林,为了对特征做更多的处理的一种技术手段。具体扫描过程如下图3所示。

图3 多粒度扫描过程

图3是分别对序列数据和图像数据的原始输入特征做Multi-Grained Scanning处理的过程。

对于序列数据,假设我们的输入特征是400维,扫描窗口大小是100维,这样就得到301个100维的特征向量,每个100维的特征向量对应一个3分类的类向量,即得到:301个*3维类向量!最终每棵森林会得到903维的衍生特征变量!

于图像数据的处理和序列数据一样,图像数据的扫描方式当然是从左到右、从上到下,而序列数据只是从上到下。

当然,可以用各种尺寸不等的扫描窗口去扫描,这样就会得到更多的、更丰富的特征关系!

三、整体实现

整个实现过程附上一张大图4。

图4 gcForest算法的实现流程图

四、结果分析

1、在大数据集上,分别和DNN类、LR、RF、SVM等算法做了对比。

1)图像分类(数据集:MNIST):略低于DNN,基本持平(99.05%与98.96%);

2)人脸识别(数据集:ORL):人脸图像数量不同时,gcForest都最好;

3)音乐分类(数据集:GTZAN):gcForest最好(65.67%);

4)手部运动识别(数据集:sEMG):gcForest最好(55.93%);

5)情感分类(数据集:IMDB):gcForest最好(89.32%)。

2、在几个小数据集上表现和很好。

五、总结

作为小菜鸟新人,自己写这篇文章的初衷只是简单的学习分享,把自己看到的觉得还不错的东西记录下来,以供交流学习;自己对DNN的了解也有限,所以,这篇文章也没有任何要抨击DNN的意思,自己也没有这个实力(这是重点,哈哈哈)!

最后,如果本文有写的不对的地方,请看到的大神不吝赐教!谢谢。。

相关推荐

DI-X深度学习平台

人人都可以做深度学习应用:入门篇(上)

人人都可以做深度学习应用:入门篇(下)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
周志华团队开源深度森林DF21, 超参少、训练效率高,快来亲自上手!
在人工智能的发展历史上,神经网络这一“物种”可谓是经历了起起伏伏,不过时至今日,神经网络总算是修得一段“正果”,而在中国近几年的AI发展中,也有那么几个研究总是时不时撩人心弦,今天要介绍的于2017年被南京大学周志华和其博士生冯霁等人提出的深度森林框架gcForest就是其中之一。
AI科技评论
2021/02/08
3.9K0
如何利用全新的决策树集成级联结构gcForest做特征工程并打分?
摘要 在这篇论文里,我们提出了 gcForest,这是一种决策树集成方法(decision tree ensemble approach),性能较之深度神经网络有很强的竞争力。深度神经网络需要花大力气调参,相比之下 gcForest 要容易训练得多。实际上,在几乎完全一样的超参数设置下,gcForest 在处理不同领域(domain)的不同数据时,也能达到极佳的性能。gcForest 的训练过程效率高且可扩展。在我们的实验中,它在一台 PC 上的训练时间和在 GPU 设施上跑的深度神经网络差不多,有鉴于 gcForest 天然适用于并行的部署,其效率高的优势就更为明显。此外,深度神经网络需要大规模的训练数据,而 gcForest 在仅有小规模训练数据的情况下也照常运转。不仅如此,作为一种基于树的方法,gcForest 在理论分析方面也应当比深度神经网络更加容易。 级联森林(Cascade Forest)
机器学习AI算法工程
2019/10/28
1.1K0
如何利用全新的决策树集成级联结构gcForest做特征工程并打分?
南大周志华团队开源深度森林软件包DF21:训练效率高、超参数少,普通设备就能跑
机器之心报道 机器之心编辑部 内存友好的深度森林软件包开源了。现在,普通设备也可以跑得动深度森林。 周志华等人一直在推动的深度森林,是探索神经网络以外 AI 领域重要的研究方向之一,在表格数据建模任务中已初现锋芒。但是,由于基于决策树的集成模型在具体实现当中,经常会遇到内存不足,硬件效率不如神经网络等问题,是推动其大规模应用的主要瓶颈之一。 经过 LAMDA 徐轶轩等人的不懈努力,2021 年 2 月 1 日,新的深度森林软件包 DF21 在 GitHub 与开源中国同时开源了。该软件包尝试解决了这一方向
博文视点Broadview
2023/05/19
3470
南大周志华团队开源深度森林软件包DF21:训练效率高、超参数少,普通设备就能跑
快速入门Python机器学习(20)
2001年Breiman把分类树组合成随机森林(Breiman 2001a),即在变量(列)的使用和数据(行)的使用上进行随机化,生成很多分类树,再汇总分类树的结果。随机森林在运算量没有显著提高的前提下提高了预测精度。
顾翔
2022/09/23
3070
快速入门Python机器学习(20)
如何评价周志华深度森林模型,热议会否取代深度学习 DNN
【新智元导读】昨天,新智元报道了南京大学周志华教授和冯霁的论文“深度森林”,引发很多讨论。今天,新智元整理了网上一些评价。中文内容来自知乎,已经取得授权。外网内容来自 Hacker News,由新智元
新智元
2018/03/27
1.3K0
如何评价周志华深度森林模型,热议会否取代深度学习 DNN
周志华最新论文挑战深度学习 | 深度森林:探索深度神经网络以外的方法
【新智元导读】西瓜书《机器学习》作者、南京大学周志华日前发表论文,提出了一种基于树的方法,挑战深度学习。在设置可类比的情况下,新方法 gcForest 取得了和深度神经网络相当甚至更好的结果,而且更容易训练,小数据也能运行,更重要的是相比神经网络,基于树的方法不会存在那么困难的理论分析问题。周志华和冯霁在论文里写道,“我们认为,要解决复杂的问题,学习模型也需要往深了去。然而,当前的深度模型全部都是神经网络。这篇论文展示了如何构建深度树(deep forest),为在许多任务中使用深度神经网络之外的方法打开了
新智元
2018/03/12
1K0
周志华最新论文挑战深度学习 | 深度森林:探索深度神经网络以外的方法
【周志华深度森林第二弹】首个基于森林的自编码器,性能优于DNN
【新智元导读】或许你还记得南大LAMDA教授周志华和学生冯霁在今年早些时候发表的“深度森林”论文,他们认为基于决策树集成的方法同样可以构建深度学习模型,并提出深度森林gcForst,对神经网络以外的深度模型进行了探索。现在,在深度森林的基础上,他们又提出了基于决策树集成方法的自编码器(auto-encoder) eForest。实验结果表明,eForest在速度和精度等方面均优于基于DNN的自编码器。 自编码是一项重要的任务,通常由卷积神经网络(CNN)等深度神经网络(DNN)实现。本文中,我们提出了Enc
新智元
2018/03/22
1.5K0
【周志华深度森林第二弹】首个基于森林的自编码器,性能优于DNN
从深度学习到深度森林方法(Python)
目前深度神经网络(DNN)做得好的几乎都是涉及图像视频(CV)、自然语言处理(NLP)等的任务,都是典型的数值建模任务(在表格数据tabular data的表现也是稍弱的),而在其他涉及符号建模、离散建 模、混合建模的任务上,深度神经网络的性能并没有那么好。
算法进阶
2022/06/02
5700
从深度学习到深度森林方法(Python)
非神经网络的深度模型
---- 深度学习最大的贡献,个人认为就是表征学习(representation learning),通过端到端的训练,发现更好的features,而后面用于分类(或其他任务)的输出function,往往也只是普通的softmax(或者其他一些经典而又简单的方法)而已,所以,只要特征足够好,分类函数本身并不需要复杂——博主自己在做research的时候也深有同感,以前很多paper其实是误入歧途,采用的feature非常混淆模糊没有区分性,却指望在分类器上获得好的结果,可能么?深度学习可以说是回到了问题的
计算机视觉研究院
2018/04/17
1.1K0
非神经网络的深度模型
重磅 | 周志华最新论文:首个基于决策树集成的自动编码器,表现优于DNN
向AI转型的程序员都关注了这个号☝☝☝ 翻译 | AI科技大本营(rgznai100) 参与 | 周翔、reason_W成龙,Shawn 今年 2 月,南京大学的周志华教授和他的学生 Ji Feng
AI科技大本营
2018/04/27
1.3K0
重磅 | 周志华最新论文:首个基于决策树集成的自动编码器,表现优于DNN
周志华团队和蚂蚁金服合作:用分布式深度森林算法检测套现欺诈
源 | AI科技大本营 互联网公司每天都面临着处理大规模机器学习应用程序的问题,因此我们需要一个可以处理这种超大规模的日常任务的分布式系统。最近,以集成树为构建模块的深度森林(Deep Forest)算法被提出,并在各个领域取得了极具竞争力的效果。然而,这种算法的性能还未在超大规模的任务中得到测试。近日,基于蚂蚁金服的参数服务器系统“鲲鹏”及其人工智能平台“PAI”,蚂蚁金服和南京大学周志华教授的研究团队合作开发了一种分布式的深度森林算法,同时提供了一个易于使用的图形用户界面(GUI)。 为了满足现实世界
昱良
2018/06/25
9250
【深度前沿】深度森林最新进展,南京大学周志华教授MLA2017解读,最新实验结果挑战深度学习
【导读】北京时间 11月5 日到11月6日,一年一度的“机器学习及其应用”(MLA)系列研讨会在北京交通大学开幕,西瓜书《机器学习》作者、南京大学机器学习与数据挖掘研究所(LAMDA)周志华教授日前在第15届中国机器学习及其应用研讨会(MLA 2017)上的演讲报告题目是深度森林初探,讲述的关于他最新集成学习研究成果-深度森林,一种对深度神经网络可替代性方法,这是他和 LAMDA 博士生冯霁发表在人工智能领域顶级会议IJCAI2017的论文《深度森林:探索深度神经网络以外的方法》(Deep Forest:
WZEARW
2018/04/09
3K0
【深度前沿】深度森林最新进展,南京大学周志华教授MLA2017解读,最新实验结果挑战深度学习
深度 | 周志华:“深”为什么重要,以及还有什么深的网络
许多特性并不是深度神经网络独有~ 作者:杨晓凡 编辑:Camel 8 月 10 日至 16 日,IJCAI 2019 在中国澳门隆重召开。14 日下午,南京大学周志华教授进行特邀大会演讲,演讲主题
AI科技评论
2019/08/19
3680
深度 | 周志华:“深”为什么重要,以及还有什么深的网络
【独家】周志华教授gcForest(多粒度级联森林)算法预测股指期货涨跌
公众号特约编辑 / 一心想错 / 独家 gcForest Algorithm 对于周志华教授的文章,网上已经有人做出很详细的解释啦。我们对论文进行简单描述之后,然后直接从策略开始讲起。 gcForest(multi-Grained Cascade forest 多粒度级联森林)是周志华教授最新提出的新的决策树集成方法。这种方法生成一个深度树集成方法(deep forest ensemble method),使用级联结构让gcForest学习。gcForest模型把训练分成两个阶段:Multi-Grain
量化投资与机器学习微信公众号
2018/01/29
2.2K0
【独家】周志华教授gcForest(多粒度级联森林)算法预测股指期货涨跌
机器学习 | 基于量子游走的深度森林改进算法
今天给大家介绍的是厦门大学信息学院刘昆宏教授等人在Soft Computing上发表的论文”Improving deep forestby ensemble pruning based on feature vectorization and quantum walks”。众所周知,良好的剪枝策略可以提高随机森林的性能。作者创新性地利用量子游走这一图上的动力学过程,对随机森林中节点性能进行拓扑排序,从而实现了一种基于排序的高效剪枝策略,提高算法性能。
智能生信
2021/02/04
1.2K0
【深度森林第三弹】周志华等提出梯度提升决策树再胜DNN
新智元编译 来源:arxiv 编辑:闻菲、克雷格 【新智元导读】今天,ArXiv上公布了深度森林系列最新的第三弹——可做表示学习的多层GBDT,冯霁、俞扬和周志华提出了一种新颖的具有显式表示学习能
新智元
2018/06/22
8230
理解随机森林:基于Python的实现和解释
感谢 Scikit-Learn 这样的库,让我们现在可以非常轻松地使用 Python 实现任何机器学习算法。事实上操作起来很简单,我们往往无需了解任何有关模型内部工作方式的任何知识就能使用它。尽管我们并不需要理解所有细节,但了解一些有关模型训练和预测方式的思路仍然会有很大的帮助。这使得我们可以在模型表现不如预期时对模型进行诊断,或解释我们的模型做决策的方式——这能帮助我们说服他人使用我们的模型。
机器之心
2019/01/02
1.1K0
随机森林基本原理
基础内容: 这里只是准备简单谈谈基础的内容,主要参考一下别人的文章,对于随机森林与GBDT,有两个地方比较重要,首先是information gain,其次是决策树。这里特别推荐Andrew Moore大牛的Decision Trees Tutorial,与Information Gain Tutorial。Moore的Data Mining Tutorial系列非常赞,看懂了上面说的两个内容之后的文章才能继续读下去。 决策树实际上是将空间用超平面进行划分的一种方法,每次分割的时候,都将当前的空间一分为二,
学到老
2018/03/19
8020
非常全面!如何选择合适的模型?
在众多机器学习模型中,我们如何在各种实际情况下做出恰当的选择呢?本文我从如下几个方面系统地分析下~ 有帮助的话点个赞哦。
算法进阶
2024/06/25
1.2K0
非常全面!如何选择合适的模型?
随机之美——机器学习中的随机森林模型
摘要:随机森林和决策树相比,能更好的防止过拟合。虽然每个基分类器很弱,但最后组合的结果通常很强,这也类似于:“三个臭皮匠顶个诸葛亮”的思想。对比发现Random Forest(随机森林)和SVM(支持向量机)名列第一、第二名。 01 树与森林 在构建决策树的时候,可以让树进行完全生长,也可以通过参数控制树的深度或者叶子节点的数量,通常完全生长的树会带来过拟合问题。过拟合一般由数据中的噪声和离群点导致,一种解决过拟合的方法是进行剪枝,去除树的一些杂乱的枝叶。 注:你可能需要参考前面的文章:《0x0B 菩提决策
CDA数据分析师
2018/02/05
1.9K0
随机之美——机器学习中的随机森林模型
推荐阅读
周志华团队开源深度森林DF21, 超参少、训练效率高,快来亲自上手!
3.9K0
如何利用全新的决策树集成级联结构gcForest做特征工程并打分?
1.1K0
南大周志华团队开源深度森林软件包DF21:训练效率高、超参数少,普通设备就能跑
3470
快速入门Python机器学习(20)
3070
如何评价周志华深度森林模型,热议会否取代深度学习 DNN
1.3K0
周志华最新论文挑战深度学习 | 深度森林:探索深度神经网络以外的方法
1K0
【周志华深度森林第二弹】首个基于森林的自编码器,性能优于DNN
1.5K0
从深度学习到深度森林方法(Python)
5700
非神经网络的深度模型
1.1K0
重磅 | 周志华最新论文:首个基于决策树集成的自动编码器,表现优于DNN
1.3K0
周志华团队和蚂蚁金服合作:用分布式深度森林算法检测套现欺诈
9250
【深度前沿】深度森林最新进展,南京大学周志华教授MLA2017解读,最新实验结果挑战深度学习
3K0
深度 | 周志华:“深”为什么重要,以及还有什么深的网络
3680
【独家】周志华教授gcForest(多粒度级联森林)算法预测股指期货涨跌
2.2K0
机器学习 | 基于量子游走的深度森林改进算法
1.2K0
【深度森林第三弹】周志华等提出梯度提升决策树再胜DNN
8230
理解随机森林:基于Python的实现和解释
1.1K0
随机森林基本原理
8020
非常全面!如何选择合适的模型?
1.2K0
随机之美——机器学习中的随机森林模型
1.9K0
相关推荐
周志华团队开源深度森林DF21, 超参少、训练效率高,快来亲自上手!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档