机器学习简介

100 阅读23分钟

机器学习的介绍

机器学习是计算机科学的一个领域,它使用统计技术使计算机系统具有利用数据 "学习"的能力,而无需明确编程。

在机器学习中,通过输入大量的例子来训练算法,并调整其内部参数以减少错误或提高预测能力。一旦算法经过训练,它就可以用来预测或分类它以前没有见过的新数据。

机器学习的应用范围很广,包括图像和语音识别、自然语言处理、欺诈检测、推荐系统和自主车辆。随着产生的数据量不断增加,机器学习正成为解决复杂问题和推动各领域创新的一个越来越重要的工具。

image.png

传统编程V/S机器学习

传统编程V/S机器学习

传统编程涉及为计算机编写明确的指令,以解决一个特定的问题。程序员必须仔细定义问题,并为计算机如何解决该问题提供详细的指示。当问题被很好地定义并且解决方案可以很容易地被编码时,这种方法是有效的。

相比之下,机器学习涉及训练算法从数据中学习,并根据这些数据做出预测或决定。程序员不需要为如何解决问题提供明确的指示;相反,算法通过输入大量的例子来学习如何解决问题。

总的来说,传统的编程非常适合于那些可以很容易地定义和使用明确指令解决的问题。另一方面,机器学习更适合于那些太复杂或太难用传统编程方法解决的问题,如图像识别或自然语言处理。

例如,假设你想对不同类型的动物图像进行分类,如狗、猫和鸟。一个机器学习算法可以在每一种动物的图像的大型数据集上进行训练,用标签表明每张图像代表哪种动物。该算法将分析每张图片,并识别出将每种动物与其他动物区分开来的模式。

相比之下,人类可能依靠自己的经验和对动物的了解来对图像进行分类。他们可能会寻找诸如皮毛、胡须和鸟嘴等特征来识别每一种动物。然而,他们的分类可能会受到个人偏见或经验的影响,而且他们的决策过程可能不像机器学习算法那样一致或准确。

机器学习的历史

机器学习已经存在了几十年,但它在20世纪没有像今天这样流行或广泛使用。这其中有几个原因:

  1. 有限的数据可用性:机器学习算法需要大量的数据来进行有效的训练,但在20世纪,数据的收集和存储比今天要有限得多。这使得在大型数据集上训练和测试机器学习算法变得困难。
  2. 有限的计算能力:机器学习算法的训练和运行需要大量的计算能力,但在20世纪,计算机的功能和价格都比现在要低很多。
  3. 对机器学习的理解有限:在20世纪,机器学习领域仍处于早期阶段,对如何有效开发和应用机器学习算法的理解有限。这使得在实际应用中开发和应用机器学习算法更加困难。

然而,随着大数据的出现,强大的计算机,以及机器学习算法的进步,机器学习在21世纪变得更加流行和广泛使用。

人工智能V/s机器学习V/s深度学习

人工智能是一个广泛的领域,包括任何被设计来执行通常需要人类智能的任务的技术或系统。这包括自然语言处理、图像识别、决策和问题解决等任务。

ML作为人工智能的一个子领域被开发出来,因为早期的人工智能系统在从数据中学习和随着时间的推移提高其性能方面的能力有限。在人工智能的早期阶段,系统大多是基于规则的,这意味着它们遵循一套预先编程的规则来做决定或执行任务。虽然这些系统对某些应用很有效,但它们无法从经验中学习或适应新情况。

机器学习专注于开发能够从数据中学习的算法,并在没有明确编程的情况下做出预测或决定。ML算法可以在大型数据集上进行训练,并能识别数据中的模式和关系,从而做出预测或决策。

**深度学习(DL)**作为机器学习(ML)的一个子领域被开发出来,以解决传统ML方法对某些应用的限制。虽然ML算法对许多任务都很有效,但在解决涉及大量数据或需要高度准确性的复杂问题时,它们有局限性。

DL通过使用人工神经网络克服了这些限制,人工神经网络的灵感来自于人脑的结构和功能。这些神经网络能够从大量的数据中学习,并能识别数据中的复杂模式和关系。这使得DL算法能够解决比传统ML方法更复杂的问题,如图像和语音识别、自然语言处理和自动驾驶。

