机器学习:更多的数据总是优于更好的算法吗?

机器学习:更多的数据总是优于更好的算法吗?

摘要:Netflix公司工程总监Xavier Amatriain认为,增加更多的样本到训练集很多时候并不会提高模型的性能,我们需要的是好的方法,来帮助我们理解如何解释数据,模型,以及两者的局限性,这都是为了得到最好的输出。

【编者按】在机器学习中,更多的数据总是比更好的算法好吗?对于Quora上的这个问题,Netflix公司工程总监Xavier Amatriain认为,很多时候增加更多的样本到训练集并不会提高模型的性能,而如果没有合理的方法,数据就会成为噪音。他通过Netflix的实践经验推导出最终的结论:我们需要的是好的方法,来帮助我们理解如何解释数据,模型,以及两者的局限性,这都是为了得到最好的输出。



在机器学习中,更多的数据总是比更好的算法好吗?

不是这样的。有时候更多的数据有用,有时它的作用不大。

为数据的力量辩护,也许最著名的是谷歌的研发总监Peter Norvig,他声称“我们没有更好的算法。我们仅仅拥有更多的数据”。这句话通常是链接到文章《The Unreasonable Effectiveness of Data》,这篇文章也是Norvig自己写的(虽然它的来源被放在IEEE收费专区,不过你应该能够在网上找到pdf格式的原文档)。更好的模型盖棺定论是Norvig的语录“所有模型都是错的,无论如何你都不会需要他们的”被错误地引用之时(点击这里查看作者澄清他是如何被错误引用的)。

Norvig等人的作用是指在他们的文章中,他们的观点早在几年前被微软研究人员Banko和Brill在一篇著名的论文[2001]《Scaling to Very Very Large Corpora for Natural Language Disambiguation》中引用。在这篇论文中,作者给出了下图。

该图表明,对于给定的问题,迥然不同的算法执行结果几乎是一样的。然而,添加更多的样本(单词)到训练集里面,可以单调增加模型的精度。

