公告介绍MongoDB 8.0,史上最快的MongoDB!了解更多 >>介绍MongoDB 8.0,史上最快的MongoDB!>>

什么是机器学习?

机器学习(ML)已经一段时间是热门词汇,从首席执行官、商业分析师和数据科学家,到管理员和开发者,每个人都渴望深入了解机器学习的世界。在深入探讨机器学习是什么之前,让我们快速了解机器学习(ML)、深度学习(DL)和人工智能(AI)之间的基本区别。


目录

ML vs AI vs DL

人工智能是计算机科学的一个分支,它利用计算机模仿或复制人脑的决策和解决问题的能力。人工智能的一些流行例子是机器人和自动驾驶汽车。机器学习是人工智能的一个分支或子集,专注于自学习算法,并使用大量数据来获取知识和预测结果——例如,推荐系统和聊天机器人。深度学习属于机器学习的范畴,专注于使用人工神经网络来模拟人脑——例如,面部识别和虚拟助手。


Difference between AI, ML and DL

AI、ML和DL之间的区别

机器学习详解

机器学习是机器通过执行复杂任务获得人类智能的能力,这些任务以前只能由人类完成。机器学习侧重于自学习算法来自我训练并执行一系列动作,而无需明确编程。因此,“机器”可以通过应用一组算法(或规则)对通过多个数据源提供的输入数据进行“学习”,并揭示模式。

输入数据可以是,例如

  • 从各种来源收集的历史数据。
  • 来自交易、物联网设备的实时数据等。
  • 网络爬虫。

一个简单的例子是你的电子邮件收件箱,根据你日常的使用习惯和偏好,可以将邮件分类到不同的类别,如垃圾邮件、重要邮件、购物等。其他常见例子包括谷歌照片中的面部识别以及Alexa和Siri这样的个人助理。

机器学习系统还可以根据结果进行改进,并根据每次迭代的结果调整算法,以产生更好的结果。例如,假设你收到一封来自不熟悉发件人的电子邮件。你的电子邮件算法最初可能将其归类为垃圾邮件——但后来,随着你将其标记为非垃圾邮件或将它移动到收件箱,算法就会学会在未来正确地分类来自该发件人或类似发件人的电子邮件。

机器学习应用涵盖了广泛的技术,包括计算机视觉、自然语言处理、模式识别和预测性维护。这些应用的使用可以在有和没有人干预的情况下进行。

为什么应该学习机器学习技术?

机器学习系统可以以人类无法比拟的速度和准确性解决复杂问题。随着数据的不断生成,我们可以创建出适合预测、决策和自动化日常流程的正确算法。例如,如果你是一名开发者,机器学习可以帮助你进行代码生成和代码分析。如果你是一名测试人员,机器学习算法可以帮助你进行错误检测、边缘测试用例和错误统计分析。同样,如果你是一名作家,ChatGPT可以帮助你进行内容推荐、研究协助和翻译。

企业使用机器学习算法进行描述性(使用数据来描述已发生的情况)、预测性(使用数据来预测未来)或规范性(使用数据做出重要决策)建模。例如,像沃尔玛这样的大型零售连锁店和像汉堡王这样的快餐公司使用描述性分析来形成关联规则,了解客户通常一起购买的商品——如面包-鸡蛋、汉堡-可乐等。Facebook和Netflix这样的公司使用预测性建模,根据客户过去的偏好向客户推荐个性化内容。航空公司使用规范性建模来确定市场状况,并动态调整航班和住宿的价格。

机器学习算法的成功正在推动高级人工智能系统的发展,如自动驾驶汽车、ChatGPT和语音助手。了解这些系统将帮助你跟上相关技术,了解它们的局限性,并利用它们带来更多创新和生产力。例如,ChatGPT是一个非常好的工具,可以帮助你完成很多任务,但你必须能够提出正确的问题。

机器学习的历史(时间线)

尽管人工智能的确切起源存在争议,但1950年艾伦·图灵发表《计算机机制与智能》一文是一个重要的里程碑。后来,1952年,亚瑟·萨缪尔为计算机创建了一个国际象棋游戏,计算机可以在游戏中学习和学习。这是另一个显著的成就,类似于人类大脑的学习过程,它从经验中获取知识。亚瑟在1959年创造了“机器学习”这个术语。

1985年,人工智能和机器学习领域取得了突破,当时发明了第一个神经网络NETtalk。它在一周内学会了发音20,000个单词。1997年,IBM的深蓝棋游戏首次击败了人类国际象棋大师。这是一个巨大的成就,因为机器能够“思考”,理解人类的棋步,根据对手的走法进行下一步,并在游戏中击败人类。