image.png

AI ML和DL

机器学习的类型

image.png 监督学习

在监督学习中,算法从包括输入和输出数据的标记数据中学习。该算法使用这些标记的数据来学习一个将输入映射到输出的函数,然后可以用来对新的、未标记的数据做出预测。

监督学习可以分为两个主要类别:分类回归

  • 在分类中,目标是为一个给定的输入预测一个分类标签或类别。例如,一个监督学习算法可以被训练成根据电子邮件的内容将其分类为垃圾邮件或非垃圾邮件。
  • 在回归中,目标是为给定的输入预测一个连续值。例如,一个监督学习算法可以被训练成根据房子的大小和位置来预测它的价格。

监督学习的过程通常包括将标记的数据集分成训练和测试集。该算法在训练集上进行训练,在测试集上进行评估,以衡量其性能。性能通常用准确性、精确性、召回率和F1分数等指标来衡量。

image.png

无监督学习

在无监督学习中,算法从未标记的数据中学习,并试图在没有任何预先指定的输出的情况下在数据中找到模式或结构。无监督学习的目标是发现数据中的隐藏模式或结构。

无监督学习可以用来寻找数据中的相似性、差异或集群。例如,无监督学习算法可以根据类似客户的行为或特征将其分组,而不需要告诉他们什么是相似性。

聚类、降维、异常检测和关联规则学习都是无监督学习的重要技术。

聚类:聚类是一种技术,用于根据相似的数据点相互之间的相似性将其分组。它通常用于市场细分,即根据客户的行为或特征将其归为一类。

  • 聚类:聚类是一种技术,用于将类似的数据点根据它们之间的相似性组合在一起。它通常用于市场细分,即根据客户的行为或特征将其分组。
  • 降维:降维是一种技术,用于减少数据集中的特征数量,同时保留重要信息。这在处理高维数据(如图像或文本)时非常有用,在这种情况下,可能难以分析和可视化数据。
  • 异常检测:异常检测是一种用于识别与数据集其他部分明显不同的数据点的技术。这对于检测欺诈、错误或其他不寻常的行为很有用。
  • 关联规则学习:关联规则学习是一种用于识别数据集中不同项目之间模式或关系的技术。例如,在市场篮子分析中,它可以用来识别哪些物品通常是一起购买的。

半监督学习

半监督学习是一种机器学习,它结合了有标记和无标记的数据来训练一个模型。半监督学习的目标是利用有限的标记数据来指导模型的学习过程,同时利用大量的未标记数据来提高其性能。

在半监督学习中,标记的数据被用来指导模型的学习过程,而未标记的数据被用来学习数据的基本结构和模式。当标注数据有限或获取成本较高,但有大量未标注数据可用时,这种方法就特别有用。

半监督学习的一个简单例子是建立一个模型来对猫和狗的图像进行分类。由于预算有限,我们可能只能获得几百张图片的小型标记数据集。

image.png 强化学习

强化学习是机器学习的一种类型,代理通过与环境互动并接受奖励或惩罚形式的反馈,学会在环境中做出决定。代理人的目标是学习一种政策,使其在一段时间内的累积奖励最大化。

在强化学习中,代理人在环境中采取行动,并接受奖励信号形式的反馈。代理人的目标是学习一个将状态映射到行动的政策,这样它就能在一段时间内使其累积奖励最大化。代理人通过尝试不同的行动和观察所产生的奖励,使用试错法来学习这个政策。

强化学习的一个典型例子是训练一个人工智能代理玩游戏。代理人与游戏环境互动,采取诸如向左或向右移动的行动,并根据其行动获得奖励或惩罚。代理人学会随着时间的推移调整其行为,以使其累积的奖励最大化,最终成为熟练的游戏者。

image.png

基于生产环境的ML类型

生产环境:在机器学习的背景下,生产环境是一个系统或环境,其中部署了经过训练的机器学习模型,以根据新数据进行预测或提供见解。

