gcForest论文的价值

【转载】讨论|周志华教授gcForest论文的价值与技术讨论(微信群)

2017-03-03  全球人工智能



一、gcForest的理论:用决策树集成方法解决DNN不足

  


(模型的框架结构)


gcForest模型把训练分成两个阶段:G阶段(Multi-Grained Scanning)和C阶段(Cascade Forest)


这一步主要是feature extraction,具体做法和卷积神经网络类似(如下图),n*n的窗口滑动来获得raw feature,只不过这里不再有权值了,20*20大小的图片,用10*10的窗口按滑动步长1来取的话,会生成121个特征,然后直接将121个10*10像素的图放到Forest里面,产生121个三维的类概率向量,两个Forest就是2*121个三维类概率向量,以此类推。同理在用5*5或者15*15的窗口重复上述步骤,最后把所有向量聚合,形成一个维度非常高的feature。(重要的是,这个过程是全程受监督的,gcForest的feature extraction过程是受label监督的,而DNN的feature extraction过程是由高层BP传下来的梯度指导更新的,在DNN较深的情况下,高层传下来的梯度容易受到各种因素的影响而波动,这是gcForest优于DNN的一点。)



C阶段(Cascade Forest),它由下图所示的级联随机森林构成,每个Forest也是输出3维的类概率向量,有的同学会说那不是一步就完成了吗?当然不是的,如下图4个Forest输出的4*3维向量要和原Input聚合,再做为下一层的输入,以此类推,当我们发现结果已经较优了的时候,就可以停止,取平均后最大值对应的类作为输出。为什么要将输出和原Input聚合作为下一层的输入?这种做法我的理解是为了使得输出越来越向某一个值靠近,即让级联随即森林趋于收敛和稳定。



二、实验数据均高于其他算法:图像识别率98.3%、自然语言处理率89.32%


对比DNN:


- Level-wise training。避免了训练深度神经网络时非常复杂的learning dynamics。gcForest每一层每一个模型都是简单的监督学习。


- 超参数极少,训练不需要艺术。默认设置的gcForest表现就非常好。Level深度也是自适应,模型的表达能力和复杂度由gcForest训练时自己决定。gcForest最主要的超参数是,每一个Level用几个森林,每一个森林用几个决定树。本文里分别是每层四个森林,每个森林含1000个决定树。优化算法简洁,不再需要玄妙的tricks。而Deep Neural Networks的超参数就很多了,对于特定问题该用什么用的architecture很难预先知晓。最优化算法也需要艺术加工。


- 小样本学习优势显著。发挥了集成学习的特长。

最后想从Ensemble Learning和Deep Learning的角度讨论一下。


与其他算法对照试验结果:





可以看到,无论是人脸识别(图像),情感识别(NLP),音乐分类问题等等,都取得了很厉害的结果。
更厉害的是,paper号称『gcForest 具有少得多的超参数,并且对参数设置不太敏感;实际上在我们的实验中,通过使用相同的参数设置在不同的域中都获得了优异的性能,并且无论是大规模还是小规模的数据,它的工作都很好。』


三、部分知乎大神对于gcForest的评价 


复旦大学副教授 邱锡鹏:

周老师的工作无疑开启了一个很好的方向。

1)深度网络和神经网络的解构

其实,现在深度学习已经不再仅仅是多层神经网络了。现在的很多深层模型一般有一个比较复杂的架构,包含几个部件。每个部件分别由神经网络来实现。比如Neural Turing Machine,再比如AlphaGo。在这些复杂模型里神经网络已经部件化。

记得最早2014年时读了Jason Weston的论文[1410.3916] Memory Networks(https://link.zhihu.com/?target=https%3A//arxiv.org/abs/1410.3916)。作者构建了一个记忆网络的框架,每个部件可以是SVM或决策树等。当时觉得作者的想法太疯狂了,脑洞大开。但是,最后实现时还是采用了神经网络(原因见下)。

2)End-to-End训练和Layer-wise训练

当实现一个复杂的系统(比如问答系统)时,我们一般的想法是分解,有助于我们理解,然后一步步来实施。这里面有两个问题,一是这些分解的部件是松耦合,必须单独训练,且每个部件的优化目标和最终的系统目标并不完全一致。二是错误传播问题。神经网络出现以后这些问题都迎刃而解了,因为这些部件都可以是神经网络,并且还可以连起来一起End-to-End训练,因此最大的痛点消失。

再来看下Layer-wise训练。当我们可以把一个系统解构成分层解构时,我们可以求助于Layer-wise训练,这时每一层的训练目标可以加入一些先验知识。这种方法有优点也有不足,不再展开。但是,如果一个系统不能分割为逐层结构,我们很难找到类似layer-wise的训练手段,End-to-End训练是比较好的选择,这时除了神经网络也没有更好的选择。


今日头条 毛潇锋

从本质上的区别来看,如果把深度网络看作一栋从低到高,将低层特征聚集成高层语义表达而建起的高楼,那gcForest就是一道把由低到高各级特征(边缘,颜色,形状或者高层特征)一起翻炒的“大杂烩”。

周志华老师提出的gcForest真的有这么神吗?有的,实验结果为证。


你可能感兴趣的:(人工智能)