21世纪继续进行了进一步的工作,包括2012年谷歌开发用于图像识别的深度神经网络,2014年的聊天机器人,自动驾驶汽车,个人助理以及今天的推荐系统!

机器学习时间线 人工智能和机器学习多年来是如何演变的

机器学习模型类型

由于数据的性质不同,用于处理和分析数据的解决方案也有所不同。

一些传入数据可能包含用于识别的标签,即可以用来对数据进行分类的特征或特性。例如,水果的颜色、布料的质地、人的年龄、猫的眼睛、产品的价格等都是帮助我们识别相应对象的特征。这种数据称为标注数据

然而,大部分数据以图像、视频、PDF或文本文件、音频、CCTV录像、传感器数据、推文和流媒体数据等形式存在,这些数据没有能够用来分类或标注的独特特性。这种数据称为原始数据,是未标注的。原始数据可以通过人工或脚本标注,以便机器学习算法进行学习。一旦机器能够标注数据,人工干预就变得不再必要,允许机器学习模型自主处理数据。

根据传入数据和我们要解决的业务问题的类型,我们可以应用合适类型的机器学习模型。通常,我们可能需要应用多个模型以达到预期的结果。

以下解释了主要类型的机器学习模型

  1. 监督式机器学习:机器在标注数据集上进行训练,其中标签有助于对数据进行分组。训练数据集包含已知输入和输出,机器需要推导出获取输出的确切函数。一旦机器获得这种知识,它就可以处理新的数据集来验证其学习能力。
  2. 无监督式机器学习:在这种情况下,数据集没有标注。机器无法确定正确的输出,而是根据输入数据的分组、模式、差异和趋势推导出它。
  3. 强化学习:在这里,机器通过试错进行训练,并建立一个奖励系统以做出最佳决策,并根据当前动作和状态决定下一步行动。

Types of machine learning models

三种主要的机器学习模型


另一种机器学习类型是半监督学习模型,它结合了监督学习和无监督学习算法——即它既有标注数据,也包含未标注数据,并包括分类和聚类问题。半监督学习适用于我们有大量未标注数据而标注数据较少的任务。半监督学习也称为弱监督。

监督式机器学习

正如其名,在监督式学习算法中,机器被喂以输入训练数据和期望的输出。机器从训练数据中获取知识,并提出正确的函数,该函数确定输入和输出之间的关系。然后将该函数应用于新数据集,并进行测试以查看是否达到了预期的输出。

一个类似的类比是孩子的头脑,最初是一片空白。我们向他/她展示不同年龄段的人,通过可视化特征,他们能够区分女孩、男孩、年轻、年老等。现在,当孩子看到新的人时,凭借已知的信息,他/她能够将这个人关联并识别为已知类别之一(年老、年轻、女孩、男孩)。


监督式机器学习算法

监督学习算法需要大量高质量标注数据以产生准确的结果。它们分为两大类

分类

在分类模式下,机器学习算法将数据分类到某一类别中。例如,如果你有一个包含2D、三角形、无边、所有边相等、四边等特征的形状数据集,你的模型可以根据这些特征将这些数据分类为三角形、正方形、圆形等。

回归

回归使用统计方法根据独立输入变量预测结果或连续值。例如,通过分析包含诸如里程、年龄、型号、售后服务、增值服务和汽车耐用性等关键特征(输入变量)的历史数据,可以开发一个回归模型,以准确预测特定二手车的价格。

一些流行的监督学习算法包括

朴素贝叶斯:朴素贝叶斯基于贝叶斯定理,在分类问题中非常有效,主要用于文本分类。它基于特征发生的概率独立于其他特征。朴素贝叶斯的一些流行应用包括垃圾邮件过滤、情感分析和信用评分。

决策树:决策树可用于分类和回归。决策树遵循层次结构,根节点代表主要问题/决策的第一个节点。从这里开始,根据一系列问题,根据答案(主要是是/否)将树分为各种路径。以下是决策树如何进行决策的示例。

Decision Tree example

决策树如何通过是/否问题进行分裂

随机森林:随机森林是一种集成监督学习算法,它结合多个决策树来预测输出。它可以用于分类和回归任务,并且可以处理具有多个变量(特征)的大量数据。

支持向量机(SVM):SVM是一种强大的算法,主要用于分类,尽管它也适合回归问题。SVM用于文本分类、异常检测、图像分类、手写识别、垃圾邮件检测和面部检测。支持向量就是数据点,算法试图找到将每个类(类型)的支持向量分开的最佳边界或平面。

