机器学习 刀光剑影 之屠龙刀

机器学习是一个大武林,这里面江湖人士颇多,“发明”出来的算法兵器也是五花八门,浩瀚如海,足够你数上三天两夜了。然而,这些兵器行走江湖能用的不多,真正无敌的更是屈指可数,或许只有屠龙刀倚天剑了。正如江湖传言:武林至尊,宝刀屠龙,号令天下,莫敢不从,倚天不出,谁与争锋? 机器学习中还真有这么一把屠龙刀、一把倚天剑。用上了这两样兵器,保你平平安安创四方,潇潇洒洒走江湖。今天,就先絮叨絮叨这把屠龙刀。 在下以为,集成学习就是这把屠龙刀。为什么集成学习能称为“屠龙刀”?因为它立竿见影,好像“刀过竹解”;因为它从不过时,俨然“宝刀未老”。它是一把刀,但不是一把普通的刀;它是一把锋利的刀,一把可以屠龙的刀。集成学习在众多的机器学习/数据挖掘竞赛中往往探囊取物,屡试不爽,像屠龙刀一样当之无愧排行兵器谱第一。 集成学习是什么:

通俗的讲,就是多算法融合。它的思想相当简单直接,以至于用一句俗语就可以完美概括:三个臭皮匠,顶个诸葛亮。实际操作中,集成学习把大大小小的多种算法融合在一起,共同协作来解决一个问题。这些算法可以是不同的算法,也可以是相同的算法。对于前者,效果一般也不差,但出发点实在过于简单粗暴,简直就是一介武夫,就不过多介绍了。这里着重谈一下如何使用同一个算法进行集成学习(虽然只关注这个话题,但里面很多思想对前者也是适用的)。

用好集成学习有两个关键点:

1)怎么训练每个算法?2)怎么融合每个算法?围绕这两个关键点,有很多方法提出来,极具代表性就是大家熟知的Bagging和Boosting方法,其中Bagging和Boosting也是当今两大杀器RF(Random Forests)和GBDT(Gradient Boosting Decision Tree)成功的主要秘诀。 注意,这里我用的是“方法”,而不是“算法”,个人以为“方法”比“算法”更高一层,更抽象些,更具有普适性。 集成学习是典型的实践驱动的研究方向,它一开始先在实践中证明有效,而后才有学者从理论上进行各种分析,这是非常不同于大名鼎鼎的SVM(Support Vector Machine)的。SVM是先有理论,然后基于理论指导实现了算法。这是机器学习研究中少有的理论指导的创新案列。直到如今,它还是部分学者用来看轻工业界发明的算法的主要证据之一。为了证明我的观点,我们就回顾下集成学习中最主流的RF的发展历程。1995年,AT&T bell实验室的香港女学者Ho Tin Kam最早提出了RF,那个时候还不叫Random Forests, 而叫RDF(Random Decision Forest),她主要是采用Random Subspace的思想使用DT(Decision Tree)来构建Forest。随后的几年里,又有一批人相继提出了大大小小的一些类似或改进的工作,但都还不足以载入史册。历史的年轮不知不觉来到了2001年,统计学家Breiman已开始在机器学习界站稳脚跟。他在RDF基础上又引入了Bagging技术,并提出了沿用至今的Random Forests。虽然老人家在那篇后来被引用几千次的文章里进行了“理论”分析,并给出了一个看似不错的误差上界,但其实那个公式只是个中看不中用的数学符号,没有太多的指导意义。而且,老人家在回顾Ho的工作时,相当轻描淡写,不知道何故,谨慎怀疑他对她是否有误会?(批注1)2005年,Breiman离世,集成学习理论突破的使命交给了后来人。 2005-2015这十年里,集成学习方面的论文陆续有放出,但遗憾的是,个人认为集成学习的理论进展还是非常缓慢。 大多工作都是围绕一个特定的算法做分析,始终没有一个大一统的理论站稳脚跟。“理论指导实践”,这是机器学习研究者们渴望已久的灯塔,但它太远太远,以至于我们只能在茫茫迷雾中怀着这份渴望摸索前行。回顾集成学习理论的发展历程,为数不多的有用结论之一可能就是---从bias-variance分解角度分析集成学习方法(批注2),人们意识到:Bagging主要减小了variance,而Boosting主要减小了bias,而这种差异直接推动结合Bagging和Boosting的MultiBoosting的诞生。值得一提的是,我国学者在集成学习领域并不落后,以南大周志华教授为代表的学者的一系列工作走在了世界前列,如选择集成技术、集成聚类技术、半监督集成技术等等。周志华老师还最早将Ensemble Learning翻译为“集成学习”,是国内这一领域的先行者。

