论文——Deep Forest: Towards an Alternative to Deep Neural Networks - 周志华老师深度森林第一篇

在“Deep Forest: Towards an Alternative to Deep Neural Networks”(论文网址见文章最后)这篇论文中,提出了除利用神经网络的深度学习以外的基于树的深度方法gcForest。

这篇深度森林论文中使用的是多粒度级联森林gcForest,深度学习取得成功的主要原因是有:有逐层的处理、有内部特征的变化、有足够的模型复杂度。

类比于这些原因,周教授提出的多粒度级联森林中,使用级联的结构使得上一层森林的结果作为下一层森林的特征输入来得到逐层的处理。如下图所示:

论文——Deep Forest: Towards an Alternative to Deep Neural Networks - 周志华老师深度森林第一篇

在级联结构中,为了鼓励多样性(多样性是集成方法的关键),在每一级中使用两个完全随机森林和两个随机森林构成,每个森林都包括500棵树。每一级的输出是按照如下方式进行的,如下图所示,每个森林会有一群树,假设和图中一样有三棵树,对于每个输入的实例会根据每棵树来进行路径选择,最终到达一个叶节点,每个叶节点不一定是纯叶节点,故可以得到该叶节点的类值分布向量,每棵树都有一个类值分布向量,图*有三棵树,可得到三个类值分布向量,最终对三个向量求平均可得到一个森林对于该实例的类值分布向量,共有四个森林(两个完全随机森林和两个随机森林),故一级可以得到4*3=12个特征(4个森林,每个森林有一个类值分布向量,本例中类值有3个),得到的该特征作为下一级的输入。

论文——Deep Forest: Towards an Alternative to Deep Neural Networks - 周志华老师深度森林第一篇

此外对于原始的训练集,gcForest通过多粒度的方式,即采用不同的滑动窗口得到基于原始训练集改变的特征来进行内部特征的改变。如下图所示,对于一个原始特征为400维的实例,可以采用100个特征的窗口大小,则可以产生301个特征向量,原始特征如果不是序列关系,是空间关系,也可以,如下面的400个图像像素组成的20X20面板,可以使用10X10的窗口大小来产生121个特征向量,下面展示的只是使用一个滑动窗口的例子,还可以使用多个不同大小的滑动窗口来生成不同的粒度特征向量。

论文——Deep Forest: Towards an Alternative to Deep Neural Networks - 周志华老师深度森林第一篇

gcForest的整体流程如下图所示,开始对于一个实例可以使用不同窗口大小的滑动窗口来生成特征向量作为多个级别的粒度输入。

论文——Deep Forest: Towards an Alternative to Deep Neural Networks - 周志华老师深度森林第一篇

另外,gcForest的层数是自动调整的,训练模型中使用了训练集与验证集,每增加一个新的层,整个级联的性能将在验证集上进行估计,如果没有显著的性能增益,训练过程将终止,从而得到最终的gcForest,能够自适应的获得模型的复杂度,所以gcForest对于小数据集也是很适用的。

最终经过实验得到gcForest在各个领域均能获得较高的准确率,且一个参数适合多个任务,能够很好的跨任务使用,使得gcForest更容易被训练,且减小了调参花费。该论文的深度森林思想为许多任务的深层神经网络的替代打开了一扇门。

论文网址:https://cs.nju.edu.cn/zhouzh/zhouzh.files/publication/ijcai17gcForest.pdf

加油✌