线性回归:线性回归用于根据独立数据点找到因变量的连续值。根据变量的散点图,算法找到最佳拟合线和对应用线性方程(即斜率和y截距),该方程给出自变量和因变量之间的关系。使用该方程,我们可以找到所需值。例如,如果我们有2005-2022年间IT员工的平均收入,我们可以绘制收入(因变量)与时间(自变量)之间的关系,并找到线性方程。将新的时间值代入方程中,算法可以预测所需时间(如2025年)的平均收入。

逻辑回归:逻辑回归也称为广义线性模型。逻辑回归与线性回归的不同之处在于,逻辑回归使用逻辑函数方程预测结果概率。概率帮助我们根据0或1将数据点分类到某一类别。例如,一个得分为82%的学生将被某所大学录取,但一个得分为34%或49%的学生则不会。为了确定数据点所属的类别,我们设置一个阈值。在我们的例子中,阈值是50%,所以低于50的将被归为一类,高于50的将被归为另一类。

线性回归和逻辑回归示例图 线性回归和逻辑回归示例图

无监督式机器学习

与监督学习算法不同,这种类型中没有标记的数据集。机器从输入数据中寻找模式、趋势和组,以推导出推断和做出预测。无监督机器学习模型在发现那些没有明确编程或预期的数据中的隐藏模式方面很有用,例如数据挖掘、遗传聚类、医学成像和物体识别。无监督学习算法分为聚类、关联和降维。


无监督机器学习算法

从各种来源收集的大部分数据——如网络爬虫、电子邮件、多媒体和文档——都是非结构化的,并且没有标记的输出。为了理解此类数据,我们需要应用无监督机器学习算法,例如

K-均值聚类:正如其名所示,k-均值是一种聚类算法,其原理是相似的数据点应存在于同一附近,可以分成一个簇。 “K”定义了要创建的簇的数量。一旦确定K,每个数据点就会被分配到特定的簇中。这个过程是迭代的,直到所有数据点都被分配到具有相似特征的簇中。

隔离森林:隔离森林是一种异常检测无监督机器学习算法,它使用决策树来发现数据中的异常。异常是偏离正常行为,如异常数据点、趋势中的异常值或数据集中的漂移。异常检测有助于识别欺诈交易、签名识别和故障设备。隔离森林将异常数据点分割,使它们与其它数据点隔离。

主成分分析(PCA):PCA是一种降维算法,用于探索性数据分析和预测建模。使用数学方法,如正交变换来寻找每个特征的方差,PCA提取数据集的最重要特征(具有高方差的特征),并丢弃具有低方差(最不重要)的特征,从而降低数据的维度。PCA广泛应用于图像和视频压缩、客户画像和数据分类。

Apriori算法:Apriori算法应用广度优先搜索来识别经常一起使用的项目,并创建关联规则。它应用数据挖掘中的市场篮子分析原则——例如,购物篮中一起出现的食品,如面包-鸡蛋、牛奶-饼干等。它被推荐引擎广泛使用,这些引擎根据用户的过去偏好建议电影、歌曲或用户可以选择的项目。

强化学习

在强化学习中,一个智能体(机器)通过试错方法训练在特定环境中采取最佳行动。为每个正确行动建立累积奖励系统(正面反馈),为错误行动添加惩罚(负面反馈)。智能体根据其当前状态和称为策略的一组规则做出决策。它根据反馈过渡到新状态。反馈加强机器的学习。

Reinforcement learning

强化学习过程中的主要参与者


考虑经典的乒乓球游戏,你在游戏中与机器(智能体)对弈。随着游戏的进行,智能体学会击打球,并相应地控制拍子,以确保不会错过球。每次正确的动作(击球)都会让智能体获得一分(奖励),而每次错误的动作(错过球)都会让智能体受到惩罚(给对手得分)。

智能体因良好结果而获得奖励的方法,如得分、排行榜上的位置或徽章,被称为正强化学习。由于这种激励,算法会试图每次都获得良好的结果。智能体因错误而获得负分、惩罚或失去生命的做法被称为负强化学习。这会阻止智能体再次做出同样的决策。

强化学习在推荐引擎、游戏系统、机器人技术、自动驾驶汽车、制定销售和营销策略以及深度学习模型中得到了广泛应用。

强化学习方法

强化机器学习算法采用各种方法来学习最优化策略

