一、什么是深度森林?
传统DNN的不足:
1、需要大量的数据集来训练;
2、DNN的模型太复杂;
3、DNN有着太多的超参数
gcForest的优势:
1、更容易训练;
2、性能更佳;
3、效率高且可扩展、支持小规模训练数据。
深度森林是一个新的基于树的集成学习方法,它通过对树构成的森林进行集成并串联起来达到让分类器做表征学习的目的,从而提高分类的效果。
二、深度森林的结构
其结构主要包括级联森林和多粒度扫描。
1.级联森林
级联森林的构成:级联森林的每一个Level包含若干个集成学习的分类器(这里是决策树森林),这是一种集成中的集成的结构。
为了体现多样性,这里用了两种代表了若干不同的集成学习器。图中的级联森林每一层包括两个完全随机森林(黑色)和两个随机森林(蓝色)。这两种森林的主要区别在于候选特征空间,完全随机森林是在完整的特征空间中随机选取特征来分裂,而普通随机森林是在一个随机特征子空间内通过基尼系数来选取分裂节点。
我们都知道决策树其实是在特征空间中不断划分子空间,并且给每个子空间打上标签(分类问题就是一个类别,回归问题就是一个目标值),所以给予一条测试样本,每棵树会根据样本所在的子空间中训练样本的类别占比生成一个类别的概率分布,然后对森林内所有树的各类比例取平均,输出整个森林对各类的比例。也就是每个森林都会生成一个长度为 C 的概率向量,假如 gcforest 的每一层由 N 个森林构成,那么每一层的输出就是 N 个 C 维向量连接在一起,即 C*N 维向量。gcForest采用了DNN中的layer-by-layer结构,从前一层输入的数据和输出结果数据做concat作为下一层的输入。这个向量然后与输入到级联的下一层的原始特征向量相拼接(图 中粗红线部分),作为下一层的输入.这样我们就做了一次特征变化,并保留了原始特征继续后续处理,每一层都这样,最后一层将所有随机森林输出的三维向量加和求平均算出最大的一维作为最终输出。
例如,