2017年年初,南京大学周志华老师上传了一篇名为:Deep Forest:Towards An Alternative to Deep Neural Networks的论文,一石激起千层浪,各大媒体纷纷讨论着,这似乎意味着机器学习的天色要变,实则不然,周志华老师通过微博解释道,此篇论文不过是为机器学习打开了另一扇窗,是另一种思维,而不是真的去替代深度神经网络(DNN)。

下面我就简单概括一下我对这篇论文的理解,如过存在问题希望看客帮楼主提出来,一起解决。

简介

全篇论文重在介绍Deep Forest与Deep NN的比较,对于Deep Forest的结构解释比较简单,如果你是初学者,也许不太能够理解其中的Random Forest等。当然,为了体现出gcForest(Deep Forest的另一种说法,因为它的结构可以理解为:multi-Grained Cascade forest(多粒度级联森林))的优势,首先还是要说一下他的对比方法,DNN存在哪些不足之处。

DNN的不足之处

  • 1、需要大量的数据集来训练;
  • 2、DNN的模型太复杂,导致它的运行环境更适合公司,个人的使用还是比较局限;
  • 3、DNN有着太多的超参数(hyper-parameters),学习性能太依赖与对它们的调节。

在gcForest中,作者沿用了DNN中的类似于表征学习等特性,摒弃了DNN中复杂的逻辑结构。

gcForest原理

这个结构是生成一个深度树集成方法,使用级联结构让gcForest做表征学习,当输入带有高维度时,通过多粒度扫描,其表征学习能力还能得到进一步的提升,而且这种方法还能让gcForest注意到上下文结构,重要是:级联的数量能自行调节,因此,即使在处理小数据量的时候效果依然是有可能不错的。相对于DNN而言,gcForest的超参数数量是很少的,且设定性能的鲁棒性很高,因此,对于跨域的时候依旧可行,根据gcForest的结构,显然,它天生就适合并行,因此在性能上绝对不会弱于DNN。

gcForest方法

也是延续DNN的对原始特征做逐层处理,其中的级联森林结构如下图所示:
​​
每一级都是决策森林的集合,在原文的实验中使用的是两个完全随机森林和两个随机森林,每个完全随机的树森林包含1000个完全随机树,通过随机选择一个特征在树的每个节点进行分割实现生成,树一直生长,直到每个叶节点只包含相同类的实例或不超过10个实例。类似地,每个随机森林也包含1000棵树,然后选择具有最佳 gini 值的特征作为分割。生成类如下图:

通过这个结构之后,每个森林都会生成一个三维的类向量。那么,是怎么实现自动调整级数的呢?在该结构中,首先会在一级结束后做一个性能测试,然后再继续生成下一级,当扩展一个新的级后,整个级联的性能将在验证集上进行估计,如果没有显着的性能增益,训练过程将终止。因此,gcForest能够通过适当的终止,来决定其模型的复杂度,这就使得相对于DNN,gcForest在即使面对小数据集的情况下一样使用,因为它的结构不依赖于大量的数据生成。

接下来,gcForest该处理数据的特征关系了,也是受到DNN的启发,对序列数据有效,其中顺序是极为关键的,因此,在gcForest中,用多粒度扫描来增强级联森林。如下图所示:

上图分别表示了两种原始输入特征所用的方法,其大致思想都是采用滑动窗口的方法,先生成若干个实例,然后通过实例生成两个森林,一个完全随机森林,一个随机森林,然后再把生成的两个森林生成对应的相同维度的“类向量”,最后把这两大类向量连接在一起,综上,就是通过某段原始特征生成部分深度森林的想法,但应对的一般来说会采用多个不同大小的窗口做扫描,如论文中就采用了三个不同大小的窗口,如图所示:

实验对比

图题所述,这篇论文主要还是在于gcForest对DNN的比较上,首先,论文中指出了在前期准备上,两种结构所存在的差异,如下图:

如图所示,gcForest在很多地方都是确定的,这就使得在建立结构时期,所做的工作是稳定的,接下来,论文中把gcForest和其它几个流行的学习算法在不同领域的实验结果放在论文上:






如上面几幅图,gcForest确实在大多数实验中的效果还是很有竞争力的,最后,论文中为了进一步介绍gcForest,把其中两个重要的特征,级联森林和多粒度扫描做了对比:

运行时间


因为gcForest本身就适用于大规模的并行运算,因此它的时间也是很有竞争力的。

正如论文末尾提到的,这篇论文还只是一个半成品,

  • 1、它提出了一种新的想法,
  • 2、这个方法虽然新,但其实是和DNN做结合的方法,他们最后的目的是找到一种能代替DNN的方法,特别是通过级联森林结构,不仅进行表示特征学习,还能够自动决定模型的复杂度。

文章的最后提到了堆叠方面的研究,一般存在与将一级学习者的输出传递给另一个学习者的过程,原文中使用的是交叉验证程序从下一个级别生成输入,级联程序也与Boosting有关,它能够自动决定级联中学习者的数量,特别是级联增强程序效果尤其明显,在之前,都是使用Bagging作为Boosting的基础学习者,而gcForest将同一级别的合奏用于特征重新表示,目前的问题是对于多样性的把握还不够,因此,研究人员试图增加多样性的启发,如,可以在级联结构中使用不同类型的森林。

总结

这里就引用原文的结论做一下这篇论文的总结,首先,gcForest的优点如下:1、gcForest具有少得多的参数(和DNN相比),并且对参数设置都不太敏感;2、无论是大规模或者是小规模数据,在不同领域中gcForest的表现都是不错的;3、作为一种基于树的方法,gcForest更容易做理论分析。