基于价值的方法:在这种方法中,智能体试图找到最佳的价值函数。为此,智能体根据每个状态-动作对带来的累积奖励来估计每个状态-动作对的价值。以《吃豆人》游戏为例,吃豆人在迷宫般的环境中移动,以吃掉所有的点,同时躲避怪物。在每一步,他收集他的状态-动作对的数据,如向右移动被怪物吃掉,或向左移动逃离怪物。每个这样的对累计的价值帮助吃豆人决定最佳的下一步行动以获得最大价值,比如吃掉点并向左移动。基于价值的方法适用于视频游戏、自主智能体和棋类游戏。

基于策略的方法:在这种方法中,智能体遵循一组规则(策略)来决定在给定状态下的最佳行动。它通过调整策略函数的参数并根据累积奖励和经验来细化策略,以获得最优化策略。基于策略的强化学习适用于机器人技术、自然语言处理和自主导航。

actor-critic方法:这种方法结合了基于策略和基于价值的方法。在这里,actor学习并改进策略,而critic预测不同状态-动作对的质量(或价值)。actor和critic之间的学习是迭代的,非常高效。它适用于机器人技术、游戏和连续控制任务。


强化学习算法

强化学习算法旨在通过利用神经网络、迭代算法和政策优化技术来解决决策问题。通过迭代试错,智能体(机器)学会做出最优决策,并在给定环境中确定最佳行动路线。这些算法在训练数据有限或没有训练数据的场景中表现出色,因为它们促进了机器与环境之间的直接交互以进行训练和持续改进。

有许多强化学习算法,最常见和最简单的是Q学习算法。

Q学习:“Q”代表质量,衡量特定动作对最大化奖励的价值。Q学习算法使用一个名为Q表的表格,并在每次迭代中更新它,带有状态-动作值。它根据Q表中的现有/先前值,为下一个状态采取最佳行动(具有最大值的行动)。换句话说,它利用当前知识来做出最优决策。Q学习在类人机器人和国王飞机中广泛使用。

深度Q网络(DQN):随着特征数量的增加,为每个状态-动作对存储和更新一个单独的Q值变得计算成本高昂。为了解决这个问题,可以将Q学习与可以处理高维状态空间(即具有多个特征的数据库)的深度神经网络相结合。DQN是自动驾驶汽车的基础。

状态-动作-奖励-状态-动作(SARSA):SARSA与Q学习类似。然而,区别在于在训练过程中,智能体从当前状态中的当前动作集中学习。对于新状态不考虑之前的动作和奖励,因此该算法不依赖于之前的状态和动作。这意味着SARSA探索更多,选择最优路径的时间更长,并且更好地理解风险。SARSA在环境探索至关重要的环境中非常有用。SARSA的一些应用领域包括机器人控制、游戏和推荐系统。

机器学习过程

机器学习主要涉及三个步骤:训练、验证和测试。

对于训练,机器需要大量当前和历史数据。数据来自多个来源,可以是结构化、非结构化或半结构化格式。由于可能存在许多无关列、空值等问题,因此这些数据不能直接使用。因此,数据需要被清理并转换为所需格式。有许多工具可以清理和转换数据——例如,R、Python和Excel。您可以查看我们关于如何使用MongoDB和R以及Python来清理和分析数据的教程。一旦数据准备好使用,就可以将其输入到机器学习算法中。

算法的选择取决于业务问题。例如,如果问题是确定明天是否会下雨,或者一封电子邮件是否是垃圾邮件,可以使用决策树或朴素贝叶斯。同样,如果您想了解某个年龄段客户的购物趋势,可以使用聚类。在某些情况下,您可能需要多个算法。

一旦您决定了算法,机器从数据集中学习,就需要使用称为测试数据集的新数据集进行验证。有四种可能的结果

  • 真正例:当条件存在且机器学习模型正确预测时(例如,机器在图像中识别出狗就是狗)
  • 真负例:当条件不存在且模型认为不存在时(例如,图像中没有狗,机器也这么说)
  • 假正例:当条件不存在但模型认为存在时(例如,模型将图像中的猫识别为狗)
  • 假负例:当条件存在但模型无法识别时(例如,机器无法识别图像中的狗)

这四种结果决定了模型的准确性,并构成了确定模型对特定问题适用性的基础。模型和参数将迭代性地重新评估,直到我们获得所需的准确性。

除了验证和微调算法外,测试数据集对于评估机器学习模型的性能至关重要。它提高了模型的可靠性和泛化能力,并在实际应用中引导决策。


机器学习过程 机器学习中涉及的各种步骤

机器学习应用案例

