机器学习入门

简介

机器学习是人工智能(AI)的一个子领域。机器学习的目标通常是理解数据的结构,并将这些数据适合于人们可以理解和利用的模型。

虽然机器学习是计算机科学中的一个领域,但它不同于传统的计算方法。在传统计算中,算法是计算机用来计算或解决问题的一组显式编程指令。取而代之的是,机器学习算法允许计算机对数据输入进行训练,并使用统计分析,以便输出落在特定范围内的值。正因为如此,机器学习有助于计算机从样本数据建立模型,以便根据数据输入自动执行决策过程。

如今,任何技术用户都从机器学习中受益。面部识别技术允许社交媒体平台帮助用户标记和分享朋友的照片。光学字符识别(OCR)技术将文本图像转换为可移动的文字。在机器学习的支持下,推荐引擎根据用户的偏好推荐下一步要看的电影或电视剧。依靠机器学习导航的自动驾驶汽车可能很快就会面世。

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

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

机器学习方法

在机器学习中,任务通常被归类为广泛的类别。这些类别基于如何接受学习或如何将学习反馈给所开发的系统。

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

有监督学习

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

例如,在有监督学习的情况下,可以向算法提供带有被标记为‘鱼’的鲨鱼图像和被标记为‘水’的海洋图像的数据。通过对这些数据进行训练,有监督的学习算法应该能够在以后识别出未标记的鲨鱼图像为,以及未标记的海洋图像为

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

无监督学习

在无监督学习中,数据是未标记的,因此学习算法将寻找其输入数据之间的共性。由于未标记的数据比已标记的数据更丰富,促进无监督学习的机器学习方法就显得尤为有价值。

无监督学习的目标可能就像发现数据集中的隐藏模式一样简单,但它也可能有一个特征学习的目标,这允许计算机器自动发现分类原始数据所需的表示。

无监督学习通常用于事务数据。您可能有一个关于客户及其购买的大型数据集,但作为一个人,您可能无法从客户配置文件和他们的购买类型中提取出哪些相似的属性。通过将这些数据输入无监督学习算法,可以确定购买无味肥皂的特定年龄段的女性很可能怀孕,因此可以针对这一受众开展与怀孕和婴儿产品相关的营销活动,以增加她们的购买数量。

在没有被告知正确答案的情况下,无监督学习方法可以查看更广泛且看似无关的复杂数据,以便以潜在有意义的方式对其进行组织。无监督学习通常用于异常检测,包括欺诈性信用卡购买,以及推荐系统,建议下一步购买什么产品。在无监督学习中,狗的未标记照片可以作为算法的输入数据,以发现相似之处并将狗照片分类在一起。

方法

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

对于那些可能没有学习过统计学的人来说,首先定义相关性和回归可能会很有帮助,因为它们是研究数量变量之间关系的常用技术。相关性 是两个变量之间关联性的度量,这两个变量既不是因变量,也不是独立变量。基础层面的** 回归** 是用来检验一个因变量和一个自变量之间的关系。由于回归统计数据可用于在自变量已知时预测因变量,因此回归启用了预测功能。

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

k-最近邻

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

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

让我们来看一个k近邻的例子。在下图中,有蓝色的钻石物体和橙色的星星物体。它们属于两个不同的类别:钻石级别和明星级别。

K-最近邻初始数据set

当一个新的物体被添加到空间中时--在本例中是一颗绿色的心--我们希望机器学习算法将心脏分类到特定的类别。

K-将新对象设置为classify的最近邻数据集

当我们选择k=3时,算法将找到绿心的三个最近邻居,以便将其分类为钻石类或星形类。

在我们的图中,绿色心脏的三个最近邻居是一个钻石和两个星星。因此,该算法将用星类对心脏进行分类。

分类完成的k-最近邻数据集

在最基本的机器学习算法中,k-近邻被认为是一种懒惰学习,因为只有在对系统进行查询之后,才会对训练数据进行泛化。

决策树学习

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

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

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

当学习树时,源数据基于属性值测试被分成子集,该测试递归地在每个派生的子集上重复。一旦节点处的子集具有与其目标值相同的值,递归过程将完成。

让我们来看一个可以决定某人是否应该去钓鱼的各种条件的例子。这包括天气条件和大气压条件。

钓鱼决策树example

