《Deep Forest: Towards an Alternative to Deep Neural Networks》理解

论文下载地址:http://xueshu.baidu.com/s?wd=paperuri%3A%28637f02600a538dc721ff4c3213ce2b7a%29&filter=sc_long_sign&tn=SE_xueshusource_2kduw22v&sc_vurl=http%3A%2F%2Farxiv.org%2Fpdf%2F1702.08835&ie=utf-8&sc_us=13086283128763159927
当前的深度模型全部都是神经网络。这篇论文展示了如何构建深度森林(deep forest),为在许多任务中使用深度神经网络之外的方法打开了一扇门。

gcForest(multi-Grained Cascade forest 多粒度级联森林)是周志华教授最新提出的基于决策树的集成方法(ensemble method)。核心思想:利用级联森林方法去学习生成模型。
gcForest模型构建分为两个阶段:
(1) Multi-Grained Scanning(多粒度扫描):生成特征
(2) Cascade Forest(级联森林):经过多个森林多层级联得出预测结果

1、Cascade Forest(级联森林)

《Deep Forest: Towards an Alternative to Deep Neural Networks》理解
Figure1 : Illustration of the cascade forest structure

级联森林的构成:级联森林的每一层都是由多个森林组成,而每一个森林又是由好多个决策树(Decision Tree)组成,所以这种组合是集成的集成!其中每一层的随机森林和完全随机森林保证了模型的多样性!
(1) 论文中每一层有4个森林,2个随机森林(黑色)和2个完全随机森林(蓝色)。
(2) 每个完全随机森林包含500个(超参数)完全随机的决策树,每个决策树的每个节点都是随机选择一个特征做分裂,直至每一个叶节点包含的实例属于同一个类;每个随机森林也是由500个决策树组成,决策树的每个节点随机选择√d 数量的特征作为候选(d是输入的总特征),然后选择基尼系数值最小的特征做分裂。
(3) 其中级联中的每一级接收到由前一级处理的特征信息,并将该级的处理结果输出给下一级。

下面看一下每个森林是如何进行决策的:

《Deep Forest: Towards an Alternative to Deep Neural Networks》理解
Figure 2: Illustration of class vector generation

论文中以三分类为例,森林中的每棵树对输入的x进行分类时,都会得到一个属于每一个分类的概率,三分类,也就产生了一个三维向量,将所有的树产生的向量进行取平均,就产生了最终的forest生成三维向量。
回到figure1中每一层中有四个forest,也就生成了4个3维向量,然后将这12个增强特征连同输入特征作为下一级的输入,在Cascade的最后,将这4个forest产生的3维向量取平均,哪个概率最大,最大值对应的类别,作为最后的预测结果!

2、Multi-Grained Scanning(多粒度扫描)

《Deep Forest: Towards an Alternative to Deep Neural Networks》理解
Figure 3: Illustration of feature re-representation using slid-
ing window scanning

论文中分别对序列数据和图像数据的原始输入特征做多粒度扫描处理。
对于序列数据,假设我们输入的原始特征是400维,扫描窗口大小是100维(默认步长为1),这样就得到301个实例100维的特征向量,再将所有的向量用于训练这两种森林,得到两组301个3维的特征向量,每个100维的特征向量对应一个3分类的类向量,最后将所有的特征向量连接起来,即得到1806维向量作为cascade的输入。
维数的变化:1个实例400维->301个实例100维->2个301个实例3维->1806维(301x3x2)

对于图像数据的处理和序列数据一样,当输入20x20的图片,用10x10的矩阵滑动框,得到121个10x10的矩阵,同样,将这些矩阵经过两种forest的处理,分别产生121个3维的向量,最后将所有向量连接起来作为cascade的输入。

3、gcForest整体流程

《Deep Forest: Towards an Alternative to Deep Neural Networks》理解
Figure 4: The overall procedure of gcForest

将figure1与figurre3合并起来,就组成了整个过程。
(1) 原始输入是400维的向量,使用不同尺寸的滑动窗口,100-dim,200-dim,300-dim,经过多重forest的处理,分别得到1806-dim,1206-dim,606-dim的向量,作为cascade的原始输入。
(2) 输入的特征经过每层森林输出12-dim的类别概率向量,连接原始输入作为下一层输入。
(3) 停止条件:迭代效果不能提升就停止,最后用4个森林输出的3-dim类向量求平均值,最大值对应的类最为最终结果。

4、实验结果分析

论文中分别对图像分类,音乐分类,情感分类,人脸识别,手部运动识别,小数据集上进行了实验验证,均取得了最好的效果。

5、总结

gcForest性能较深度神经网络有很强的竞争力,较深度神经网络容易训练得多 gcForest具有少得多的超参数,并且对参数设置不太敏感,在几乎完全一样的超参数设置下,在处理不同领域的不同数据时,也能达到极佳的性能,即对于超参数设定性能鲁棒性高。 训练过程效率高且可扩展,适用于并行的部署,其效率高的优势就更为明显。 gcForest在仅有小规模训练数据的情况下也表现优异。

以上内容是我对该论文的个人理解,有不对的地方请指正!