有几种基于生产环境的机器学习(ML)类型:

批量学习:在批量学习中,模型在一个大的数据集或一批数据上进行训练,通常使用一种优化成本或目标函数的算法,如梯度下降。然后将训练好的模型储存起来,以后用于对新的数据进行预测,而无需进一步训练。

批量学习通常用于数据是静态的应用,目标是开发一个可以对新数据做出准确预测的模型。这种应用的例子包括信用评分、欺诈检测和图像识别。批量学习的优点之一是它允许使用计算密集型的算法和技术,这可以导致具有高准确性的模型。

批量学习的主要问题是:

  • 它假定用于训练的数据分布与生产环境相同,这可能并不总是正确的。
  • 如果基础数据发生变化,模型可能会随着时间的推移变得不太准确,这可能需要定期重新训练。
  • 它需要大量的数据来训练模型,这在一些数据稀缺的应用中可能是一个挑战。
  • 它不太适合于实时预测应用,因为模型需要离线训练。

批量机器学习的缺点:

  1. 大量的数据:批量机器学习需要大量的数据来训练模型,这在一些数据稀缺或难以获得的应用中可能是一个挑战。这在数据收集昂贵的领域尤其有问题,比如在医疗或金融领域,数据收集和注释的成本可能很高。
  2. 硬件限制:批量学习算法的计算成本很高,需要大量的内存,因此很难在一台机器上训练大型模型。这对那些无法获得高性能计算资源或基于云的基础设施的组织来说是一个重大挑战。
  3. 可用性:批量机器学习假定所有的训练数据都是一次性的,这可能并不总是可行或实际的。在一些应用中,数据可能是实时生成的,可能无法将其全部储存起来供以后批量处理。对于需要实时预测的应用来说,这可能是个问题,因为模型需要实时训练。

在线学习

在线学习,也被称为增量学习或流式学习,是一种机器学习技术,模型在新传入的数据上持续训练,而不是在预先收集的数据上分批训练。

在在线学习中,随着新数据的出现,模型被即时更新。这使得模型能够快速适应基础数据分布的变化,使其非常适合于数据不断变化的动态环境。在线学习通常用于欺诈检测、推荐系统和自然语言处理等应用。

在线学习的一个优点是,与批量学习相比,它需要更少的数据来训练模型,这使得它更适合于数据稀缺或昂贵的应用。另一个优点是,模型可以快速适应新的数据,使其成为实时应用的理想选择。

image.png

何时使用在线学习和批量学习

学习率: 在在线学习中,学习率决定了模型在每一个新的数据点上更新其权重或参数时所采取的步骤大小。高学习率意味着模型在每个新数据点上快速更新其参数,而低学习率意味着模型改变其参数的速度较慢。

学习率在在线学习过程中起着至关重要的作用,因为它影响到模型的稳定性和收敛性。如果学习率太高,模型可能会过度追求最优权重而变得不稳定,而如果学习率太低,模型可能收敛得太慢或卡在一个次优解中。因此,选择一个合适的学习率对于实现在线学习的良好性能至关重要。

核心外学习: 核外学习,也被称为外部记忆学习,是机器学习中用于训练模型的一种技术,其数据集太大,无法放入计算机的内存。它涉及到从磁盘上小批量地读取和处理数据,而不是一次性将整个数据集加载到内存中。

核心外学习通常用于处理几千兆字节甚至几十兆字节大小的数据集。通过从磁盘上分块读取数据,核外学习使模型能够从整个数据集中学习,而不需要大量的内存。

核心外学习的主要优势是它能够处理无法使用传统内存技术处理的大型数据集。它还可以更有效地利用计算资源,因为数据是分批处理的。

在线学习的一些缺点包括:

  • 复杂性增加:由于需要不断地更新模型参数,在线学习算法可能比批量学习算法更复杂。这种复杂性会使解释模型和理解它是如何进行预测的更加困难。
  • 预测 对初始条件的敏感度:在线学习算法对初始条件很敏感,这意味着初始模型参数的微小变化会导致巨大的不同结果。这可能会使一致地再现相同的结果成为一种挑战。

