64

深度深林阅读笔记

 4 years ago
source link: https://www.tuicool.com/articles/nUFBFbR
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

原文: Deep Forest:Towards An Alternative to Deep Neural Networks ,周志华,2017

该篇文章提出了深度森林 gcForest,这是一种决策树集成方法(decision tree ensemble approach),性能较之深度神经网络有很强的竞争力。深度神经网络需要花大力气调参,相比之下 gcForest 要容易训练得多。实际上,在几乎完全一样的超参数设置下,gcForest 在处理不同领域(domain)的不同数据时,也能达到极佳的性能。gcForest 的训练过程效率高且可扩展。实验中,它在一台 PC 上的训练时间和在 GPU 设施上跑的深度神经网络差不多,有鉴于 gcForest 天然适用于并行的部署,其效率高的优势就更为明显。此外,深度神经网络需要大规模的训练数据,而 gcForest 在仅有小规模训练数据的情况下也照常运转。不仅如此,作为一种基于树的方法,gcForest 在理论分析方面也应当比深度神经网络更加容易。

表征学习Representation Learning

无论是深度学习还是深度森林,归根到底还是一个表征学习的过程,通过训练学习,使得模型学习发现样本的表征feature,好的表征器能够获得好的feature用于后面的分类、回归等任务输入。所以目前表征学习期望能够获得更好的样本特征表示,只要特征足够好,分类函数本身并不需要复杂。

一般来说为了运用大量数据,学习模型的容量通常都很大,因此深度网络因其复杂的网络结构,深度,有很强的样本表征学习能力。而DNN网络其实就是广义线性模型的非线性叠加,神经元组成实现线性计算,非线性激活实现非线性叠加。因此DNN能够自动发现特征与标签之间的非线性关系,即可通过端到端的训练得到非线性的神经决策边界。

因此,本文的作者推测可以将这种性质用到其他合适的学习模型上,即将神经元这个基本结构替换成的了决策树产生了深度森林gcForest模型。

深度森林gcForest

深度神经网络中的表征学习主要依赖于对原始特征进行逐层处理,因为有误差反向传播,整个过程整个网络属于端到端同步训练。

gcForest受此启发,采用级联结构,其中级联中的每一级接收到由前一级处理的特征信息,并将该级的处理结果输出给下一级,但是没有反向传播,确定一级在不满足终止条件时,扩展新级。在扩展一个新的级后,整个级联的性能将在验证集上进行估计,如果没有显着的性能增益,训练过程将终止;因此,级联中级的数量是自动确定的。与模型的复杂性固定的大多数深度神经网络相反,gcForest 能够适当地通过终止训练来决定其模型的复杂度。这使得 gcForest 能够适用于不同规模的训练数据,而不局限于大规模训练数据。

通过级联结构,深度森林将模型作深。

在处理特征上,同样受到DNN启发。gcForest认为对于对序列数据,顺序信息是极为关键的,因此,用多粒度扫描来增强级联森林。具体的:类似于卷积网络的多核局部感受野实现,采用滑动窗口的方法,先生成若干个实例,然后通过实例生成两个森林,一个完全随机森林,一个随机森林,然后再把生成的两个森林生成对应的相同维度的“类向量”,最后把这两大类向量连接在一起,但应对的一般来说会采用多个不同大小的窗口做扫描,类似于多核卷积。

其中两中类型的随机森林保证集成子模型之间的差异性。

深度森林gcForest比深度网络DNN的优势所在

  • 集成性:gcForest属于一种集成的集成方法
  • 高性能:gcForest性能较深度神经网络有很强的竞争力
  • 参数少:gcForest所需参数少,容易训练
  • 鲁棒性:gcForest对于超参数的设置不敏感,鲁棒性高
  • 效率高:gcForest训练过程效率高且可扩展,适用于并行的部署
  • 扩展性:gcForest对于数据量没有要求,在小数据集上也能获得很好的性能
  • 解释性:gcForest作为一种基于树的方法,在理论分析方面也应当比深度神经网络更加容易
  • 自适应:gcForest 能够适当地通过终止训练来决定其模型的复杂度,使其不局限于大规模训练数据