机器学习在各个领域都有应用,从银行、物流和食品行业到医疗保健、教育和研究。以下是一些最突出的机器学习应用案例

图像和面部识别

机器学习最常见的使用案例是图像和手写识别。一个常见的例子是谷歌照片,它使用面部识别来整理您和您的朋友家人的照片。图像识别可以在检测犯罪、协助法医调查、诊断疾病等方面发挥重要作用。

推荐引擎

如果您经常在亚马逊购物或观看Netflix,您肯定注意到了系统根据您的喜好和之前的观看偏好推荐产品/电影的方式。所有这些都是通过收集用户数据并做出预测的机器学习算法完成的。

医疗保健

使用机器学习算法,许多疾病可以在早期被发现,否则可能被忽视。此外,当输入患者病史和他们的生活方式时,机器学习算法可以执行预测性分析,并提出预防措施和针对潜在疾病的个性化治疗方案。研究人员还可以使用机器学习模型进行药物发现和开发。

欺诈检测

机器学习算法可以训练来检测异常交易活动、可疑链接、假账户和假签名,使用的是模式识别和手写识别。

自然语言处理

机器学习算法在理解和响应人类语言方面取得了很大进展,最受欢迎的工具包括Alexa、Siri和聊天机器人。

自动驾驶汽车

通过使用先进的机器学习算法、摄像头、雷达、GPS和传感器,自动驾驶汽车可以帮助优化交通拥堵、提高燃油效率、改善机动性以及许多其他好处。

机器人技术

机器学习算法用于处理来自各种来源(如摄像头和雷达)的传感器数据。通过计算机视觉、运动规划和控制、物体识别和自主导航,ML帮助机器人管理障碍、感知信息并执行任务。此外,通过自然语言处理,机器人能够与人类互动。

人工智能和机器学习正在不断进化,未来看起来非常光明,重点关注

  • 深度强化学习系统来学习复杂情况并在动态环境中做出正确决策。

  • 在医疗保健、教育、金融、制造业和其他许多领域的持续洞察。

  • 联邦学习——即在分散的设备和协作学习中训练模型的同时保持用户数据隐私。

  • 物联网集成。随着物联网设备的数量增加,机器学习模型处理实时数据变得非常重要。

  • 减少人类偏见,使模型更加值得信赖和道德。

总结

机器学习已经在教育、医疗保健、制造业、营销等多个领域证明了自己的非常用途。然而,它需要大量数据才能产生实际结果。在收集用户数据时,考虑到他们的隐私,遵循适当的伦理和治理规则非常重要。

所使用的算法类型很大程度上取决于您的业务问题,理解和选择正确的算法需要经验。有时,人类的偏见也可能导致训练数据存在偏差。

话虽如此,当正确使用时,机器学习可以证明更加准确,避免人类在执行相同任务时犯的错误,并且比人类做出决策的速度要快得多。它可以减少人类执行日常任务的负担,并帮助他们提高生产效率。

常见问题解答

什么是机器学习(ML)?

机器学习是计算机科学的一个分支,涉及训练计算机执行类似于人类学习的行为。机器学习过程使用各种算法,这些算法应用从不同来源收集的转换后的数据来进行学习。输出会迭代评估,直到达到最准确的结果。

机器学习是如何工作的?

机器学习通过一系列过程工作。首先,从不同的来源收集原始数据。然后,将相关数据分类、分组、处理和转换,使其准备进行分析。随后,数据被输入到选择的机器学习算法中,这些算法进行训练并产生输出。输出会被评估和改进,直到达到期望的结果。

机器学习是人工智能吗?

机器学习是人工智能的一个分支,其中机器学习如何执行以前只能由人类完成的某些任务。机器通过收集大量数据、处理数据并应用相关算法来实现这一点,直到达到期望的结果。

最适合机器学习的数据库是什么?

机器学习算法需要大量的结构化、半结构化和非结构化数据来产生几乎准确的结果。虽然您想要的数据库很大程度上取决于您试图解决的问题的类型,但您应该寻找可以轻松处理大量数据并提供数据安全、可扩展性和强大处理能力的数据库。MongoDB Atlas是一个不错的选择,因为它除了上述特性外,还提供实时分析、图表和仪表板来处理数据。MongoDB Atlas

机器学习与数据科学之间的区别是什么?

机器学习是数据科学整个过程中的一个部分,主要关注应用各种算法和模型以产生最佳输出。数据科学有更广泛的范围,从定义业务问题、找到相关的数据源到使用各种算法和可视化处理数据,以及针对特定问题做出决策和预测。