实用的嫁接法: 近年来,除了上面的这些方法外,还有一些新方法涌现出来,这里就特别讨论下个人认为比较有创意而且很实用的方法,我称之为“嫁接法”。据百度百科的说法--所谓嫁接,是指植物的人工营养繁殖方法之一。即把一种植物的枝或芽,嫁接到另一种植物的茎或根上,使接在一起的两个部分长成一个完整的植株。把这个概念迁移到集成学习领域,就是把一个算法嫁接到另外一个算法上,从而形成一个新的完整的算法。为什么要这么做呢?因为嫁接后有好处啊。回想一下当下我们吃的各种水果,不少都是嫁接后的产物。不严格说来,袁隆平的杂交水稻也是一种高级的嫁接产物。嫁接后的水稻抗病害,易种植,产量还高。同样,把两种算法嫁接在一起,也能达到类似的好效果。 算法嫁接之后为什么会好呢?回答这个问题得从一个基础问题讲起。以分类算法为例,所有算法大致分为线性和非线性两类,线性算法如LR,NB,ME之类;非线性算法如DT,RF,NN之流。一般来说,线性算法训练和预测的效率较高,但效果较差,而且非常依赖人的知识。如广告CTR预估中常用的LR算法,要想达到一定的效果,需要人工或半人工的进行庞大的特征工程--进行特征的变换组合等预处理工作。有过LR使用经验的同学一定对这个过程刻骨铭心,没有一定年限的积累是做不好线性模型的。而非线性算法如DT,理论上是能自动地做这些繁琐工作的(虽然效果不一定好)。如果能借助这些算法减少人的工作,岂不大快人心?没错,LMT(Logistic Model Tree ) 应运而生,它把LR和DT嫁接在一起,实现了两者的优势互补。刚刚过去的一年,网上近乎疯传的Facebook的那个GBDT+LR的文章,只不过是这个思想的延续,初看下来实在没啥可追捧的。不同意?先别急,这样做的确还有一些其他好处,咱们得换另外一个角度来看GBDT+LR。对比GBDT和DT会发现GBDT较DT有两点好处:1)GBDT本身是集成学习的一种算法,效果可能较DT好;2)GBDT中的DT一般是RT,所以预测出来的绝对值本身就有比较意义,而LR能很好利用这个值。这是个非常大的优势,尤其是用到广告竞价排序的场景上。最后需要说明的是,这只是从一个角度来理解嫁接的好处,还有其他方面就不一一展开了。

集成半监督学习:

接着,唠叨几句红红火火的集成半监督学习。坦白讲,虽然它在一些数据集或场景下取得了一定效果,个人一直偏执地不看好这个方向。个人拙见:具体到分类问题上,集成方法要想成功,要依赖的有标记的样本量要大,至少可能是要大于单个算法的。半监督学习技术虽然可取,但没有一定量的标记样本也是瞎折腾。两者都对样本要求如此苛刻,融合在一起岂不是更坏?另一方面,两派人的研究方法论不同,根本不看好融合在一起的集成半监督技术(批注3)。所以即便是co-training这样训练两个学习器的算法,实际预测时也只使用其中一个。然而,随后这方面一系列的工作有理有据,着实给人们上了生动的一课。值得一提的是,我国南大数据挖掘团队对这个领域的发展起到了推动作用,他们先是做了tri-training,co-forest等算法,验证了引入集成对半监督学习的好处。后来又在理论上证明了半监督学习引入集成会带来很大好处。而对集成学习者,他们揭示出引入半监督学习可以不牺牲个体学习器精度就能提升diversity,并设计出UDEED算法。这一系列工作得到了业界高度评价。 相信其他常用的集成方法和算法大家都比较熟悉,就不再赘述了。这里着重提一下集成学习成功的关键---要千方百计围绕学习器的差异和强度做文章。这两者有非常密切而又难以描述的关系,其中有对立,也有协同,实际应用中我们要平衡好彼此。瞄准了这个方向,就能事半功倍,才能在正确的道路上越走越远。怎样解决这个关键问题呢?答案就一个字:试。如果非要多说两个字,那就是:试试。如果…你还要我多说吗?呵呵。好吧,不开玩笑了。如果你非想问出个子丑寅卯来,你可能要用好以下技术:完全随机,结合先验的伪随机,选择集成,融合进人为思维等等。最最重要的是,会根据不同问题要调一把好参,如特征相关性太强怎么调随机选取特征的比例,样本噪声太大怎么调随机选取示例的比例,正负比例不平衡时怎么做平衡等等。另外,在实际应用中,还要平衡好性能和效果,做一些工程上的优化,哪些该实时算,哪些可以离线算,哪些可以半实时都要规划好,还要使用好单机资源,多机资源,甚至牺牲效果换性能。这些点都是要注意的,用过才知道。 好了,准备收笔了。做个小结:集成学习方法是机器学习中最最实用的兵器,堪称屠龙刀。但并不是每个人都能用好这把刀,我们都要继续修炼内功,理解数据,用好数据。 末了,希望大家牢记两句话: 1) 机器学习的成功依赖数据,系统和算法,缺一不可。 2) 人能做的绝不留给机器。 主要批注: 1. 她是模式识别领域的,研究方法论和机器学习有很大差别。Ho主要的贡献是随机子空间,她偶然用了一下决策树,但是从属性子空间的角度去做的,是不是决策树并不重要,而且最关键的是没有用到bootstrap,而bootstrap是bagging和RF的最精华。从Breiman的角度看,Ho是纯属凑巧弄了个和RF看上去长得像的东西,而且这东西里面没有RF最宝贵的部分,当然不会看好。Ho的random subspace是模式识别里面很有效的技术。她自己也更看重这个。 2. bias-variance分解不是集成学习特有的,1992年German发明后借用过来的。集成学习特有的是error-ambiguity分解。 3. 集成学习者认为: 只要允许我使用多个学习器,就能把弱学习器提升到足够强,根本不需要什么无标记样本。半监督学习者认为: 只要能让我使用无标记样本,就能把学习器提升到足够强,哪需要什么多学习器。双方各执一词,真是老死不相往来的节奏。

