再来看下Layer-wise训练。当我们可以把一个系统解构成分层解构时,我们可以求助于Layer-wise训练,这时每一层的训练目标可以加入一些先验知识。这种方法有优点也有不足,不再展开。但是,如果一个系统不能分割为逐层结构,我们很难找到类似layer-wise的训练手段,End-to-End训练是比较好的选择,这时除了神经网络也没有更好的选择。 总之,周老师的工作无疑开启了一个很好的方向,要想真的Alternative,里面还有很多东西需要研究。 知乎原文链接:https://www.zhihu.com/question/56474891/answer/149470584 实验结果好,实际效果有待验证 【作者:付鹏,今日头条】 我个人的想法是,这个idea能work是能想象出来的,但是能不能有像paper中描述类似『万金油』的作用,还需要更多检验。 先放上对照试验结果:
可以看到,无论是人脸识别(图像),情感识别(NLP),音乐分类问题等等,都取得了很厉害的结果。 更厉害的是,paper号称『gcForest 具有少得多的超参数,并且对参数设置不太敏感;实际上在我们的实验中,通过使用相同的参数设置在不同的域中都获得了优异的性能,并且无论是大规模还是小规模的数据,它的工作都很好。』 这听上去就很惊悚。没有更多细节的情况下不好妄加揣测,但是从已有的paper可以分析一二。 一、这个deep forest 本质上仍然是一个tree ensemble 方法 ensemble method是周志华的强项,atv直播,这个deep forest看起来是周在ensemble method 借鉴了deep learning之后的一个成果。 周称这个算法叫『ensemble of ensemble』, 实际上就是指用ensemble模型得到的结果级联(concat),再作为新的ensemble模型的输入再进行ensemble,有点类似多层神经网络的做法。
上图是原理图,可以看到,类似NN的做法,多个森林的结果concat后输入下一层,层层过后最终输出final prediction。 在gc forest中,每层选择的输出结果就是当前层每个森林对问题的预测的输出结果的级联,举例子,假如某一层有2000个森林,一个2分类问题,那么该层输出就是2000*2 = 4000维。 二、通过完全随机打到ensemble要求的『多样性』 ensemble最重要的一点就是模型要有多样性,这样的ensemble才有意义,所谓『和而不同』。 周对这个的做法是,输入层采用两种不同的森林,见上图蓝黑区分。 一种是传统的Random Forest,随机取个特征传入,d为特征维数,是很传统的tree ensemble 方法。 另一种是完全随机构造的森林,complete-random tree forests。随机选择特征,随机选择split value,直到分类变纯或者样本过少。 我的理解是,前者保证了一定的算法效果,后者则增加了一定的多样性。 三、学习NN那一套先进的方法来进行原始特征的处理 DL能够work,不仅有网络的功劳,还包括天马行空的feature engineering的功劳,比如CNN的卷积操作,RNN对序列问题的处理。 gc forest就把这些和网络关系不大的东西学来作为自己输入的预处理。
这些特征的处理是理所应当的,对特定问题进行特定的特征工程来提升模型效果是必做的事情。 -------------------------------------- 然后,『啵儿』的一测,在诸多领域就吊打了诸多模型。 对此,还是要等待代码出来实测一下,不敢多说。 一点个人想法: 1. 这个idea某种程度是可以work的,原因在于tree ensemble模型是经过验证能够学习到高级特征的,Facebook早先就曾经成功尝试过用GBDT的某一层输出放到LR模型里面来进行CTR预测,取得了不错的结果:https://research.fb.com/publications/practical-lessons-from-predicting-clicks-on-ads-at-facebook/,这说明了至少tree ensemble模型的输出其实很make sense。 (责任编辑:本港台直播) |