*若是但愿了解机器学习,或者已经决定投身机器学习,你会第一时间找到各类教材进行充电,同时在心中默认:书里讲的是牛人大神的毕生智慧,是正确无误的行动指南,认真学习就能得到快速提高。但实际状况是,你极可能已经在走弯路。网络
科技发展很快,数据在指数级增加,环境也在指数级改变,所以不少时候教科书会跟不上时代的发展。有时,即使是写教科书的人,也不见得都明白结论背后的“因此然”,所以有些结论就会落后于时代。针对这个问题,第四范式创始人、首席执行官戴文渊近日就在公司内部分享上,向你们介绍了机器学习教材中的七个经典问题。戴文渊是ACM世界冠军(2005年),“迁移学习”全球领军人物,在迁移学习领域单篇论文引用数至今仍排名世界第三。曾任百度凤巢策略的技术负责人、华为诺亚方舟实验室主任科学家。机器学习
本文根据演讲实录整理,略有删减。*分布式
有时咱们会发现,在实际工做中,应该怎么作和教科书讲的结论相矛盾,这时候要怎么办呢?难道教科书中的结论出错了?事实上,有时确实如此。因此今天我就想和你们分享一下机器学习教材中的一些经典问题,但愿对你们从此的工做和学习有所帮助。学习
问题一:神经网络不宜超过3层测试
这是最有名错误判断,如今的教科书几乎已经再也不有这样的结论,但若是看15年、20年前的机器学习教科书,会有一个颇有趣的结论:神经网络不能超过三层。这和咱们如今说的深度学习是矛盾的,深度学习如今你们比拼的不是神经网络能不能超过三层,而是能不能作出一百层、一千层或者更多。大数据
那为何以前的教科书上会写神经网络不能超过三层,这就要从神经网络的历史提及。五十年代有位科学家叫Marvin Minksy,他是一位生物学家,数学又很好,因此他在研究神经元的时候就在想能不能用数学模型去刻画生物的神经元,所以就设计了感知机。感知机就像一个神经细胞,它能像神经细胞同样连起来,造成神经网络,就像大脑的神经网络。其实在60年代开始的时候,是有很深的神经网络,但当时通过大量实验发现,不超过三层的神经网络效果不错,因而大概到80年代时就得出结论:神经网络不宜超过三层。人工智能
那为何如今这条结论又被推翻了呢?实际上这条结论是有前提条件的,即在数据量不大的状况下,神经网络不宜超过三层。而从2005年开始,你们发现随着数据增长,深度神经网络的表现良好,因此慢慢走向深度学习。其实这里真正正确的原理是Valiant引理,它能够理解为“模型复杂度(例如专家系统的规则数量)要和数据量成正比”。数据量越大,模型就越复杂。上个世纪由于数据量小,因此神经网络的层数不能太深,如今数据量大,因此神经网络的层数就要作深。这也解释了为何当时教科书会有这样的结论,而如今随着深度学习的流行,你们已经再也不会认为这句话是对的。spa
问题二:决策树不能超过五层设计
若是有同窗看教科书上介绍决策树,会有一个说法就是决策树要减枝,决策树若是不减枝效果很差。还有教科书会告诉决策树不能超过五层,超过五层的决策树效果很差。这个结论和神经网络结论同样,神经网络不能超过三层也是由于当时数据量不大,决策树不能超过五层也是由于上个世纪数据量不够大,二叉树决策树若是深度是N的话,复杂度大概是2的N次方,因此不超过五层复杂度也就是三十多。若是数据量达到一百万的时候,决策树能达到十几二十层的规模,若是数据量到了一百亿的时候决策树可能要到三十几层。图片
如今,咱们强调更深的决策树,这可能和教科书讲的相矛盾。矛盾的缘由是如今整个场景下数据量变大,因此要作更深的决策树。固然,咱们也不必定在全部的场景里都有很大数据量,若是遇到了数据量小的场景,咱们也要知道决策树是要作浅的。最根原本说,就是看有多少数据,能写出多复杂的模型。
问题三:特征选择不能超过一千个
有些教科书会单独开个章节来说特征选择,告诉咱们在拿到数据后,要先删除一些不重要的特征,甚至有的教科书注明,特征数不能超过一千,不然模型效果很差。但其实这个结论也是有前提条件的,若是数据量少,是不可以充分支撑不少特征,但若是数据量大,结论就会不同。这也就是为何咱们作LogisticRegression会有几十亿个特征,而不是限制在几百个特征。
过去传统数据分析软件,如SAS,之因此只有几百个特征,是由于它诞生于上世纪七十年代,它面临的问题是在具体场景下没有太多可用数据,可能只有几百上千个样本。所以,在设计系统时,就只须要针对几百个特征设计,不须要几十亿个特征,由于上千个样本没法支撑几十亿特征。但如今,随着数据量增长,特征量也须要增长。因此我认为,在大数据环境下,整个机器学习教科书里关于特征选择的章节已经落后于时代,须要根据新的形式从新撰写;固然在小数据场景下,它仍然具备价值。
问题四:集成学习得到最好学习效果
第四个叫作集成学习,这个技术在各类数据挖掘比赛中特别有用,好比近些年KDD CUP的冠军几乎都是采用集成学习。什么是集成学习?它不是作一个模型,而是作不少(例如一千个)不同的模型,让每一个模型投票,投票的结果就是最终的结果。若是不考虑资源限制状况,这种模式是效果最好的。这也是为何KDDCUP选手们都选择集成学习的方式,为了追求最后效果,不在意投入多少,在这种条件下,集成学习就是最好的方式。
但在现实中,企业作机器学习追求的不是用无限的资源作尽量好的效果,而是如何充分利用有限资源,得到最好效果。假设企业只有两台机器,如何用这两台机器得到最好的效果呢?若是采用集成学习,用两台机器跑五个模型,就要把两台机器分红五份,每一个模型只能用0.4台机器去跑,所以跑的数据量就有限。那若是换种方式,不用集成学习,就用一个模型去跑,就能跑5倍的数据。一般5倍的数据量能比集成学习有更好的效果。在工业界比较少会应用集成学习,主要是由于工业界绝大多数的场景都是资源受限,资源受限时最好的方式是想办法放进去更多的数据。集成学习由于跑更多的模型致使只能放更少的数据,一般这种效果都会变差。
问题五:正样本和负样本均衡采样到1:1
第五个叫作均衡采样,绝大多数的教科书都会讲到。它是指若是咱们训练一个模型,正样本和负样本很不平均,好比在正样本和负样本1:100的状况下,就须要对正、负样本作均衡采样,把它变成1:1的比例,这样才是最好的。但其实这个结论不必定对,由于统计学习里最根本的一条原理就是训练场景和测试场景的分布要同样,因此这个结论只在一个场景下成立,那就是使用模型的场景中正、负样本是1:1,那这个结论就是对的。
正确的作法是,应用场景是1:100,那训练集合最好也是1:100。均衡采样不必定都是对的,多数状况下不采样反而才是正确的。由于大多时候,咱们直接把训练集合和测试集合作随机拆分,或者按照时间拆分,两者的分布就是一致的,那个时候不采样是最好的。固然有时候,咱们也会发现作负样本采样会有更好的效果,好比范式在为某股份制银行卡中心作交易反欺诈时,就作了负样本采样,那是由于当咱们把全部样本都放进去后,发现计算资源不够,因此只能作采样。正样本与负样本大概是1:1000或者1:10000,若是对正样本作采样,损失信息量会比较大,因此咱们选择对负样本采样,好比作1:1000的采样,再把负样本以1000的加权加回去。在资源受限时这么作,会尽量下降信息量的损失。但若是仅仅是为了把它作均衡而作负样本采样,一般是不对的。和前面几个问题不一样,负样本采样并非因环境改变而结论变化,事实上就不该该作负样本采样。
问题六:交叉验证是最好的测试方法
下一个问题叫作交叉验证,是指假设要将一份数据拆分红训练集和测试集,这个时候怎么评估出它的偏差?交叉验证是把集合拆成五份,取四份作训练集、一份作测试集,而且每次选择不一样的那一份作测试级,最后测出五个结果再作平均,这被认为是最好的测试方法。
交叉验证确实是一个还不错的验证的方法,但在现实应用场景下,它每每不是最合适的一种方式。由于一般来讲,咱们用机器学习作的事情是预测,绝大多数状况下咱们是用如今或者过去的数据作一个模型来预测将来。而拿过去的训练预测将来的最好测试方法不是交叉验证,由于交叉验证是按照交易或者按人拆分的。最合适的是方法实际上是按照时间拆分,好比评估的时候选取一个时间点,用在这个时间点以前的数据作训练,预测在这个时间点以后的,这是最接近真实应用场景的评估结果。
交叉验证可能只适用于和时间属性不相关的场景,好比人脸识别,但咱们面临更多的应用场景,不管是风险、营销或者反欺诈,都是在用过去的数据训练后预测将来,最合适这样场景的评估方法不是交叉验证,而是按照时间去拆分。
问题七:过拟合必定很差
最后一个叫过拟合,这也是一个讨论特别多的话题。之前,一般咱们会说若是模型作的太复杂了就会过拟合,如PPT右边所示,而最好的方式应该是图中中间的状态——拟合的刚恰好,图中左边的模型underfitting,没有训练彻底。但如今来看,大多数的实际场景都是在拿过去预测将来,过拟合不必定是很差的,仍是要看具体场景。若是这个场景是过去见过的状况比较多,新的状况比较少的时候,过拟合反却是好的。
打个比方,若是期末考试题就是平时的做业,那咱们把平时的做业都背一遍就是最好的方式,而这就是过拟合。若是期末考试不考平时做业,全是新题,那么这个时候就不能只背平时的做业,还要充分理解这门课的知识,掌握如何推理解题的技巧。因此过拟合好坏与否,彻底取决于场景。若是应用场景依靠死记硬背就能搞定,那过拟合反却是好的。实际上在咱们的设计里面,不少时候咱们会倾向于往过拟合靠一点,可能作新题会差一点,可是对于死记硬背的送分题会作的很是好。在拿过去预测将来的应用场景下,有的时候过拟合不必定很差,要根据实际状况来看。
今天与你们分享了教科书中的几个经典问题。其实在实际工业应用中,咱们不会彻底按照教科书中的方式去实践。咱们也会设计很深的模型、很深的决策树、不少的特征、会过拟合一点,咱们更强调按时间拆分,不强调均衡采样。面对教科书中的结论,咱们须要学会的是根据实际场景作出相应灵活判断。
小式八月福利:第四范式·先知是大规模分布式机器学习的全流程平台,帮助企业解决业务增加难题,打造以人工智能为核心驱动的新增加点。如今,“先知平台”试用版已经正式对外开放,欢迎访问prophet.4paradigm.com免费注册使用。