关于Boosting算法的一点思考

读周志华老师相关文章有感

早上起床看到朋友圈很多同学在转发南大周志华老师的这篇文章 《Boosting学习理论的探索 —— 一个跨越30年的故事》,文章主要是讨论了过去多年来对Adaboost理论分析的一系列工作与思路。周老师文章写得挺好的。我这里斗胆给一些自己的看法。

我一直认为boosting系列的算法是统计学习方法非常有意思的一个家族:发展至今已经有了相对完善的理论体系;参数往往不需要多少调优就可以在绝大多数场景下得到很强的一个baseline(往往需要做深度学习的同行花非常大的力气才有可能超越);更有意思的是可以感受到boosting这一系列方法与其他机器学习方法有着很不一样的看待问题的思维,这种思维带来了大量对学习方法的insight。当然还有其他有趣的地方,这里就不再赘述了。

当然,boosting也有明显的缺点。最大的缺点之一就是boosting无法做online learning,而这在许多场景(如广告,推荐等)中是至关重要的。这个缺点也是为什么facebook当年要在gbdt后面接一个logistic regression的原因。还有一个明显缺点是gbdt在极大规模且稀疏的特征集(同样是推荐、广告中常见的情况)上会有明显的性能下降,甚至有时候不如粗暴的logistics。这个原因有很多,这里就不展开讲了(留作习题给有余力的读者)。不过瑕不掩瑜,boosting方法无疑问是机器学习史上的一颗明珠。

出于对boosting的喜欢与看重,我在蔡老师的新机器学习课程中也专门增加了这部分的作业,主要是让同学们去实现一个Adaboost,并探索为何多层的决策树以及其他强学习器作为Adaboost的基学习器的效果会不如直接用decision stump。这个探索实际上就对应了这篇文章中提到的icml paper以及其他一些相应工作的结论。除此以外,出于对gbdt的偏爱,我还出了一个证明题,让同学们探索并证明Adaboost与gbdt的关系。注意这个问题在李航的《统计学习方法》中有提到,但是他给出的论断是错误的或者至少是不完整的。那么正确的结论是什么呢?(同样留作习题)

再斗胆发表一些与周老师文章不同的观点。首先,我想学术界早期并没有认为Adaboost不会过拟合。Adaboost自然是会过拟合的,只是这个过拟合会来得比较晚一些,有时候要在训练误差达到很低之后很久才会过拟合。但是只要基学习器的数量设置得够多,这个过拟合是很容易观察到的。我出的作业里也有这一部分的设计。而gbdt的过拟合之容易就更不必去提了,为此xgboost中设计了大约有几十种缓解过拟合的方式(我的作业里同样要求同学对其中最常用的几个进行实现与讨论)。adaboost中有意思的现象是为何这个过拟合会来得比其它学习方法更晚,而这个原因也在周老师的文章中提到了,这里就不再赘述。另外我觉得文中对布瑞曼(Breiman)的工作的讨论有失公平。Beriman的Arc-gv效果不如adaboost,并不能说明间隔(margin)作为boost学习基石是错误的;恰恰相反,后人的所有研究都证明margin是一个非常正确关键且深刻的insight。Arc-gv不work的原因除了icml那篇paper中提到的实验setting问题以外,还有一个重要原因是最小间隔min-margin推出来的bound太松了(学过统计学习理论的同学应该都懂),这其实也是adaboost第一个理论分析的结论不能解释adaboost特殊现象的原因。而后人的工作(包括周老师自己的)本质上就是在追寻基于其他与margin相关的统计/物理量的更紧的bound的证明。当然,我想周老师也是为了追求文章的浅显易懂与跌宕起伏的感觉,所以才故意这么去写。不过我这里还是补充几句,以免一些刚入行的同学真的误解了。

最后,我们能从这个故事中学到什么呢?这个跨越30年的故事是有其研究主线的。我想其中最值得关注的是:1. adaboost中有趣的现象引起大家的思考与探索 2. 漂亮的min-margin导出的Arc-gv不work推动着大家思考原因,并探寻其他基于margin更紧的bound。这给我们一些启示。1. 研究/工程中碰到的奇异现象往往可能包含着重要的insight,往往是很好的问题,也许会带来很好的研究。2. 绝大多数人的研究不是孤立的,而是对已有工作中存在问题的思考与探索解决。

另外很有意思的一点是,周老师果然是不放过任何diss deep learning的机会:“因此不仅要对算法进行实验测试,更要进行理论分析,因为有了理论上的清楚刻画,才能明白某个机器学习算法何时能奏效、为什么能奏效,而不是纯粹“碰运气” ”。至于这个观点是否正确,我想大家也可以有自己的思考。实际上现在有巨大量的实验科学(包括深度学习),我想只要实验做得够完善,效果又确实出众,那么很多时候就是可以抓老鼠的好猫。就算没有对应理论,从实验中也可以大致知道什么时候work、why work,而不是“纯粹碰运气”。当然,对理论的追求也是合理且必要的,只是也许没必要“万般为下品,唯有理论高吧”。

最后的最后,有同学提到了dl research的现状,我也分享一下自己对现在这方面的看法。首先,不管是黑猫白猫,能抓到老鼠就是好猫:dl确实有诸多缺点,但毫无疑问它也是有极大的价值的,是ml史上的里程碑之一。其次,改善鱼龙混杂的research现状需要大家共同努力。倒不是说反对大家灌水,我觉得灌水也是有一些价值的,而且大家都要吃饭的嘛。不过我还是希望大家尽量不发有造假实验结果的文章;尽量不发为了中paper而故意给出误导甚至是错误claim的文章;不要为了增加自己文章的“novelty”而故意不去cite。然后大家当reviewer的时候也可以认真一些,同时尽量拒绝别人来走关系…我作为reviewer也承诺会认真对待每一篇paper。再次,鱼龙混杂的现状更需要大家有critical thinking的能力。最后,追寻真理的道路是漫长又充满艰难险阻的,往往需要一代人甚至几代人的努力。dl或者说ml research的现状不算特别令人满意,但我相信这只是暂时的,我们终会走过这个时期,迎来更光明的未来。引用周老师文章中提到的Beriman那篇论文中的一句话作为收尾:So if the F-S explanation is only a partial answer, then where are we? 我想目前所有的dl research最多都是个partial answer。Where are we? We are still on the road. 共勉。

Avatar
Jinming Hu
Master Student in Machine Learning

My research interests include machine learning, data mining, deep learning, computer vision, operating system, and database.