论文阅读:深度森林

论文地址:https://arxiv.org/pdf/1702.08835.pdf
相关代码:https://github.com/kingfengji/gcForest

深度森林是南大周志华老师前两年提出的一种基于随机森林的深度学习模型。

当前的深度学习模型大多基于深度学习神经网络(DNN),其中每一层都是可微的,在训练过程中通过反向传播调参。而本篇介绍的深度森林算法基于不可微的子模型,该算法把多个随机森林串联起来组成了深度学习模型。

作者认为深度模型的优越性主要在于:深度网络多层建构;模型特征变换;模型足够复杂。文中提出基于树模型的gcForest也可满足以上三点。相对于深度学习神经网络,它还有如下优势:使用较少的超参数;模型的复杂度可根据数据情况自动调整;使用模型的默认参数往往也能达到不错的学习效果。

DNN的缺点:

  • DNN超参数太多,调参难度大,需要大量技巧
  • DNN一般在大数据集上训练效果好,在中小数据集上表现较差,标注成本大
  • DNN是难以解释的黑盒模型
  • DNN需要事先设计网络结构,它的设计往往比实际需要的复杂度更高
  • 在很多数据比赛中GBDT类模型效果往往更好

灵感

作者设计灵感主要来源于深度学习模型和集成模型。

深度学习模型利用层层堆叠方法提升效果,因为即使给浅层网络设置很多单元,效果也不如深层网络;另外,决策树及GBDT决策树算法虽然也是层层推进,但效果也不如DNN的原因可能是它不能逐层提取更多特征,也就是说不支持模型内部特征转换(feature transformation),且这些机器学习模型只有有限的复杂度。

集成模型中多模型集成比单模型有更好泛化效果。子模型需要兼顾准确性,多样性,互补性。比如森林中设置树模型多样性常常采用的方法有:数据采样方式不同,特征不同,模型参数不同,定义的输出不同等。

实现方法

森林堆叠

gcForest方法集成了多个森林,具体构建方法如下:

此例解决的是一个多分类问题,从左向右运行。模型输入是左侧的Input Feature Vector,最终输出为输入x属于三种类别的概率;模型深度为N层,每层包含两个完全随机树森林和两个随机森林;每一层的输入是前层的输出和基本特征(Input Feature Vector),输出为12个新特征(4模型x3类别)并传向后一层;使用验证集评价模型效果,当模型不再变好时停止继续训练。

多粒度扫锚

DNN的重要优点在于识别出特征相关性,gcForest使用给特征分组的方法加入对特征相关性的支持:

假设输入400维特征,设置窗口宽度100,可取到301组特征,代入模型,产生903个输出(子模型输出x属于三个类别的概率301x3=903),如果使用两个森林ForestA和ForestB,则经过一层之后,输出1806个新特征。

再延展到更加复杂的结构:使用不同大小的滑动窗口:

示例中分别使用了大小为100、200、300的滑动窗口,并使用不同的森林Forest A/B/C分别处理,以达到更好效果(具体效果见实验部分)。

参数对比

从参数对比中可以看到,DNN需要设计和尝试更多参数,而gcForest参数少,并且使用默认参数往往也能达到不错的效果。

实验

文中实验主要在DNN擅长的领域,如图片、音频、自然语言处理等领域,使用中大规模数据对比多模型的使用效果。

实验结果

图片分类:使用MNIST数据集,其中train 60000,test 10000,对比效果如下:

人脸识别

另外,文中还对比了音乐片断分类、手势识别、影评情感分类等,详见论文。

低维数据与高维数据

文中测试了模型在三种低维数据集上的表现LETTER:16个特征,训练集16000测试集4000;ADULT:14个特征,训练集32,561测试集16,281,YEAST:8个特征训练集1038测试集446。

也测试了在高维数据集CIFAR-10:训练集50000测试集10000图片,共10个类别,8192个特征。对比效果如下:

可以看到优化的DNN方法ResNet,AlexNet明显优于gcForest,而gcForest在DNN以外的其它方法中效果最优;并且可以看到经过多滑动窗口和将最后一层替换成gbdt后,gcForest方法也有明显改进。

运行时间

当使用25000实例5000特征,一层用时267.1秒。如果使用不同粒度,模型可以并行训练。

多粒度特征叠加

上图中使用多粒度特征时,将不同粒度提取的特征分别代入模型,此处实验将不同粒度提取的特征连接后统一代入模型,方法相对更简单,其效果与上述方法差别不大,模型效果对比如下:

使用方法

从github开源项目的demo中可以看到GCForest使用方法非常简单,类似Sklearn中的模型接口。

总结

文中讨论的gcForest在目前很多深度学习领域表现也不错,并非想使用它去取代目前的DNN模型,而是提出了另一种深度学习的实现方法和可能性。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值