发展

这个gcForest具体性能如何,我还没有去验证,不过在理解上确实要比DNN简单的多(目前对DNN的了解知之甚少),不过gcForest相对于看似成熟的DNN还有非常非常大的提升空间。

ps:欢迎小伙伴们访问我的个人主页,并与我交流哦!

【论文解读】关于深度森林的一点理解相关推荐

  1. DeepLabV3论文解读(空洞卷积/膨胀卷积 理解)

    DeepLabV3论文解读(空洞卷积/膨胀卷积 理解) 最近在做基础网络研究,设计的网络结构除了在分类数据集上测试,还需要在分割和检测网络上测试效果,故选择了DeepLabV3作为对比平台.本想直接替 ...

  2. Nature论文解读 | 基于深度学习和心脏影像预测生存概率

    作者丨Peter 单位丨某基因科技公司生物信息工程师 研究方向丨生物信息 本文解读的文章来自今年 2 月份的 Nature 杂志新子刊 Machine Intelligence,标题为:Deep-le ...

  3. ACL 2018 论文解读 | 基于深度强化学习的远程监督关系抽取

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

  4. 2020AI顶会的腾讯论文解读 | 多模态学习、视频内容理解、对抗攻击与对抗防御等「AI核心算法」

    关注:决策智能与机器学习,深耕AI脱水干货 报道 |  腾讯AI实验室 计算机视觉领域三大顶会之一的 ECCV(欧洲计算机视觉会议)今年于 8 月 23-28 日举办.受新冠肺炎疫情影响,今年的 EC ...

  5. 【论文解读】深度学习目标检测的开山鼻祖 |R-CNN详解 | 两阶段目标检测代表

    目录 前言 目标检测近年里程碑 深度学习目标检测 1 R-CNN简介 1.1 何为R-CNN? 1.2 摘要 1.2.1 论文综述 1.2.2 优点汇总 1.2.3 缺点汇总 2. RCNN网络结构解 ...

  6. Nature论文解读:深度学习助力毫秒之间识别癌细胞

    论文动机 流式细胞仪作为一种生物医学诊断技术,可以准确测量细胞特性.当前仪器已经实现了细胞的分类识别,但由于数据处理耗时的问题,尚不能对细胞进行实时分选. 基于之前的工作,本文作者提出采用深度学习来解 ...

  7. 论文解读丨LayoutLM: 面向文档理解的文本与版面预训练

    摘要:LayoutLM模型利用大规模无标注文档数据集进行文本与版面的联合预训练,在多个下游的文档理解任务上取得了领先的结果. 本文分享自华为云社区<论文解读系列二十五:LayoutLM: 面向文 ...

  8. 【论文解读】深度学习网络架构新视角:通过相关图表达理解神经网络(何恺明团队新作)...

    文章来源于极市平台,作者Happy 标题&作者团队 导语:恺明大神出品,必属精品.Facebook的研究员从一个新奇的角度对神经网络的表示与设计进行探索,提出了一种新颖的相关图表示方式.它有助 ...

  9. 【论文解读】深度强化学习基石论文:函数近似的策略梯度方法

     导读:这篇是1999 年Richard Sutton 在强化学习领域中的经典论文,论文证明了策略梯度定理和在用函数近似 Q 值时策略梯度定理依然成立,本论文奠定了后续以深度强化学习策略梯度方法的基石 ...

  10. 关于深度学习的一点理解

    参考大神的文章https://www.zybuluo.com/hanbingtao/note/476663 感觉逐渐入门了深度学习,在这写点现阶段自己关于对神经网络和反向传播算法的理解.简单的神经网络 ...

最新文章

  1. 根据曲线上的采样点拟合直线
  2. #pragma pack的作用
  3. linux文件目录和属性知识,Linux文件和目录属性
  4. (1.1)HarmonyOS鸿蒙中Ability概念及意义
  5. odoo tree视图过滤数据_数据存储结构 LSM Tree PK B TREE (从底层了解数据库设计)...
  6. web developer tips (29):在web应用项目里启用“编辑并继续”功能
  7. IIS配置启动.net项目时报错:“/”应用程序中的服务器错误。
  8. 软件设计师备考全攻略(附本人笔记)
  9. 申报深圳市专精特新中小企业需要哪些条件,及有什么好处
  10. 排列组合解析与例题总结
  11. STM32—驱动RFID-RC522模块
  12. html屏幕缩小图片不失真,html图片失真怎么办
  13. 冰桶算法在监控软件中有哪些用途
  14. 【Deepstream-gst-metadata-test例子解析】
  15. 小技巧:如何创建公共邮箱?教育邮箱创建哪个好?
  16. 扩展欧几里得的几个定理以及证明
  17. Word及Excel文档的Python脚本处理
  18. 李宏毅线性代数笔记7 子空间
  19. 我的第一行Android代码-常用布局
  20. Java毕业设计:养老院管理系统(Springboot项目)

热门文章

  1. UCGUI窗体管理及消息处理机制分析
  2. 【Android测试】AndroidStudio通过UIAutomator进行测试
  3. Python数据分析入门(1)——数据分析基础步骤知识
  4. 如何把Excel转成html table表格代码
  5. SVN创建分支与合并
  6. 曼昆 宏观经济学 笔记
  7. JSON转Map、List、某个对象
  8. 怎么做一个专业的软件安装包?
  9. Computational Social Science计算社会学-《Science》文章翻译
  10. 《代码整洁之道》精读与演绎----毛星云