天天看点

Multi-Layered Gradient Boosting Decision Trees(mGBDT) 笔记

自去年周志华老师提出了“深度森林”后,有重磅提出了多层梯度提升决策树模型。提出通过堆叠多个回归 GBDT 层作为构建块,并探索了其学习层级表征的能力。此外,与层级表征的神经网络不同,他们提出的方法并不要求每一层都是可微,也不需要使用反向传播更新参数。本文旨在对该paper进行解读,转载请注明出处。

本文主要回答了两个问题:

1、我们是否可以用非可微组件构建多层模型(比如使用树集成来获得分层分布式表征),从而中间层的输出可以被当作分布式表征?     可以,也就是本文提出的Multi-layered GBDT(但是事实上分布式表征能力还值得探讨,个人感觉实验有点弱)

2、在没有反向传播的帮助下,如何训练这种模型(非可微组件构建的多层模型) Step1: 训练(or 初始化)每一层的输出 F。F的训练是引入“pseudo-label”  z 后通过类似GBDT的方法学习出来的(具体步骤见伪代码)。 Step2: 训练“pseudo-inverse” mapping G。 这里事实上可以认为是auto-encoder的一个类似(后半部分,前半部分为F)。这里面有一个比较有趣的技巧,就是在训练的过程中引入白噪声,增强鲁棒性。 注:训练好G后,默认为G与F的逆函数相同,这就是“pseudo-label”  z 的回传更新方式。有了这个,原问题就变回了GBDT的问题了。

Multi-Layered Gradient Boosting Decision Trees(mGBDT) 笔记

图1. mGBDT的训练过程

Multi-Layered Gradient Boosting Decision Trees(mGBDT) 笔记

图2. Auto-encoder示意图(图片来源于网络)

尽管本文是一篇非常有启发性的工作,但我还是认为文章中也有一些地方值得商榷:

    1、Theorem1中 “preserve the isometry on its neighbors” 的假设太强,在实际应用中很难达到。这也似乎意味着,训练不一定会朝着loss变小的方向。

    2、实验中性能的提升并不太明显,而且大家更关心的大概是在MNIST甚至是ImageNet上能不有中间神经元打开出现点线,甚至“一只猫”的效果来证明中间层具有表征能力。

继续阅读