批量学习与在线学习

image.png

基于实例的学习和基于模型的学习

这些是基于ml模型学习方式的机器学习类型。

  • 基于实例的学习:在基于实例的学习中,模型通过在内存中存储训练实例来学习,并根据新实例和存储实例之间的相似性进行预测。该模型没有明确地学习数据的泛化,而是学习记忆训练实例和它们相应的标签。

基于实例的学习的优点之一是,它可以处理复杂的决策边界,并且对嘈杂的数据更加稳健。然而,它也可能是记忆密集型的,而且可能不能很好地概括未见过的实例。

  • 基于模型的学习:在基于模型的学习中,模型通过学习一个模型或一个将输入特征映射到输出标签的函数,来学习归纳训练数据。该模型在整个数据集上进行训练,学到的参数被用来对新的实例进行预测。

基于模型的学习的优点之一是它可以很好地概括未见过的实例,特别是当数据是无噪音的并且模型被适当地规范化时。然而,当数据有噪声或决策边界复杂时,它可能表现得不好。

image.png

到此为止,我们已经涵盖了机器学习的介绍。现在我们将发现在掌握机器学习的过程中,我们将面临哪些挑战。

机器学习的挑战

机器学习面临着一些挑战,这些挑战会影响模型的性能和可靠性,其中一些挑战包括:

  1. 数据收集: 为了让机器学习算法从数据中学习,需要一个大型的、多样化的、有代表性的数据集。有时,某项特定任务所需的数据可能无法获得,或者难以获得。
  2. 不够的数据/标记的数据: 即使有了数据,它的质量也可能不足以训练机器学习算法。数据可能是有噪音的,不完整的,或有偏见的,这可能会影响所产生的模型的准确性和可靠性。此外,许多机器学习算法需要标记的数据,而获得这些数据可能很费时费力,特别是对于复杂的任务或需要人类的专业知识来准确标记数据时。
  3. 非代表性数据: 非代表性数据是机器学习中的一个常见挑战,即训练数据不能准确反映现实世界中的数据分布。这可能是由于各种原因造成的,包括有偏见的抽样,不平衡的类,或基础数据分布随时间的变化。当机器学习模型在非代表性的数据上进行训练时,它可能会导致在新的、未见过的数据上表现不佳。该模型可能无法归纳出与训练数据不同的数据,导致准确性和可靠性差。采样噪音是数据的自然变化,由于它通常是从人口的一个子集中收集的,导致模型的准确性较差。采样偏差是由于非代表性的数据收集或样本选择而产生的系统性错误,导致模型偏向于数据中的某些模式,不能准确反映真实的人口。
  4. 质量差的数据:低质量的数据是机器学习中的一个挑战,训练数据包含错误、噪音或缺失值,会影响模型的准确性和可靠性。低质量的数据可能来自各种因素,如数据收集错误,数据输入错误,或过时或不相关的数据。
  5. 不相关的特征: 虽然机器学习模型的目的是为了给出最好的结果,但如果我们把垃圾数据作为输入,那么结果也将是垃圾。因此,我们应该在我们的训练样本中使用相关的特征。如果训练数据具有良好的特征集或较少或没有不相关的特征,那么一个机器学习模型就可以说是好的。
  6. 过拟合和欠拟合:机器学习模型可能会出现过拟合的情况,即模型对训练数据学习得太好,而不能概括到新的数据;或者是欠拟合,即模型太简单,不能捕捉数据中的潜在模式。

7.7.软件集成: 软件集成是机器学习中的一个挑战,机器学习系统的不同组成部分,如数据源、算法和用户界面,必须被集成并使其无缝地工作在一起。

这可能涉及到整合不同的软件包和库,确保它们是兼容的,并能相互沟通。它还可能涉及设计和开发定制的软件组件,以处理机器学习系统中的特定任务。

8.8.涉及的成本:机器学习涉及的成本不仅包括硬件和基础设施,还包括数据采集和存储,软件和工具,以及人员和专业知识。

