为什么需求机器学习?
作者头像
  • 2020-09-07 09:28:07 2

数据无处不在。现在,无数系统正在收集各种数据,包括历史记录、日志、用户交互数据等。几十年前,大多数公司甚至连1%的数据都无法有效管理。因此,数据库常常需要定期清理,只有关键数据才会永久保存在服务器上。

然而,随着云计算技术的发展,几乎每家公司都能利用可扩展的云基础设施来处理海量数据。工具如Apache Hadoop和Apache Spark使得数据科学家和工程师能够高效地处理大数据。尽管如此,大数据的价值何在?从商业角度来看,数据只有在辅助决策、减少不确定性并提供更好洞察时才有价值。这意味着,若没有适当的工具和知识,堆积的数据可能会增加成本,而非创造利润。

机器学习作为人工智能的一个重要分支,旨在通过现有数据集建立描述性和预测性的模型。本书专注于实用的无监督学习解决方案,主要探讨如何通过寻找隐藏的原因和关系来描述这些情况。虽然从理论角度看,这有助于展示机器学习技术的主要差异,但只有对目标有全面理解(不仅限于技术层面),才能得出有意义的结论。这就是我们需要机器学习的原因。

人类的认知能力启发了许多系统,但在影响因素众多的情况下,人类分析能力可能不足。例如,一位新教师在初次接触班级时,可以通过观察估算女生的比例。然而,当全校学生聚集在一起时,性别区分变得不那么明显。这是因为所有学生在教室里都是显而易见的,但在操场上,性别区分受到多种因素的影响(如身高差异)。由此可见,大量数据通常蕴含大量信息。为了提取和分类这些信息,我们需要采用自动化的方法。

在深入讨论1.2.1节之前,我们先回顾一下高德纳(Gartner)最初定义的四种分析类型:描述性分析、诊断性分析、预测性分析和规范性分析。但在这里,我们重点关注分析系统的行为,以便更好地控制其运作。

描述性分析、诊断性分析、预测性分析和规范性分析的流程如图所示。

1.2.1 描述性分析

在几乎所有数据科学场景中,首先要解决的问题是理解数据的本质。我们需要知道系统如何运作或数据集描绘的内容。如果没有这种分析,我们的知识将是有限的,无法做出任何假设。例如,通过图表观察一个城市几年的平均温度,但如果我们无法描述发现的现象的相关性、季节性、趋势等时间序列特征,其他问题将无法解决。具体来说,如果没有发现对象组之间的相似性,就无法找到一种方法来总结它们的共同特征。数据科学家必须针对每个具体问题使用特定工具,但在这个过程中,所有可以解答的问题都将得到答案。

此外,这个过程具有明确的商业价值,通过让不同利益相关者参与,可以汇集他们的知识并转化为共同的语言。例如,在处理医疗数据时,医生可能会讨论遗传因素,但从我们的目的来看,最好是找到某些样本之间的相关性,而不是将它们视为独立的统计单元。通常,描述性分析的结果包含所有度量指标和结论的摘要,这些度量指标和结论是理解和减少不确定性的基础。例如,数据科学家应该能够回答自动关联、峰值周期、潜在异常值数量以及趋势出现等问题。

1.2.2 诊断性分析

迄今为止,我们已经处理了输入数据,即特定基础流程生成后的观察结果。系统描述的自然问题是多方面的。温度更多地取决于气候和地理因素,这些因素既容易观察,又可能完全隐藏。时间序列中的季节性显然受一年中周期的影响,但异常值又该如何解释?

例如,我们在冬季发现了一个温度峰值,如何证明其合理性?在简单的方法中,我们可以将其视为可以过滤掉的噪声异常值。但如果该值已被观察到且具有价值(例如,各方都认为这不是错误),我们应假设存在隐藏或潜在原因。这可能是令人惊讶的,但大多数复杂场景都有大量难以分析的潜在原因(有时称为因素)。总的来说,这不是一个坏状况,但正如我们将讨论的那样,将它们纳入模型并通过数据集了解其影响非常重要。