原文发布于微信公众号 - 腾讯大数据(tencentbigdata)

原文发表时间:2015-05-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏新智元

【LeCun论战Yoav】自然语言GAN惹争议:深度学习远离NLP?

【新智元导读】一篇在 ArXiv 上非常火的文章《自然语言对抗生成》引发了 Yann LeCun 和 Yoav Goldberg 的激烈论战。Yoav Gold...

39312
来自专栏AI科技评论

Yann LeCun连发三弹:人人都懂的深度学习基本原理(附视频)

一名 AI 专家值多少钱? “基于我个人经验,一名计算机领域的 AI 专家对于企业的价值,至少为 500-1000 万美元。为了争夺这些少数的人才,正在开展竞标...

3469
来自专栏新智元

ISCA2016:体系结构顶级会议CNN走红,神经网络论文夺桂冠

【新智元导读】计算机体系结构顶级会议 ISCA2016日前召开,神经网络和深度学习成为热点。新智元整理了 ISCA 2016 神经网络相关论文(包括本届会议最高...

72718
来自专栏钱塘大数据

数据可视化,除了炫目你真的看懂内涵了嘛?

导读:数据可视化,本该是更快更好地表达数据中隐藏的、非直观的信息,是数据分析的升级工具。然而随着大数据火热,人们审美的提升,本该内涵丰富的数据可视化变成了争奇斗...

3205
来自专栏AI研习社

6 次 Kaggle 计算机视觉类比赛赛后感

我从 2017 年年初开始接触 Kaggle。曾翻阅知乎上很多关于 Kaggle 的回答和文章,然而逐渐发现大部分文章中提到的经验和技巧是针对传统 machin...

3392
来自专栏CDA数据分析师

数据挖掘中最易犯的10个错误,请绕行!

按照 Elder 博士的总结,这 10 大易犯错误包括: 0、缺乏数据( Lack Data ) 1. 太关注训练( Focus on Training ) 2...

1949
来自专栏量子位

EMNLP最佳论文公布,“让发明自己语言的AI说人话”上榜

李林 编译整理 量子位 报道 | 公众号 QbitAI ? 自然语言处理领域的学术会议EMNLP今天评出了四篇最佳论文:最佳长论文两篇、最佳短论文和最佳资源论文...

3666
来自专栏新智元

谷歌与全球顶级医学院联手,Jeff Dean等扛鼎首篇电子病历论文,康奈尔大学王飞解读

作者:王飞,康奈尔大学威尔医学院助理教授 编辑:闻菲 【新智元导读】本周谷歌在ArXiv上公开了一篇众人期待已久的论文,也很可能是谷歌在电子病历建模分析方面的首...

41310
来自专栏机器之心

学界 | 学术盛宴:微软亚洲研究院CVPR 2017论文分享会全情回顾

机器之心原创 作者:Smith 今年 7 月,世界顶级计算机视觉会议 CVPR(计算机视觉与模式识别会议)将在美国夏威夷举行。在此之前,「微软亚洲研究院创研论坛...

5056
来自专栏大数据文摘

大数据下客户金融产品购买概率预测

2439

扫码关注云+社区

领取腾讯云代金券