周志华先生最近发布了论文Deep Forest: Towards An Alternative to Deep Neural Networks
,做一些笔记如下。
一. 优点
- gcForest更易于训练,训练过程更加高效、可扩展;天生地倾向于并行运算:
1.1 相对深度网络更少的hyper-parameters
;
1.2 在PC上的训练时间可以与GPU设备相比;
1.3 小规模的训练数据也能达到较好训练效果。 - 比深度网络更易理论分析。
its performance is quite robust to hyperparameter settings, such that in most cases, even across different data from different domains, it is able to get excellent performance by using the default setting.
二. 结构
1. Cascade Forest
每一层都是由决策树森林组成,并且决策树森林越多样越好。为简单起见,我们的决策树森林由两个random forest
(blue)和两个complete-random tree forest
(black)组成。假设有三个类要预测,因此每个森林输出都是一个三维向量。
每个complete-random tree forest
包含1000个complete-random trees
,它通过在树的每个节点随机选择feature来让树分支,并且每个树生长直到每个叶节点只包含实例的一个类或者少于10个实例。相似地,通过随机选取根号d
个features作为候选(d
是输入特征的数目),并选择具备最好gini
值的用于切分,可得到具备1000棵树的random forest
。每个森林中的树的棵树是一个hyper-parameter
。
为了降低过拟合风险,每个森林会做k-fold cross validation,即训练数据会被使用k-1次并求均值,最后的均值才是最终输出给下一层的数据。
每新扩展一层,都会用验证集数据进行性能测试,若性能没有提升,则不会再进行扩展。因此本模型具备自动适应不同数据规模的能力。
每个森林内部的结构如下图所示:
2. multi-grained scanning
即 multi sliding window