另一方面,决定抛弃所有未知因素会降低模型的预测能力,并降低准确性。因此,诊断分析的主要目的是列出可观察和可测量的因素(称为因子),以及所有潜在因素。在某种程度上,由于我们可以轻松监控结果,诊断分析类似于逆向工程的过程,但要检测潜在原因与可观察结果之间的关系更加困难。因此,这种分析通常是概率性的,有助于找出某个特定原因导致特定影响的概率。这样,排除非影响因素并确定最终关系也更容易。然而,这个过程需要更深入的统计知识,除了一些例子如高斯混合外,这类分析将不会在本书中详细讨论。

1.2.3 预测性分析

一旦收集了所有描述性知识并对潜在原因有了满意的理解,我们就可以创建预测模型了。预测模型的目的是根据模型的历史和结构来推断未来的结果。在许多情况下,我们会将预测阶段与下一阶段结合起来,因为我们更关心如何影响输入,而不是系统的自由演化。

也就是说,我们只关注预测,考虑最重要的因素。首先需要考虑的因素是流程的性质。我们不需要机器学习用于确定性过程,除非这些过程过于复杂,以至于不得不将它们视为黑箱。在本书讨论的大多数例子中,这些过程都是无法消除不确定性的随机过程。例如,一天中的温度可以建模为条件概率(例如高斯分布),具体取决于后面的观测值。因此,预测不是将系统变为确定性系统,而是减少分布的方差,使概率仅在较小的温度范围内较高。

如果模型被参数化,变量受学习过程影响(例如高斯分布的均值和协方差矩阵),那么我们的目标是在偏差-方差权衡中找到最佳平衡。由于本章只是概述,我们不使用数学公式来解释概念,只需一个定义即可(更多细节可以在《精通机器学习算法》一书中找到)。

常用的术语是估计量。偏差受不正确的假设和学习过程的影响。换句话说,如果一个过程的平均值是5.0,但我们的估计量平均值为3.0,可以说该模型是有偏差的。考虑到后面的例子,如果观测值和预测之间的误差不为零,我们使用有偏差的估计量。重要的是要理解,并非每个估计都需要零误差,而是在收集足够样本并计算均值时,其值应非常接近零。当其大于零时,意味着我们的模型无法正确预测训练值。很明显,我们寻找的是无偏估计量,这些估计量能够产生准确的预测。

另一方面,方差可以衡量不属于训练集的样本的稳健性。在本节结尾,我们提到过程通常是随机的。这意味着任何数据集都必须被视为从特定数据生成过程[pdata]中提取的。如果拥有足够代表性的元素[xi]∈[X],我们可以假设使用有限数据集[X]训练分类器会生成一个模型,该模型可以对从[pdata]中提取的所有潜在样本进行分类。

例如,如果需要对仅限于肖像的面部分类器进行建模(不允许进一步的面部姿态),那么我们可以收集一些不同个体的肖像。建模过程需要关注的是不遗漏现实生活中可能出现的类别。假设我们有10000张不同年龄和性别的免冠照片,但没有任何戴帽子的肖像。当系统投入使用时,会收到客户反馈,反映系统对许多图片进行了错误分类。通过分析,发现错误分类的是戴帽子的人。显然,这个肖像模型对错误不负责,因为它用仅代表数据生成过程的一个区域的样本进行了训练。因此,为了纠正这个问题,我们需要收集其他样本并重新训练。但现在我们决定使用更复杂的模型,希望它能更好地运行。结果我们观察到验证准确性降低(例如在训练阶段未使用的子集的准确性),以及训练精度提高。这里发生了什么?

