作者:Lisa Tagliaferri

介绍

机器学习是人工智能 (AI) 的一个子领域。机器学习的目标通常是理解数据的结构并将该数据拟合到人们可以理解和使用的模型中。

尽管机器学习是计算机科学中的一个领域,但它不同于传统的计算方法。在传统计算中,算法是计算机用来计算或解决问题的一组明确编程的指令。相反,机器学习算法允许计算机对数据输入进行训练并使用统计分析来输出特定范围内的值。因此,机器学习有助于计算机从样本数据构建模型,以便根据数据输入自动执行决策过程。

今天的任何技术用户都受益于机器学习。面部识别技术允许社交媒体平台帮助用户标记和分享朋友的照片。光学字符识别 (OCR) 技术将文本图像转换为可移动类型。由机器学习提供支持的推荐引擎可以根据用户偏好推荐接下来要观看的电影或电视节目。依靠机器学习导航的自动驾驶汽车可能很快就会面向消费者推出。

机器学习是一个不断发展的领域。因此,在使用机器学习方法或分析机器学习过程的影响时,需要牢记一些注意事项。

在本教程中,我们将研究监督学习和无监督学习的常见机器学习方法,以及机器学习中的常见算法方法,包括 k 最近邻算法、决策树学习和深度学习。我们将探索机器学习中最常用的编程语言,为您提供每种编程语言的一些正面和负面属性。此外,我们将讨论机器学习算法造成的偏见,并考虑在构建算法时可以记住什么来防止这些偏见。

机器学习方法

在机器学习中,任务通常分为几大类。这些类别基于如何接收学习或如何将学习反馈提供给开发的系统。

两种最广泛采用的机器学习方法是监督学习,它根据人类标记的示例输入和输出数据训练算法,以及无监督学习,它为算法提供没有标记的数据,以使其能够在其输入中找到结构数据。让我们更详细地探讨这些方法。

监督学习

在监督学习中,计算机被提供了标有所需输出的示例输入。这种方法的目的是让算法能够通过将其实际输出与“教导”的输出进行比较来“学习”以发现错误,并相应地修改模型。因此,监督学习使用模式来预测额外未标记数据的标签值。

例如,通过监督学习,可以为算法提供标记为 fish 的鲨鱼图像和标记为 water 的海洋图像的数据。通过对这些数据进行训练,监督学习算法以后应该能够将未标记的鲨鱼图像识别为 fish,将未标记的海洋图像识别为 water。

监督学习的一个常见用例是使用历史数据来预测统计上可能发生的未来事件。它可以使用历史股市信息来预测即将到来的波动,或用于过滤垃圾邮件。在监督学习中,带标签的狗照片可以作为输入数据,对未带标签的狗照片进行分类。

无监督学习

在无监督学习中,数据是未标记的,因此学习算法只能在其输入数据中寻找共性。由于未标记数据比标记数据更丰富,因此促进无监督学习的机器学习方法特别有价值。

无监督学习的目标可能与发现数据集中的隐藏模式一样简单,但它也可能具有特征学习的目标,即允许计算机自动发现对原始数据进行分类所需的表征。

无监督学习通常用于交易数据。您可能拥有大量客户及其购买的数据集,但作为一个人,您可能无法理解可以从客户档案及其购买类型中提取哪些相似属性。将此数据输入无监督学习算法后,可以确定购买无香皂的特定年龄段的女性很可能怀孕,因此可以针对该受众开展与孕期和婴儿用品相关的营销活动,以便以增加他们的购买次数。

在没有被告知“正确”答案的情况下,无监督学习方法可以查看更广泛且看似无关的复杂数据,以便以可能有意义的方式组织它。无监督学习通常用于异常检测,包括欺诈性信用卡购买,以及推荐接下来要购买的产品的推荐系统。在无监督学习中,未标记的狗照片可以用作算法的输入数据,以查找相似度并将狗照片一起分类。

方法

作为一个领域,机器学习与计算统计密切相关,因此拥有统计学背景知识有助于理解和利用机器学习算法。

对于那些可能没有研究过统计学的人,首先定义相关性和回归可能会有所帮助,因为它们是研究定量变量之间关系的常用技术。相关性是未指定为相关或独立的两个变量之间关联的度量。基本级别的回归用于检查一个因变量和一个自变量之间的关系。因为当自变量已知时回归统计可用于预测因变量,所以回归具有预测能力。

机器学习的方法正在不断发展。出于我们的目的,我们将介绍在撰写本文时机器学习中使用的一些流行方法。

k 最近邻

k 最近邻算法是一种模式识别模型,可用于分类和回归。通常缩写为 k-NN,k最近邻算法中的 k 是一个正整数,通常很小。在分类或回归中,输入将由空间内 k 个最接近的训练示例组成。

我们将专注于 k-NN 分类。在此方法中,输出是类成员资格。这会将一个新对象分配给它的 k 个最近邻居中最常见的类。在 k = 1 的情况下,对象被分配到单个最近邻居的类。

让我们看一个 k最近邻的例子。在下图中,有蓝色菱形对象和橙色星形对象。它们属于两个不同的等级:钻石等级和星级等级。
机器学习简介-Mo 动态
当一个新对象被添加到空间中时——在本例中是一颗绿色的心——我们希望机器学习算法将心脏分类到某个类别。
机器学习简介-Mo 动态
在最基本的机器学习算法中,k最近邻被认为是一种“惰性学习”,因为在对系统进行查询之前不会发生超出训练数据的泛化。

决策树学习

对于一般用途,决策树用于直观地表示决策并显示或通知决策制定。在使用机器学习和数据挖掘时,决策树被用作预测模型。这些模型将关于数据的观察映射到关于数据目标值的结论。

