机器学习是什么?

此生再无相见时 提交于 2019-12-10 09:59:53

本文转载自:机器学习是什么?

问题:机器学习是什么?

认知计算

该问题的第一类答案是 IBM 提出的认知计算。其目标是构建不需要显式编程的机器(计算机、软件、机器人、网站、移动应用、设备等)。 这种机器学习观点可追溯到 Arthur Samuel 在 1959 年的定义:

机器学习:让计算机无需显式编程也能学习的研究领域。

Samuel 的定义很好,但可能有点太模糊。
1998 年,另一位著名的机器学习研究者 Tom Mitchell 提出了一个更精确的定义:
如果计算机程序对于任务 T 的性能度量P通过经验E得到了提高,则认为此程序对经验E进行了学习

为了阐述清楚,我们举一个例子。假设我们正在开发一个信用卡欺诈检测系统。该系统的任务T是标记信用卡交易是否存在欺诈,性能度量指标P可以是已检测出的欺诈性交易的百分比,该系统会学习已检测出的欺诈性交易比例是否不断增长。经验E是已处理的交易记录集合。处理一个交易后,我们就会知道它是否存在欺诈,而且可以将该信息提供给该系统进行学习。

请注意,性能度量指标的选择至关重要。我们选的度量指标过于简单,实际上,如果系统将所有交易都标记为存在欺诈,那么它会实现 100% 的性能,但是这个系统将毫无用处!我们需要更合理的指标,比如检测出尽可能多的欺诈,同时尽可能少地将诚信交易标记为欺诈。幸运的是,可通过多种方法实现这个双重目标,但我们不会在这里讨论这些方法。重点在于,有了性能指标后,我们就能告诉系统是否学习该经验。

机器学习算法

上述定义非常好,因为它们为机器学习设定了清晰的目标。但是,它们没有告诉我们如何实现该目标。我们应该让定义更明确一些。这就需要第二类定义,这类定义描述了机器学习算法。以下是一些最流行的定义。在每种情况下,都会为算法提供一组示例供其学习。

监督式学习:为算法提供训练数据,数据中包含每个示例的“正确答案”。例如,一个检测信用卡欺诈的监督学习算法接受一组记录的交易作为输入。对于每笔交易,训练数据都将包含一个表明它是否存在欺诈的标记。
无监督学习:该算法在训练数据中寻找结构,比如寻找哪些示例彼此类似,并将它们分组到各个集群中。
我们还有更具体的定义,但其中仍没有下一步操作的线索。

机器学习问题

如果定义了机器学习算法类别还不够,那么我们能否更具体一点?一种可能的方法是通过分析机器学习任务能解决的问题类型,对任务进行细化。以下是一些常见问题:
回归:一种监督学习问题,其中要学习的答案是一个连续值。例如,可为算法提供一条房屋销售及其价格的记录,让它学习如何设定房屋价格。
分类:一种监督学习问题,其中要学习的答案是有限多个可能值之一。例如,在信用卡示例中,该算法必须学习如何在“欺诈”与“诚信”之间找到正确的答案。在仅有两个可能的值时,我们称之为二元分类问题。
细分:一种无监督学习问题,其中要学习的结构是一些类似示例的集群。例如,市场细分旨在将客户分组到有类似购买行为的人群中。
网络分析:一种无监督学习问题,其中要学习的结构是有关网络中的节点的重要性和作用的信息。例如,网页排名算法会分析网页及其超链接构成的网络,并寻找最重要的网页。谷歌等 Web 搜索引擎使用的就是这种算法。其他网络分析问题包括社交网络分析。
机器学习可帮助解决的问题类型还有许多,但我的介绍就到此为止了,因为它们对我们没有太大帮助。尽管我们离机器学习的定义更近了,但仍没有一个定义来告诉我们要做什么。

机器学习工作流

上述定义的问题在于,开发一个机器学习算法并不足以获得一个能学习的系统。诚然,机器学习算法与学习系统之间存在着差距。我在机器学习算法不等于学习机器中讨论了这一差距,并得出了这个机器学习工作流:
在这里插入图片描述
机器学习算法被用在工作流的“训练”步骤中。然后它的输出(一个经过训练的模型)被用在工作流的“预测”部分中。好的与差的机器算法之间的区别在于,我们在“预测”步骤中获得的预测质量。这就引出了机器学习的另一个定义:
机器学习的目的是从训练数据中学习,以便对新的、未见过的数据做出尽可能好的预测。
这是我最喜欢的定义,因为它链接了机器学习工作流的“训练”步骤与“预测”步骤。

我喜欢上述定义的一个地方是,它解释了为什么机器学习很难。我们需要构建一个模型,将答案定义为示例特征的函数。目前为止还不错。问题在于,我们必须构建一个模型来获得对无法预见数据的良好预测。您可能认为,这似乎是一个无法完成的任务。如果不查看我们做出预测所用的数据,我们如何能评估模型的质量?机器学习研究人员正忙于回答这个问题。一般观点是,我们假设无法预见的数据与我们能看见的数据类似。如果模型能很好地处理我们能看见的数据,那么它应能很好地处理无法预见的数据。当然,细节决定成败,盲目地依赖于我们能看见的数据,可能导致称为过拟合的重大问题。

一个简单示例

我们稍微解释一下这个定义。数据以表的形式传入,每行一个示例。示例使用特征进行描述,每列一个特征。有一个包含每个示例的“正确答案”(事实库)的特殊列。以下就是这样一个数据集的示例,使用了过去的房屋销售数据:

名称 面积 房间数 是否有泳池 价格
House1 2,000 4 0 270,000
House5 3,500 6 1 510,000
House12 1,500 4 0 240,000

有 3 个示例,每个示例通过 4 个特征进行描述:名称、面积、房间数和是否有泳池。目标是价格,在最后一列中表示。目的是找到一个将价格与各个特征关联起来的函数,例如:

价格 = 100 * 面积 + 20,000 * 是否有泳池 + 15,000 * 房间数

有了这个函数,就可以使用它来处理新数据。例如,假设我们获得了一栋新房子,它的名称为 house22,面积为 2,000 平方英尺,有 3 个房间,没有游泳池,我们可以计算出一个价格:

价格 (house22) = 100 * 2,000 + 20,000 * 0 + 15,000 * 3 = 245,000

假设 house22 售价为 255,000。我们预测的价格少了 10,000。这是我们希望最小化的预测误差。另一个价格定义公式可能会获得更准确的价格预测。机器学习的目的是找到一个能对未来的房屋销售进行最准确预测的价格公式。

实际上,我们会考虑在我们能看到的数据(比如上表)上提供良好预测的公式。我说的是公式,但机器学习不仅仅是公式。机器学习模型可能要复杂得多。要点是,机器学习模型可用于根据示例特征来计算目标(在这里是价格)。机器学习的目的是找到一种能在未来获得良好预测结果的模型。

机器学习的公式陈述

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!