获取和存储大量的数据可能是昂贵的,特别是如果数据来自多个来源或需要专门的设备或传感器。机器学习模型也需要大量的计算资源,如高端CPU或GPU,来训练和部署,这可能是昂贵的。

机器学习开发生命周期(MLDLC/MLDC)

机器学习开发周期(MLDLC)是开发人员、数据科学家和工程师在构建、测试和部署机器学习模型时遵循的流程。以下是一个典型的MLDLC:

  1. 确定问题框架:确定问题框架是在机器学习的背景下定义问题的过程。它涉及到了解可用的数据,可以使用的建模技术,以及可以用来评估模型性能的成功指标。

  2. 收集数据:数据收集是指从各种渠道收集数据的过程,这可能包括调查、访谈、焦点小组、观察和其他方法。重点是收集针对研究问题或正在研究的问题的数据。数据收集可以涉及定量和定性数据。

  3. 数据预处理:数据预处理是指在机器学习模型中使用数据之前的准备过程。这个过程涉及各种技术,如数据清洗、数据转换、特征选择和特征缩放。数据预处理的目的是提高数据的质量,减少噪音,并使数据更适合机器学习算法。

  4. 探索性数据分析:这是一种分析和理解数据的方法,包括通过视觉和统计方法探索和总结数据的主要特征。EDA的目标是更好地理解数据,并确定可能存在的任何模式、趋势、异常值或关系。EDA涉及的主要步骤是数据收集、数据清洗、数据可视化、统计分析和数据解释

  5. 特征工程和选择:特征工程包括从现有数据中创建新的特征,以提高模型的预测能力。这可能涉及到改造现有的特征,结合多个特征,或基于领域知识创建全新的特征。特征工程的目标是创建一组信息量大且相关的特征,以帮助机器学习模型准确捕捉数据中的潜在模式。另一方面,特征选择涉及到从原始特征集中选择一个信息量最大的特征子集。这样做是为了简化模型,减少过拟合的风险。当模型过于复杂并捕捉到数据中的噪声而不是潜在的模式时,就会出现过拟合。

  6. 模式训练、评估和选择模型训练包括使用训练数据集来建立一个能够准确预测新数据结果的模型。训练数据集被用来训练模型,通过迭代过程调整模型参数。这个过程包括将数据输入模型,计算预测误差,并调整模型参数以最小化误差。模型评估是在一个单独的验证数据集上评估训练好的模型的性能的过程。验证数据集被用来评估模型对新数据的归纳能力。模型的性能是用各种指标来评估的,如准确率、精确度、召回率、F1得分和曲线下面积(AUC)。模型的选择 包括从一组候选模型中根据其在验证数据集上的表现选择最佳模型。模型选择可以包括使用交叉验证、正则化技术和超参数调整来比较不同模型的性能。模型选择的目标是选择一个能够准确预测新数据结果的模型,同时避免过度拟合。 这些步骤包括在训练数据集上训练模型,在验证数据集上评估其性能,并根据其性能选择最佳模型。通过优化这些步骤,有可能建立一个准确而有效的机器学习模型。 image.png

  7. **模型部署:**这是一个将训练有素的机器学习模型整合到生产环境中的过程,它可以对新数据进行预测。它包括导出模型,将其整合到生产环境中,测试其性能,监测其准确性,并定期更新。正确的模型部署需要数据科学家、软件工程师和运营团队之间的合作,以确保部署的模型满足业务需求并顺利运行。

  8. 测试: 机器学习中的测试是在一组它以前没有见过的数据上评估训练过的模型的性能和准确性的过程。这通常是使用一个单独的数据集,称为测试数据集,它与用于训练模型的数据集不同。它也可以与终端客户一起进行,包括让终端用户或客户参与测试过程,以确保系统或产品符合他们的要求和期望。它涉及到收集最终用户或客户对模型的性能和预测的反馈。这种反馈可以用来提高模型的准确性,解决任何问题或担忧,并完善整个用户体验。

  9. 优化:在机器学习中,优化是指通过调整参数或架构来提高训练过的模型的性能的过程。优化的目标是使模型的误差或损失函数最小化,提高其准确性和预测能力。