因此,在封闭的情况下,你可能会认为算法更重要。嗯…没有这么快。事实是,Norvig的断言以及Banko和Brill的论文都是正确的…在一个环境中。但是,他们现在再次被错误地引用到一些环境中,而这些环境与最初的环境是完全不同的。但是,为了搞明白为什么,我们需要了解一些技术。(我不打算在这篇文章中给出一个完整的机器学习教程。如果你不明白我下面将要做出的解释,请阅读我对《How do I learn machine learning?》的回答?

方差还是偏差?

基本的想法是,一个模型的可能表现不好存在两种可能的(而且是几乎相反的)原因。

在第一种情况下,对于我们拥有的数据量来说,我们所用的模型太复杂了。这是一种以高方差著称的情形,其可以导致模型过拟合。我们知道,当训练误差远低于测试误差时,我们正面临着一个高方差问题。高方差问题可以通过减少特征数量加以解决,是的,还有一种方法是通过增加数据点的数量。所以,什么样的模型是Banko &Brill的观点和Norvig的断言可以处理的?是的,回答正确:高方差。在这两种情况下,作者致力于语言模型,其中词汇表中的大约每一个词都具有特征。与训练样本相比,这有一些模型,它们具有许多特征。因此他们很有可能过拟合。是的,在这种情况下,添加更多的样本将带来很多帮助。

但是,在相反的情况下,我们可能有一个模型,它太简单了以至于无法解释我们拥有的数据。在这种情况下,以高偏差著称,添加更多的数据不会带来帮助。参见下面一个真实的在Netflix运行的系统的一个制表以及它的性能,同时我们添加更多的训练样本到里面去。

所以,更多的数据并不总是有帮助的。正如我们刚刚看到的,在许多情况下,增加更多的样本到我们的训练集并不会提高模型的性能。

多特征救援

如果你一直跟着我的节奏,到目前为止,你已经完成了理解高方差和高偏差问题的功课。你可能会认为我故意留下了一些东西要讨论。是的,高偏差模型将不会受益于更多的训练样本,但是他们很可能受益于更多的特征。所以,到底这是不是都是关于增加“更多”数据的?好吧,再强调一次,这得视情况而定。

例如,在Netflix Prize的早期,有一个以评论额外特征的使用来解决问题的博客文章,它是由企业家和斯坦福大学教授Anand Rajaraman建立的。这个帖子解释了一个学生团队如何通过从IMDB添加内容特征来改善预测精度特性。

现在回想起来,很容易在批评后作出针对一个单一数据点的粗俗的过度泛化。更有甚者,后续文章提及SVD是一个“复杂”的算法,不值得一试,因为它限制了扩大更多的特征的能力。显然,Anand的学生没有赢得Netflix Prize,而且他们现在可能意识到SVD在获奖作品中发挥着重要的作用。

事实上,许多团队后来显示,添加来自IMDB的内容特征等等到一个优化算法上几乎没有改善。Gravity team的一些成员,他们是Netflix Prize的最优秀的竞争者之一,发表了一篇详细的论文,展示了将这些基于内容的特征添加到高度优化的协同过滤矩阵分解的方法没有任何改善。这篇论文题为“Recommending New Movies: Even a Few Ratings Are More Valuable Than Metadata”。

为了公平起见,论文的标题也是一个过度泛化。基于内容的特征(或一般的不同特征)在许多情况下可以提高精确度。但是,你明白我的意思:更多的数据并不总是有帮助的。

更好的数据!=更多的数据

在我看来,重要的是要指出,更好的数据始终更好。对此没有反对意见。所以任何你能够直接针对你的数据进行“改善”的努力始终是一项很好的投资。问题是,更好的数据并不意味着更多的数据。事实上,有时这可能意味着少!

想想数据清理或异常值去除,就当是我的观点一个微不足道的说明。但是,还有许多其他的更微妙的例子。例如,我已经看到人们投入大量的精力到Matrix Factorization,而真相是,他们可能通过采样数据以及得到非常相似的结果获得认可。事实上,做某种形式的智能人口抽样的正确的方式(例如使用分层抽样)可以让你得到比使用整个未过滤得的数据集更好的结果。

科学方法的终结?

当然,每当有一个关于可能的范式的变化激烈的争论,就会有像Malcolm Gladwell 和 Chris Anderson这样的人以此谋生甚至未曾认真思考(不要误会我的意思,我是他们俩的粉丝,我读过他们的很多书)。在这种情况下,Anderson挑选了Norvig的一些评论,并错误地在一篇文章中引用,该文章的标题为:“The End of Theory: The Data Deluge Makes the Scientific Method Obsolete”。

这篇文章阐述了几个例子,它们讲的是丰富的数据如何帮助人们和企业决策甚至无需理解数据本身的含义。正如Norvig在他的辩驳中自己指出的问题,Anderson有几个观点是正确的,但是很难实现。而且结果是一组虚假陈述,从标题开始:海量数据并未淘汰科学方法。我认为这恰恰相反。

数据没有合理的方法=噪音

所以,我是在试图制造大数据革命只是炒作的言论吗?不可能。有更多的数据,无论是更多的例子样本或更多的特征,都是一种幸事。数据的可用性使得更多更好的见解和应用程序成为可能。更多的数据的确带来了更好的方法。更重要的是,它需要更好的方法。

综上所述,我们应该不理会过分简单的意见,它们所宣扬的是理论或者模型的无用性,或者数据在其他方面的成功的可能性。尽可能多的数据是必要的,所以就需要好的模型和理论来解释它们。但是,总的来说,我们需要的是好的方法,来帮助我们理解如何解释数据,模型,以及两者的局限性,这都是为了得到最好的输出。

换句话说,数据固然重要,但若没有一个合理的的方法,数据将会成为噪音。

: 本文的答案基于作者此前发表的博客文章:More data or better models?

原文链接:In machine learning, is more data always better than better algorithms? (翻译/王辉 责编/周建丁)

时间: 2024-11-13 08:12:54

机器学习:更多的数据总是优于更好的算法吗?的相关文章

微信公众平台增加更多统计项 让你更了解运营数据

就在刚刚,微信公众平台发布了数据统计功能更新,增加更多统计项,包括用户增长来源.用户使用的终端/机型.图文消息详细属性.图文阅读渠道.图文收藏统计.提取用户发送消息的关键词等相关功能,详情查看微信团队的公告. 公众平台数据统计功能更新,增加更多统计项 1. 用户增长页增加增长来源统计,可按来源查看新增人数 2. 用户属性页增加终端和机型分析,可查看用户使用哪些终端和机型 3. 图文群发页增加图文详解功能,可查看图文消息的详细属性,和读者的属性数据 4. 图文统计页增加阅读渠道统计,可按渠道查看图

LibRec: 基于机器学习的大数据推荐系统

简介: LibRec 是领先的推荐系统Java开源算法工具库,覆盖了70余个各类型推荐算法,有效解决评分预测和物品推荐两大关键的推荐问题.推荐系统是机器学习和大数据技术的经典实际应用,旨在提供高效准确的个性化物品推荐,是现代Web应用的重要组件. 项目结构清晰,代码风格良好,测试充分,注释与手册完善.目前项目使用GPL3.0协议开源在github中,欢迎大家试用. Librec: http://www.librec.net/ GithubRepo:  https://github.com/guo

推荐文章:机器学习:“一文读懂机器学习,大数据/自然语言处理/算法全有了

PS:文章主要转载自CSDN大神"黑夜路人"的文章:          http://blog.csdn.NET/heiyeshuwu/article/details/43483655      本文主要对机器学习进行科普,包括机器学习的定义.范围.方法,包括机器学习的研究领域:模式识别.计算机视觉.语音识别.自然语言处理.统计学习和数据挖掘.这是一篇非常好的文章,尤其感学原文作者~          http://www.thebigdata.cn/JieJueFangAn/1308

机器学习其实比你想的更简单

From:http://blog.jobbole.com/53546/ 很多人觉得机器学习高不可攀,认为这是一门只有少数专业学者才了解的神秘技术. 毕竟,你是在让运行在二进制世界里的机器得出它自己对现实世界的认识.你正在教它们如何思考.然而,本文几乎不是你所认为的晦涩难懂.复杂而充满数学公式的文章.正如所有帮助我们认识世界的基本常识一样(例如:牛顿运动定律.工作需要去完成.供需关系等等),机器学习最佳的方法和概念也应该是简洁明了的.可惜的是,绝大多数关于机器学习的文献都充斥着复杂难懂的符号.艰涩

蜡炬教育:如何处理机器学习中大型数据的加载问题?

原标题:蜡炬教育:如何处理机器学习中大型数据的加载问题? 蜡炬教育老师表示,在处理机器学习算法时,经常会因为数据库太大而导致无法放入内存中,而遇到这样几个问题:当运行数据集算法而导致崩溃时如何解决?当需要处理大容量数据文件时该如何加载?如何方便快捷的解决内存不足的问题? 针对以上问题,蜡炬教育老师给出7个建议: 1.分配更多内存某些ML工具或数据库默认内存配置不合理,可以看看是否可以手动分配. 2.使用较小样本确认是否需要处理所有数据?在对最终数据拟合前,使用随机抽取数据样本这个示例即可. 3.

【机器学习】解决数据不平衡问题

在机器学习的实践中,我们通常会遇到实际数据中正负样本比例不平衡的情况,也叫数据倾斜.对于数据倾斜的情况,如果选取的算法不合适,或者评价指标不合适,那么对于实际应用线上时效果往往会不尽人意,所以如何解决数据不平衡问题是实际生产中非常常见且重要的问题. 什么是类别不平衡问题 我们拿到一份数据时,如果是二分类问题,通常会判断一下正负样本的比例,在机器学习中,通常会遇到正负样本极不均衡的情况,如垃圾邮件的分类等:在目标检测SSD中,也经常遇到数据不平衡的情况,检测器需要在每张图像中评价一万个到十万个候选

一文读懂机器学习,大数据/自然语言处理/算法全有了……

原文地址 http://www.open-open.com/lib/view/open1420615208000.html http://www.cnblogs.com/subconscious/p/4107357.html 引论 在本篇文章中,我将对机器学习做个概要的介绍.本文的目的是能让即便全然不了解机器学习的人也能了解机器学习.而且上手相关的实践.这篇文档也算是 EasyPR开发的番外篇.从这里開始.必须对机器学习了解才干进一步介绍EasyPR的内核.当然,本文也面对一般读者.不会对阅读有

[Android Traffic] 让android应用在传输网络数据的时候更省电

到今年6月,我国的手机网民已经达到了3.88亿,超过了电脑终端.相信有智能机的同学都用过手机上网冲浪.但是手机的电量很快被用光了恐怕是每个人都不能忍受的一件事情.而打开数据连接进行网络数据的传输是很耗费电量的,如果用户发现你的应用榨干了他电池里的电,恐怕他会第一时间将你的应用给卸载掉.所以进行网络应用的开发理解怎样才能更省电就很有必要了. 如果数据连接一直保持着激活的状态,那么它的耗电量是很惊人的,所以手机会在网络空闲的情况下自动休眠数据连接来达到省电的目的.以3G网络来举例,它有三个不同的状态

掌握Spark机器学习库 大数据开发技能更进一步 高清无密

掌握Spark机器学习库 大数据开发技能更进一步 "大数据时代"已经不是一个新鲜词汇了,随着技术的商业化推广,越来越多的大数据技术已经进入人们的生活.与此同时,大数据技术的相关岗位需求也越来越多,更多的同学希望向大数据方向转型.本课程主要讲解Spark机器学习库,侧重实践的讲解,同时也以浅显易懂的方式介绍机器学习算法的内在原理.学习本课程,可以为想要转型大数据工程师或是入行大数据工作的同学提供实践指导作用.欢迎感兴趣的小伙伴们一起来学习. 第1章 初识机器学习 在本章中将带领大家概要了