在上面的简化决策树中,通过将示例通过树排序到适当的叶节点来对其进行分类。然后,这将返回与特定叶相关联的分类,在本例中,该分类或者是‘是’,或者是‘否’。这棵树根据它是否适合钓鱼来分类一天的条件。

一个真正的分类树数据集将具有比上面概述的多得多的功能,但是关系应该是直接确定的。在使用决策树学习时,需要做出几个决定,包括选择哪些功能、使用什么条件进行拆分,以及了解决策树何时已明确结束。

深度学习

深度学习试图模仿人脑如何将光和声音刺激处理成视觉和听觉。深度学习体系结构受生物神经网络的启发,在由硬件和GPU组成的人工神经网络中由多层组成。

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

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

计算机视觉和语音识别都实现了深度学习方法的重大进步。IBM Watson是利用深度学习的系统的著名例子。

编程语言

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

由于有许多可用的框架,S是最流行的机器学习语言之一,包括TensorFlowPyTorch,和Kera.作为一种具有可读语法并能够用作脚本语言的语言,事实证明,在预处理数据和直接处理数据方面,Python都是强大和简单的。scikit-learn机器学习库构建在几个现有的http://www.numpy.org/),包之上,这几个包可能已经是Python语言开发人员所熟悉的,即NumPy,和Matplotlib.

要开始使用Python语言,您可以阅读我们的教程系列《[如何在Python语言中编写代码》(How to Coding in Python 3,或专门阅读《如何使用scikit-learn在PYTHON中构建机器学习分类器》或[如何使用PYTHON3和PyTorch](https://andsky.com/tech/tutorials/how-to-perform-neural-style-transfer-with-python3-and-pytorch).执行神经样式转换

Java 广泛用于企业编程,通常由前端桌面应用程序开发人员使用,他们也在企业级进行机器学习。通常,它不是那些想要学习机器学习的编程新手的首选,但对于那些有Java开发背景的人来说,它更适合应用于机器学习。就工业中的机器学习应用而言,Java往往比Python更多地用于网络安全,包括网络攻击和欺诈检测用例。

在JAVA的机器学习库中有Deeplearning4j,,这是一个为JAVA和Scala编写的开源的分布式深度学习库;MALLET(MA CHINE** L** 挣** L** 语言** E* ** T** OOLKIT)允许在文本上应用机器学习应用,包括自然语言处理、主题建模、文档分类和聚类;Weka,是一组机器学习算法,用于数据挖掘任务。

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

人性偏见

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

例如,如果人们提供的图像作为训练算法的数据,而这些人压倒性地选择金鱼的图像,计算机可能不会将鲨鱼归类为鱼。这将造成对鲨鱼作为鱼的偏见,而鲨鱼不会被算作鱼。

当使用科学家的历史照片作为训练数据时,计算机可能无法正确地对也是有色人种或女性的科学家进行分类。事实上,最近的同行评议研究表明,人工智能和机器学习程序表现出类似人类的偏见,包括种族和性别偏见。例如,参见)`减少性别偏见放大][pdf]。

随着机器学习在商业中的杠杆作用越来越大,未被忽视的偏见可能会使系统性问题永久化,这些问题可能会阻止人们有资格获得贷款,无法看到高薪工作机会的广告,或者无法获得当天递送的选项。

由于人类的偏见会对他人产生负面影响,因此意识到这一点并尽可能消除它是非常重要的。实现这一目标的一种方法是确保有不同的人在从事一个项目,并有不同的人在测试和审查它。其他人则呼吁(监管第三方来监督和审计算法)(https://www.theguardian.com/technology/2017/jan/27/ai-artificial-intelligence-watchdog-neededed-to-prevent-discriminatory-automated-decisions),构建可以检测偏见的替代系统伦理评论作为数据科学项目规划的一部分。提高对偏见的认识,注意我们自己无意识的偏见,并在我们的机器学习项目和管道中构建公平性,可以努力消除这一领域的偏见。

数字海洋机Learning

结论

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

因为机器学习是一个不断创新的领域,所以重要的是要记住,算法、方法和途径将不断变化。

除了阅读我们的教程)`之外,您还可以通过阅读我们的数据分析教程来了解更多关于在技术行业中使用数据的信息。

Published At
Categories with 技术
comments powered by Disqus