农企新闻网

纸上得来终觉浅,关于机器学习你还需求理解的12个实战经历

发布者:李阳
导读大众号/将门创投来源:TowardsDataScience编译:T.R不知道从何时开始,个人信用渗透到生活的方方面面。图书、数码产品免押金借用,办理签证无需银行流水证明,甚至租车住酒店都不需要交付押金…… 机器学习是一种比手工编程更为高效的处理方案,经过关于数据的剖析和学习来处理一系列普遍复杂的成绩。随着数据的添加、更多充溢应战的成绩正在被逐一攻破。但是在使用机器学习的进程中需求工程师和迷

大众号/将门创投

来源:TowardsDataScience

编译:T.R

不知道从何时开始,个人信用渗透到生活的方方面面。图书、数码产品免押金借用,办理签证无需银行流水证明,甚至租车住酒店都不需要交付押金…… 机器学习是一种比手工编程更为高效的处理方案,经过关于数据的剖析和学习来处理一系列普遍复杂的成绩。随着数据的添加、更多充溢应战的成绩正在被逐一攻破。但是在使用机器学习的进程中需求工程师和迷信家使用一系列在课本中无法找到的技巧和经历,为此华盛顿大学的Pedro教授宣布了一篇文章论述了12个机器学习中的珍贵经历,以分类器为例论述了理清了一些概念、提出一些罕见的技巧和容易堕入的误区,以协助我们在了解和使用机器学习的路上走得更远。

学习=表示+评价+优化

关于一个详细的机器学习成绩,面对眼花纷乱的算法究竟该选择哪一个呢?我们首先需求明白机器学习的三要素:

  • 表示:一个分类器需求用计算机可以处置的言语来表达出来,我们需求在表达的假定空间中来寻觅分类器。假如分类器不在这一空间中我们是无法学习到数据的特征的。所以与数据表达相关的特征选择将会是后文讨论的要点
  • 评价目标:我们需求树立一个评价函数来找出表现好的分类器。经过一些目标来指点我们调整分类器的构造和参数。
  • 优化办法:我们异样还需求一种办法来依据评价函数改动模型,使其具有更好的表现。初学者普通会运用已有的集成优化算法,经过一段工夫的学习将会逐渐树立起本人的优化器来改良模型的表现。

下表是三种要素一些罕见的分类:

纸上得来终觉浅,关于机器学习你还需要了解的12个实战经验

泛化性

机器学习的基本目的是在训练数据外的样本上完成较好表现的泛化性。由于无论训练数据有多少,我们总是无法保证它们掩盖了一切的状况。大少数初学者很容易犯的错误就是在训练数据上取得了好的后果就沉溺在成功的喜悦中。所以需求记住机器学习模型的好坏是看它在新数据上的表现的。假如你请他人做分类器,那么你一定要保存一些数据作为测试、假如你为他人做分类器也需求在最开端保存一局部数据来测试分类器的无效性。

虽然保存测试数据集增加了训练数据的大小,但我们可以经过穿插验证来克制这一成绩。经过将数据分为数分,并将其中每一份轮番作为测试集以调理算法的表现。

泛化性作为机器学习的目的时,我们普通会运用训练误差来作为指点而不是去操作被优化的函数自身。同时部分优化算能够比全局优化算法表现好。

纸上得来终觉浅,关于机器学习你还需要了解的12个实战经验

仅仅无数据是不够的

把泛化性作为机器学习的目标带来了一个严重的成绩:数据永远是不够的!在没有额定信息的状况下我们无法获取一个比随机更好的模型。但侥幸的是目前大少数假定曾经足够协助模型做的足够好,这也是目前机器学习如此成功的缘由。就像归纳和规划法是知识的杠杆一样,可以将一小局部的输出知识转换少量的输入。但它们却不能不输出任何东西就生成出知识来。机器学习不是魔法,它不能从无到有的生成知识,只能从少到多。学习和种植作物很像,我们需求做的是将种子和养料施下,剩下的就交给大自然了。学习则是经过数据和知识的结合生成可以处置实践成绩的顺序了。

纸上得来终觉浅,关于机器学习你还需要了解的12个实战经验

过拟合有不同的相貌

假如模型过于复杂而训练数据又不充沛的状况下我们就有堕入过拟合的风险。我们都和熟习过拟合但关于它的来源却不甚理解。通常状况下我们将它分解为偏向和方差两个局部来了解,其中偏向是模型发生错误后果的一种趋向,而方差则是发生后果的随机性。通常状况下线性分类器的偏向会很高,而决策树偏向很小但方差却很大。异样关于不同的优化办法来说,集束搜索的偏向比贪心搜索要低但方差很高,由于它尝试了更多的假定。最初需求留意的是,过拟合不是由噪声惹起的,及时全部正确的训练样本也会呈现过拟合成绩。

纸上得来终觉浅,关于机器学习你还需要了解的12个实战经验

上文提到的穿插验证是对立过拟合的好办法,但关于参数很多的模型来说正则化则更无效。经过引入对复杂项的惩罚来坚持模型的精练,使得模型不容易发生过拟合。

直觉在高维空间中生效

在二维或许三维空间中构建一个分类器关于人类来说很容易,我们可以在视觉上审视其边界。但我们关于高维空间缺乏足够的经历,使得我们难以了解其中的微妙,这障碍了我们设计出更好的分类器。有些时分更多的特征维度能够会带来更糟的后果。

纸上得来终觉浅,关于机器学习你还需要了解的12个实战经验

高维空间的散布不像低维空间这么平均,次要集中在壳层外表和四周。但侥幸的是大少数的样本集中在近低维的流型上,这使得我们可以在无效的低维度上建模。或许应用维度减约技术来缩减维度,协助学习。

论文中的实际并不像看起来的那样

论文中的很多结论都有他们存在的假定、边界、条件。他们次要的作用是作为了解和推进算法设计的资源,而不是我们在算法理论中的决策规范。他们可以无力的推进算法的设计。正由于数据和实际的深度融合才使机器学习范畴迅速开展。但机器学习范畴的论文是一种开发融合的交流,后人的任务并不意味着要约束后来者的任务,而是协助后来者走得更好的动力和源泉。

关键的特征工程

每天都会有很多机器学习算法成功也会有很多算法谢幕,其中决议成败的缘由是他们运用的特征各不相反。假如一个算法可以运用一些互相独立并与分类相关的特征它就很容易完成,但当分类非常复杂特征不分明时,这就面临很大的困难。很多状况下原始数据并不能提供最好的特征表示。所以这是机器学习中我们需求最为注重也是很多技巧所在的中央。

很多新人会诧异于在成绩中真正用于学习的工夫很少,而很多工夫却用于冗杂的数据搜集、整合以及清洗,并停止预处置和特征设计。异样机器学习不是一个一挥而就的进程,而是一个按部就班迭代的进程。特征工程虽然触及范畴知识,但却是学习工程中的中重要内容。

虽然机器学习的圣杯是自动抽取特征的一系列算法,但实践任务中真正无效的算法还是来源于特征的迭代和结合。要注重特征工程带来的作用。


纸上得来终觉浅,关于机器学习你还需要了解的12个实战经验

更多的数据胜过更好的算法

但我们失掉一个模型后,需求进一步改良这个模型我们有两种可行的方法,其一是树立更好的算法那,其二是搜集更多的数据来训练已有的算法。虽然很多机器学习研讨者偏爱新算法,但搜集更少数据才是进步模型表现更为疾速的办法。毕竟机器学习的实质就是从数据中学习知识嘛。

纸上得来终觉浅,关于机器学习你还需要了解的12个实战经验

随着数据的添加引入了规模性的成绩。在机器学习中,除了工夫和内存、另一个重要的资源就是训练数据。但数据的添加也带来了矛盾,越多的数据虽然模型越复杂,但会消耗越多的工夫来计算。在实践状况中,很多状况下人们都从最复杂的算法开端逐渐尝试。算法普通分为两品种型一种是具有固定参数的类型,像线性分类器随着数据添加它具有一个下限。另一种是可变化的模型,可以随着数据规模的添加改动模型的大小(也称为非参数模型),他们可以充沛应用数据。但由于算法异样存在限制,实践中功能也具有下限。

在机器学习中最大的瓶颈不是算力也不是数据,而是人类的介入。我们需求比拟算法调整模型,也需求将算法数据的后果变成人类可以了解的方式来剖析。人类介入发生的价值和努力很难定量计算,但却非常重要。研收回先进的算法需求机器学习专家和范畴专家的通力协作。

多个模型优于单个模型

新近机器学习的研讨者们,每团体都基于先验知识有各自宠爱的学习模型。然后随着时代的开展,人们开端尝试多种模型并从中选取最优的作为处理办法。但后来人们发现,与其选出最优的方案,不如直接将多个模型的后果综合到一同来的好。目前通常的做法是从训练集中随机选出一系列数据并独自训练分类器,然后应用权重或许投票的办法将这些分类器综合起来处理成绩。

纸上得来终觉浅,关于机器学习你还需要了解的12个实战经验

通常来说,应用权重分配训练样本使得新的分类器次要集中于原先分类器错误的样本上,这类办法称为推举法(boosting);而独立分类器的输入作为高层分类器的输出,这样称为堆叠法。


简约与精度

奥卡姆剃刀在机器学习中意味着精度与复杂度的均衡。假如两个训练误差相反的模型,那们较为复杂的模型意味着更低的测试误差。但天下没有收费的午餐,就如前文提到的模型综合一样,我们不能说复杂的模型就一定更好,异样参数的个数越多也不一定意味着过拟合。

模型的复杂度意味着假定空间的大小。更小的假定空间意味着我们可以用更小的表示来表达它,实际上将更简约的表达意味着更好的泛化性。但在实践中权衡精度和复杂度的时分,我们在设计的时分更倾向与简约的表示,而他们的准确性却是来自于我们倾向于注重准确而来的,而不是来源于假定的简约。

可表示的特征并不意味着可以学习

实际上和变量数目相反的参数模型乐意表达或许至多有限近似其空间中的任何函数,但我们需求明白的是可以被表达并不意味着可以被学习。例如我们无法失掉叶子比训练样本数还多的决策树模型。我们在训练时总是在无限的资源下搜索函数,最初的后果只是模型可以学习空间中的一小局部函数。而这一子集关于不同的表示来说却各部相反。所以学习的关键成绩并不是能不能表示,而是能不能学习,并尝试不同的学习模型。数据更为复杂的表表示味着我们有能够用更少的训练数据来完成学习。目前的研讨前沿之一就是在为更深更复杂的表示寻觅能够的学习办法。

纸上得来终觉浅,关于机器学习你还需要了解的12个实战经验

相关性并不意味着因果联络

我们在机器学习中学到的正是不同变量之间的相关性,而学习预测的目的则是应用这些后果去指点举动。但机器学习所能做的只是 察看 数据,而预测变量并不受机器学习的控制,这属于去 实验 数据。虽然有的算法可以从观测中抽取潜在因果联络,但使用非常无限;同时相关性只是因果的潜在表现,我们可以用于指点更深化的研讨,并了解因果链条。机器学习在理论中的目的是预测行为的效果(变量的后果)而不只仅是相关性;但假如你能搜集到实验数据的话,那就竭尽所能去做吧。

和很多学科一样,机器学习拥有很多至关重要的智慧隐藏在人民群众中,这篇文章给出了很多我们在书本上学不到的技巧和知识。希望可以为我们的理论带来无益的协助。

假如想看原文:

https://homes.cs.washington.edu/~pedrod/papers/cacm12.pdf

这位教授还提供了贴心的书籍和教程:The Master Algorithm

http://www.cs.washington.edu/homes/pedrod/class