决策树学习的目标是创建一个模型,该模型将根据输入变量预测目标值。

在预测模型中,通过观察确定的数据属性用分支表示,而关于数据目标值的结论用叶子表示。

当“学习”一棵树时,源数据根据属性值测试被划分为子集,并在每个派生子集上递归重复。一旦节点的子集具有与其目标值相同的值,递归过程将完成。

让我们看一个可以决定某人是否应该去钓鱼的各种条件的例子。这包括天气条件以及大气压力条件。
机器学习简介-Mo 动态
在上面的简化决策树中,通过将示例从树中排序到适当的叶节点来对示例进行分类。然后返回与特定叶子关联的分类,在本例中为 aYes 或 aNo。树根据是否适合钓鱼对一天的情况进行分类。

一个真正的分类树数据集将具有比上面概述的更多的特征,但关系应该很容易确定。使用决策树学习时,需要做出多项决定,包括选择哪些特征、使用什么条件进行拆分,以及了解决策树何时达到明确的结局。

深度学习

深度学习试图模仿人脑如何将光和声音刺激处理成视觉和听觉。深度学习架构的灵感来自生物神经网络,由硬件和 GPU 组成的人工神经网络中的多个层组成。

深度学习使用级联的非线性处理单元层来提取或转换数据的特征(或表示)。一层的输出作为后续层的输入。在深度学习中,算法可以受到监督并用于对数据进行分类,也可以不受监督并执行模式分析。

在目前正在使用和开发的机器学习算法中,深度学习吸收的数据最多,并且已经能够在一些认知任务上击败人类。由于这些属性,深度学习已成为人工智能领域具有巨大潜力的方法。

计算机视觉和语音识别都从深度学习方法中取得了重大进展。IBM Watson 是一个利用深度学习的系统的著名示例。

编程语言

在选择专门从事机器学习的语言时,您可能需要考虑当前招聘广告中列出的技能以及可用于机器学习过程的各种语言的库。

由于有许多可用的框架,包括TensorFlowPyTorchKeras ,Python是最流行的机器学习语言之一。作为一种具有可读语法和用作脚本语言的能力的语言,Python 被证明在预处理数据和直接处理数据方面都非常强大和直接。scikit-learn 机器学习库建立在 Python 开发人员可能已经熟悉的几个现有 Python 包之上,即NumPySciPyMatplotlib

Java 在企业编程中的应用很广泛,一般都是在企业级从事机器学习的前端桌面应用开发者使用。通常它不是那些想学习机器学习的编程新手的首选,而是受到有Java开发背景的人申请机器学习的青睐。在工业机器学习应用方面,Java 往往比 Python 更多地用于网络安全,包括网络攻击和欺诈检测用例。

Java 的机器学习库有 Deeplearning4j,这是一个为 Java 和 Scala 编写的开源分布式深度学习库;MALLET ( MAchine Learning for LanguagE Toolkit ) 允许在文本上进行机器学习应用,包括自然语言处理、主题建模、文档分类和聚类;和 Weka,一组用于数据挖掘任务的机器学习算法。

C++是游戏或机器人应用程序(包括机器人运动)中机器学习和人工智能的首选语言。嵌入式计算硬件开发人员和电子工程师更倾向于在机器学习应用程序中使用 C++ 或 C,因为他们对该语言的熟练程度和控制水平。一些可以与 C++ 一起使用的机器学习库包括可扩展的 mlpack、提供范围广泛的机器学习算法的 Dlib 以及模块化和开源的 Shark

人类偏见

尽管数据和计算分析可能会让我们认为我们正在接收客观信息,但事实并非如此;基于数据并不意味着机器学习输出是中立的。人为偏见会影响数据的收集和组织方式,并最终影响决定机器学习如何与数据交互的算法。

例如,如果人们提供“鱼”的图像作为数据来训练算法,而这些人绝大多数选择金鱼的图像,那么计算机可能不会将鲨鱼归类为鱼。这会造成对鲨鱼作为鱼类的偏见,而鲨鱼将不会被视为鱼类。

当使用科学家的历史照片作为训练数据时,计算机可能无法正确分类同时也是有色人种或女性的科学家。事实上,最近的同行评审研究表明,人工智能和机器学习程序表现出类似人类的偏见,包括种族和性别偏见。参见,例如“自动从语言语料库派生的语义包含类似人类的偏见”和“男人也喜欢购物:使用语料库级约束减少性别偏见放大”[PDF]。

随着机器学习在商业中的应用越来越广泛,未被发现的偏见可能会导致系统性问题长期存在,这些问题可能会阻止人们获得贷款资格、无法看到高薪工作机会的广告,或者无法获得当日送达的选择。

由于人为偏见会对他人产生负面影响,因此意识到这一点并努力尽可能消除它是极其重要的。实现这一目标的一种方法是确保有不同的人从事一个项目,并且不同的人正在测试和审查它。其他人则呼吁监管第三方监督和审计算法构建可以检测偏差的替代系统,并将伦理审查作为数据科学项目规划的一部分。提高对偏见的认识,注意我们自己无意识的偏见,并在我们的机器学习项目和管道中构建公平,可以努力消除这一领域的偏见。

结论

本教程回顾了机器学习的一些用例、该领域使用的常用方法和流行方法、合适的机器学习编程语言,还涵盖了在算法中复制无意识偏见方面需要牢记的一些事项。

由于机器学习是一个不断创新的领域,因此请务必牢记算法和方法将不断变化。

———————————————————————————————————————
本文转载自:https://www.digitalocean.com/community/tutorials/an-introduction-to-machine-learning