加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

关于机器学习实战,那些教科书里学不到的12个“民间智慧”

发布时间:2019-05-14 13:13:16 所属栏目:建站 来源:towardsml 编译:刘佳玮、王缘缘、Walker 机器
导读:大数据文摘出品 来源:towardsml 编译:刘佳玮、王缘缘、Walker 机器学习算法被认为能够通过学习数据来弄清楚如何执行重要任务。 这意味着数据量越大,这些算法就可以解决更加复杂的问题。然而,开发成功的机器学习应用程序需要一定的民间技巧,这在教科书
副标题[/!--empirenews.page--]

机器学习

大数据文摘出品

来源:towardsml

编译:刘佳玮、王缘缘、Walker

机器学习算法被认为能够通过学习数据来弄清楚如何执行重要任务。

这意味着数据量越大,这些算法就可以解决更加复杂的问题。然而,开发成功的机器学习应用程序需要一定的“民间技巧”,这在教科书或机器学习入门课程中很难找到。

Pedro Domingos教授的一篇很好的研究论文,该论文汇集了机器学习研究人员和从业者的经验教训。

https://homes.cs.washington.edu/~pedrod/

要避免的陷阱,要关注的重要问题以及一些常见问题的答案。准备好去了解了吗?

1. 学习=表示+评估+优化

你有一个应用程序,你认为机器学习可能是一个很好的选择。现在,在机器学习领域,每年都会有大量的机器学习算法可供选择,有数百种机器学习算法问世。应该使用哪一个?

机器学习

在这个巨大的空间中不迷失的关键是要明白所有机器学习算法的都由三个核心要素组成:

  • 表示:输入数据,即要使用的特征,学习器和分类器必须以计算机可以理解的语言表示。学习器可以学习的分类器集称为学习器的假设空间。如果分类器不在假设空间中,则无法进行学习。

澄清说明:分类器与学习器的含义是什么?假设你有训练数据,并使用你构建另一个程序(模型)的程序处理这些数据,例如决策树。学习器是从输入数据构建决策树模型的程序,而决策树模型是分类器(能够为每个输入数据实例提供预测输出的东西)。

  • 评估:需要评估函数来区分好的分类和坏的分类。算法内部使用的评估函数可能与我们希望分类器优化的外部评估度量不同(为了便于优化,并且与后面讨论的问题有关)
  • 优化:最后,我们需要一种方法来在分类器中进行搜索,以便我们可以选择最佳的分类器。学习器效率的关键是选择优化技术。通常从使用现成的优化器开始。如果需要,以后你可以用自己的设计替换它们。

下表显示了这三个组件中每个组件的一些常见示例。

机器学习

2. 泛化才有用

机器学习的基本目标是概括超出训练集中的例子。因为,无论我们拥有多少数据,我们都不太可能在测试时再次看到这些确切的示例。在训练集上做得很好很容易。初学者中最常见的错误是测试训练数据并得到成功的假象。如果所选分类器随后在新数据上进行测试,则通常不会比随机猜测更好。因此,从一开始就设置一些数据,并且仅使用它来测试最终选择的分类器,然后在整个数据上学习最终分类器。

当然,保留数据会减少可用于训练的样本数。这可以通过交叉验证来缓解:比如,将你的训练数据随机分成十个子集,在训练其余部分时保持每个子集,在其未使用的示例上测试每个学习的分类器,并对结果求平均值,来看特定参数设置的效果如何。

3. 只有数据还不够

当泛化是目标时,我们会遇到另一个主要后果:仅凭数据是不够的,无论你拥有多少数据。假设我们想学习一百万个例子中100个变量的布尔函数(0/1分类)。这意味着2 ^100-10^6个例子,你不知道它们的类。如果手头没有更多信息,这怎么能优于随机猜测呢?

似乎我们陷入了困境。幸运的是,我们想要在现实世界中学习的特性并不是从所有数学上可能的函数集中统一绘制的!实际上,非常一般的假设——就像具有相似类的类似示例——是机器学习如此成功的一个重要原因。

这意味着专业知识和对数据的理解对于做出正确的假设非常重要。对学习知识的需求应该不足为奇。机器学习并不神奇,它无法从无到有。它的作用是从更少的东西中获得更多。与所有工程一样,编程需要做很多工作:我们必须从头开始构建所有东西。学习更像是农业,让大自然完成大部分工作。农民将种子与营养物质结合起来种植农作物。学习者将知识与数据相结合以优化程序。

4. 过拟合的多面性

过度拟合的问题是机器学习的问题。当你的学习器输出一个对训练数据100%准确但对测试数据只有50%准确的分类器时,实际上它可以输出一个对两者都准确度为75%的分类器,它已经过拟合。

机器学习中的每个人都知道过拟合,但它有多种形式,并不是很明显。理解过拟合的方法之一是将泛化误差分解为偏差和方差。

偏差是学习者一直学习同样错误的倾向。与真实信号无关,方差是学习随机事物的倾向。飞镖图比可以更好地理解这一点,如下图所示:

机器学习

例如,线性学习器具有较高的偏差,因为当两个类之间的划分不是明确的超平面时,学习器无法正确地判别关系。决策树没有这个问题,因为它们的学习方法很灵活。但另一方面,它们可能有高度差异——在同一任务的不同训练数据集上学习的决策树通常是非常不同的,而实际上它们应该是相同的。

现在,如何处理过拟合?

可以在此处使用交叉验证,例如通过使用它来选择要学习的决策树的最佳大小。但请注意,这里还有一个问题:如果我们使用它来选择太多参数,它本身就会开始过拟合,我们又回到了同样的陷阱。

除了交叉验证之外,还有许多方法可以处理过拟合。最受欢迎的是在评估函数中添加正则化项。另一个选择是执行卡方等统计显著性检验,以分析添加更多复杂性是否会对类分布产生任何影响。这里的一个重点是没有特定的技术“解决”过拟合问题。例如,我们可以通过陷入欠拟合(偏差)的相反误差来避免过度拟合(方差)。同时避免两者都需要学习一个完美的分类器,并没有一种技术总能做到最好(没有免费的午餐)。

5. 高维中的直觉失效

过拟合后,机器学习中最大的问题是维数的诅咒。这个表达式意味着当输入是高维的时,许多在低维度下工作正常的算法变得难以处理。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读