关于深度森林的思考

  1. 广义线性模型的集成模型:神经网路是线性单元通过非线性激活的组合,深度森林是随机深林的集成组合,目的都为了进行样本的表征学习。如果保留级联和多粒度策略,可否替代其中的随机森林换做其他的简单分类器或者预测器,深度svm,深度lr,深度nb,深度knn
  2. 森林单元多样性选择可扩展,目前只用完全随机森林,随机森林,可尝试其他组合森林+svm+lr+nb+knn等各式各样的模型深度集成
  3. 所有实验没有在大规模数据上进行,模型的capacity在大规模数据集上并未体现,即便满足自适应扩展和自适应终止
  4. 集成是提升模型性能很好的策略,但是对于很多DNN模型其任务导向性太强,很难部署到一个新任务,即可迁移扩展性差。易于部署是学术界忽略的一个重要因素,本文提出的深度森林就很好的扩展性,能快速迁移到不同领域不同任务中。在非NLP和非图像数据集上,对于很多实际应用中的结构化数据(销售、推荐、商品等),通常较佳的 Kaggle 模型就是 xgboost 模型,相对于深度森林和深度网络更加快速易于部署实现。
  5. 当前的深度深林方法仅仅是从DNN到gcForest的初步尝试,目前能够实现的继续学习任务分类和回归,对于一些复杂的任务还无法实现。
  6. DNN+gcForest组合模型,因为gcForest没有误差传递,所以当前只能基于级联实现表征学习,是否可以将表征之后的feature组合DNN模型实现复杂的机器学习任务等等,实现复杂度和应用性的折中考虑。

深度森林应用

  1. 股票市场: 选股与择时——基于前景理论与深度森林算法
  2. 分布式深度森林: 分布式深度森林算法检测套现欺诈

深度森林延伸

Feng J, Zhou Z H. Autoencoder by forest [C]//Thirty-Second AAAI Conference on Artificial Intelligence. 2018.

Feng J, Yu Y, Zhou Z H. Multi-layered gradient boosting decision trees [C]//Advances in Neural Information Processing Systems. 2018: 3551-3561.

多层梯度提升决策树 Multi-Layered Gradient Boosting Decision Trees (mGBDT)

原文: Multi-layered gradient boosting decision trees

中文介绍: 深度森林第三弹:周志华组提出可做表征学习的多层梯度提升决策树 , 阅读笔记Multi-Layered Gradient Boosting Decision Trees

背景

  1. 多层特征表示在神经网络中得到了充分地应用;然而,当模型不可微时,如针对离散型数据或表格型等结构化数据时,GBDTs通常是此类数据的主流方法,但是,该类方法通常很难学习到较好的特征表示能力。鉴于此 ,作者提出了通过stacking多层GBDTs来构建一层一层的模块,通过此种层次结构来获取数据特征的分层表示能力。(
  2. 现今DL利用误差反向传播和梯度下降方法成为主流,然而,此类方法的基础是激活函数是可微的。其它方法包括使用目标传播(target propagation),实验证明:基于目标传播的方法表现弱于误差传播方法
  3. 针对离散型数据或表格型数据,基于树的集成学习算法RF或GBDTs是目前主流的方法;很大程度源于能够获取到数据的分层分布式表示(hierarchical distributed representation),针对此类数据类型,无法使用误差的链式传播算法(chain-rule),后向传播也变得不可能。
  4. 期望:(1)够构造一个 非可微的多层模型(multi-layered model with non-differentiable components) 用于特征的分布式表示形式,中间层的输出可以被当作分布式表征;(2)如果可以,如何将层次之间连接起来,在没有反向传播的帮助下,如何训练这种模型(非可微组件构建的多层模型)

因此本文期出了多层梯度提升决策树模型,其中心论点:多棵树的分层分布式表示(hierarchical distributed representations) 具有很大程度地来刻画数据的特性能力;更具象地:利用GBDTs来作为每层的块结构(blocks)来建立多层树结构的模型能够很好地将feature表示出来,与此同时,在训练时通过目标传播(target propagation)来进行优化,解决离散或者表格型结构化数据模型不可微问题。

把反向传播迁移到不可微的模型中,具体方法是用另外一个模型替代求梯度的过程,把梯度反向传播回去。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK