首页 > 机器人资讯 > 实际工作总与理论相矛盾?详解机器学习教科书七大经典问题

实际工作总与理论相矛盾?详解机器学习教科书七大经典问题

日期:2019-02-21   人气:  来源:互联网
简介:实际工作总与理论相矛盾?详解机器学习教科书七大经典问题 实际工作中,应该怎么做和教科书讲的结论相矛盾,这时候要怎么办呢?难道教科书中的结论出错了? 如果希望了解机器学习,或者已经决定投身机器学习,你会第一时间找到各种教材进行充电,同时在心……

实际工作总与理论相矛盾?详解机器学习教科书七大经典问题

实际工作中,库卡机器人驱动器维修,应该怎么做和教科书讲的结论相矛盾,这时候要怎么办呢?难道教科书中的结论出错了?

如果希望了解机器学习,或者已经决定投身机器学习,你会第一时间找到各种教材进行充电,同时在心中默认:书里讲的是牛人大神的毕生智慧,是正确无误的行动指南,认真学习就能获得快速提升。但实际情况是,你很可能已经在走弯路。

科技发展很快,数据在指数级增长,环境也在指数级改变,因此很多时候教科书会跟不上时代的发展。有时,即便是写教科书的人,也不见得都明白结论背后的所以然,因此有些结论就会落后于时代。针对这个问题,第四范式创始人、首席执行官戴文渊近日就在公司内部分享上,向大家介绍了机器学习教材中的七个经典问题。戴文渊是ACM世界冠军(2005年),迁移学习全球领军人物,在迁移学习领域单篇论文引用数至今仍排名世界第三。曾任百度凤巢策略的技术负责人、华为诺亚方舟实验室主任科学家。

本文根据演讲实录整理,略有删减。

有时我们会发现,在实际工作中,应该怎么做和教科书讲的结论相矛盾,这时候要怎么办呢?难道教科书中的结论出错了?事实上,有时确实如此。所以今天我就想和大家分享一下机器学习教材中的一些经典问题,希望对大家今后的工作和学习有所帮助。

问题一:神经网络不宜超过3层

这是最有名错误判断,现在的教科书几乎已经不再有这样的结论,但如果看15年、20年前的机器学习教科书,会有一个很有趣的结论:神经网络不能超过三层。这和我们现在说的深度学习是矛盾的,深度学习现在大家比拼的不是神经网络能不能超过三层,而是能不能做出一百层、一千层或者更多。

那为什么之前的教科书上会写神经网络不能超过三层,这就要从神经网络的历史说起。五十年代有位科学家叫MarvinMinksy,他是一位生物学家,数学又很好,所以他在研究神经元的时候就在想能不能用数学模型去刻画生物的神经元,因此就设计了感知机。感知机就像一个神经细胞,它能像神经细胞一样连起来,形成神经网络,就像大脑的神经网络。其实在60年代开始的时候,是有很深的神经网络,但当时经过大量实验发现,不超过三层的神经网络效果不错,于是大概到80年代时就得出结论:神经网络不宜超过三层。

那为什么现在这条结论又被推翻了呢?实际上这条结论是有前提条件的,即在数据量不大的情况下,神经网络不宜超过三层。而从2005年开始,大家发现随着数据增加,深度神经网络的表现良好,所以慢慢走向深度学习。其实这里真正正确的原理是Valiant引理,它可以理解为模型复杂度(例如专家系统的规则数量)要和数据量成正比。数据量越大,模型就越复杂。上个世纪因为数据量小,所以神经网络的层数不能太深,现在数据量大,所以神经网络的层数就要做深。这也解释了为什么当时教科书会有这样的结论,而现在随着深度学习的流行,大家已经不再会认为这句话是对的。

问题二:决策树不能超过五层

如果有同学看教科书上介绍决策树,会有一个说法就是决策树要减枝,决策树如果不减枝效果不好。还有教科书会告诉决策树不能超过五层,超过五层的决策树效果不好。这个结论和神经网络结论一样,神经网络不能超过三层也是因为当时数据量不大,决策树不能超过五层也是因为上个世纪数据量不够大,二叉树决策树如果深度是N的话,复杂度大概是2的N次方,所以不超过五层复杂度也就是三十多。如果数据量达到一百万的时候,决策树能达到十几二十层的规模,如果数据量到了一百亿的时候决策树可能要到三十几层。

现在,我们强调更深的决策树,这可能和教科书讲的相矛盾。矛盾的原因是现在整个场景下数据量变大,所以要做更深的决策树。当然,我们也不一定在所有的场景里都有很大数据量,如果遇到了数据量小的场景,我们也要知道决策树是要做浅的。最根本来说,就是看有多少数据,能写出多复杂的模型。

问题三:特征选择不能超过一千个

有些教科书会单独开个章节来讲特征选择,告诉我们在拿到数据后,要先删除一些不重要的特征,甚至有的教科书注明,特征数不能超过一千,否则模型效果不好。但其实这个结论也是有前提条件的,如果数据量少,是不能够充分支撑很多特征,但如果数据量大,结论就会不一样。这也就是为什么我们做LogisticRegression会有几十亿个特征,而不是限制在几百个特征。

过去传统数据分析软件,如SAS,之所以只有几百个特征,是因为它诞生于上世纪七十年代,它面临的问题是在具体场景下没有太多可用数据,可能只有几百上千个样本。因此,在设计系统时,就只需要针对几百个特征设计,不需要几十亿个特征,因为上千个样本无法支撑几十亿特征。但现在,随着数据量增加,特征量也需要增加。所以我认为,在大数据环境下,整个机器学习教科书里关于特征选择的章节已经落后于时代,需要根据新的形式重新撰写;当然在小数据场景下,它仍然具有价值。

问题四:集成学习获得最好学习效果

第四个叫做集成学习,这个技术在各种数据挖掘比赛中特别有用,比如近些年KDDCUP的冠军几乎都是采用集成学习。什么是集成学习?它不是做一个模型,而是做很多(例如一千个)不一样的模型,让每个模型投票,投票的结果就是最终的结果。如果不考虑资源限制情况,这种模式是效果最好的。这也是为什么KDDCUP选手们都选择集成学习的方式,为了追求最后效果,不在乎投入多少,在这种条件下,集成学习就是最好的方式。

但在现实中,企业做机器学习追求的不是用无限的资源做尽可能好的效果,而是如何充分利用有限资源,获得最好效果。假设企业只有两台机器,如何用这两台机器获得最好的效果呢?如果采用集成学习,用两台机器跑五个模型,就要把两台机器分成五份,每个模型只能用0.4台机器去跑,因此跑的数据量就有限。那如果换种方式,不用集成学习,就用一个模型去跑,就能跑5倍的数据。通常5倍的数据量能比集成学习有更好的效果。在工业界比较少会应用集成学习,主要是因为工业界绝大多数的场景都是资源受限,资源受限时最好的方式是想办法放进去更多的数据。集成学习因为跑更多的模型导致只能放更少的数据,工业机器人维修,通常这种效果都会变差。

问题五:正样本和负样本均衡采样到1:1

第五个叫做均衡采样,绝大多数的教科书都会讲到。它是指如果我们训练一个模型,正样本和负样本很不平均,比如在正样本和负样本1:100的情况下,就需要对正、负样本做均衡采样,把它变成1:1的比例,这样才是最好的。但其实这个结论不一定对,因为统计学习里最根本的一条原理就是训练场景和测试场景的分布要一样,所以这个结论只在一个场景下成立,那就是使用模型的场景中正、负样本是1:1,那这个结论就是对的。

免责声明:本网部分文章和信息来源于互联网,本网转载出于传递更多信息和学习之目的。如转载稿涉及版权等问题,请立即联系网站所有人,我们会予以更改或删除相关文章,保证您的权利。