当估计量学会完美地对训练集进行分类,但对未见过的样本分类能力较差时,可以说它是过拟合的,并且其方差过高(反之,欠拟合模型则具有较大的偏差,所有预测都非常不准确)。直观地讲,该模型对训练数据过于了解,失去了概括能力。为了更好地理解这个概念,让我们看看高斯数据的生成过程,如图所示。

如果训练集没有以完全一致的方式采样,或者部分不平衡(某些类的样本比其他类少),或者模型过度拟合,则结果可能表示为不准确的分布。在这种情况下,模型被迫学习训练集的细节,直到它从分布中排除了许多潜在的样本。结果不再是高斯分布,而是双峰分布,此时一些概率会偏低。当然,测试和验证集是从训练集未覆盖的小区域中采样的(由于训练数据和验证数据之间没有重叠),因此模型在其任务中失败,提供完全错误的结果。

换句话说,模型已经学会了处理过多的细节,导致方差过高,在合理的阈值范围内增加了不同分类的可能性。例如,从肖像分类器可以了解到,戴蓝色眼镜的人是年龄在30至40岁之间的男性(这是一种不切实际的情况,因为细节水平通常很低,但有助于理解问题的本质)。

总结来说,一个好的预测模型必须具有非常低的偏差和适当的低方差。不幸的是,通常无法有效地最小化这两个值,因此我们需要接受平衡。具有良好泛化能力的系统可以具有较高的偏差,因为它无法捕捉所有细节。相反,高方差允许非常小的偏差,但模型的能力几乎仅限于训练集。在本书中,我们不打算讨论分类器,但你应该完全理解这些概念,以便在处理项目时遇到不同行为。

1.2.4 规范性分析

这项工作的主要目的是回答:如何影响系统的输入?为了避免混淆,最好将这个概念翻译成纯粹的机器学习语言,因此问题可以是:获得特定输入需要哪些输入值?

如1.2.3节所述,此阶段通常与预测性分析结合,因为模型通常用于这两个任务。但在某些特定情况下,预测仅限于空输入演化(例如在温度示例中),并在规定阶段分析更复杂的模型。重点在于控制影响特定输入的所有因素。

有时,当没有必要时,我们只做表面分析。当原因不可控时(例如气候事件),或者当包含全局潜在参数集更简单时,就会发生这种情况。后一种选择在机器学习中非常普遍,并且已经开发了许多算法,在已存在潜在因素(例如EM或SVD推荐系统)的情况下仍能高效工作。出于这个原因,我们没有关注这一特定方面(这在系统实际中非常重要),同时隐含地假设模型有能力研究不同输入产生许多可能的输入。

例如,在深度学习中,我们可以创建反向模型来生成输入空间的明显映射,从而强制生成特定的输入类。以肖像分类器为例,我们可能有兴趣发现哪些视觉要素会影响类的输入。诊断性分析通常对此有效,因为原因非常复杂且细节较低(例如轮廓形状)。因此,反向模型可以通过显示不同几何区域的影响来帮助解决规范性问题。然而,不完整的规范性分析超出了本书的范围,在许多情况下也没有必要使用规范性分析,因此不会在后续章节中考虑这样的步骤。现在让我们分析不同类型的机器学习算法。

本文摘自《Python无监督学习》

用scikit-learn、TensorFlow完成机器学习和深度学习,拥抱机器学习,用Python实现无监督学习算法,构建高效且实用的解决方案。

本书通过Python语言讲解无监督学习,全书共10章,从基础知识、聚类、高级聚类、层次聚类、软聚类和高斯混合模型、异常检测、降维和主成分分析、无监督神经网络模型、生成式对抗网络和自组织映射等方面进行详细讲解。第10章以问题解答的形式对前面9章涉及的问题给出解决方案。

本书适合数据科学家、机器学习从业者和一般的软件开发人员阅读,通过学习本书介绍的无监督学习理论和Python编程方法,读者可以在实践中获得有价值的参考。

    本文来源:图灵汇
责任编辑: :
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
机器需求为什么学习
    下一篇