机器学习 - 快速指南
机器学习 - 简介
如今的人工智能(AI)已经远远超过了区块链和量子计算的炒作。这是因为普通人很容易获得巨大的计算资源。开发人员现在利用这一点来创建新的机器学习模型并重新训练现有模型以获得更好的性能和结果。高性能计算 (HPC) 的便捷可用性导致对具有机器学习技能的 IT 专业人员的需求突然增加。
在本教程中,您将详细了解 -
机器学习的关键是什么?
机器学习有哪些不同类型?
可用于开发机器学习模型的不同算法有哪些?
有哪些工具可用于开发这些模型?
编程语言有哪些选择?
哪些平台支持机器学习应用程序的开发和部署?
有哪些 IDE(集成开发环境)可用?
如何快速提升自己在这一重要领域的技能?
机器学习——今天的人工智能能做什么?
当你在 Facebook 照片中标记一张面孔时,人工智能就会在幕后运行并识别照片中的面孔。面部标记现在在一些显示人脸图片的应用程序中无处不在。为什么只有人脸?有多种应用程序可以检测猫、狗、瓶子、汽车等物体。我们有在道路上行驶的自动驾驶汽车,它们可以实时检测物体来驾驶汽车。当您旅行时,您可以使用 Google路线来了解实时交通状况,并遵循 Google 当时建议的最佳路径。这是实时对象检测技术的另一种实现。
让我们考虑一下我们在访问外国时通常使用的谷歌翻译应用程序的示例。您手机上的 Google 在线翻译应用程序可帮助您与使用您不熟悉的语言的当地人进行交流。
我们今天实际使用的人工智能有多种应用。事实上,我们每个人在生活的许多方面都在使用人工智能,甚至是在我们不知情的情况下。今天的人工智能可以以极高的准确性和速度执行极其复杂的工作。让我们讨论一个复杂任务的示例,以了解您今天为客户开发的人工智能应用程序需要哪些功能。
例子
我们在城市任何地方的日常通勤甚至城际旅行中都会使用 Google路线。Google 路线应用程序会建议当时到达目的地的最快路径。当我们沿着这条路走时,我们发现 Google 的建议几乎 100% 正确,我们节省了旅途中的宝贵时间。
您可以想象开发此类应用程序所涉及的复杂性,因为有多条路径到达您的目的地,并且应用程序必须判断每条可能路径的交通状况,以便为您提供每条路径的行程时间估计。此外,考虑一下 Google 路线覆盖整个全球的事实。毫无疑问,许多人工智能和机器学习技术都在此类应用程序的幕后使用。
考虑到对此类应用程序开发的持续需求,您现在就会明白为什么突然需要具有人工智能技能的 IT 专业人员。
在下一章中,我们将了解开发人工智能程序需要什么。
机器学习 - 传统人工智能
人工智能的旅程始于 20 世纪 50 年代,当时的计算能力只是今天的一小部分。人工智能始于机器做出的预测,就像统计学家使用计算器进行预测一样。因此,最初整个人工智能的发展主要基于统计技术。
在本章中,让我们详细讨论这些统计技术是什么。
统计技术
当今人工智能应用程序的开发始于使用古老的传统统计技术。您一定在学校中使用过直线插值法来预测未来值。还有其他几种此类统计技术已成功应用于开发所谓的人工智能程序。我们说“所谓”是因为我们今天拥有的人工智能程序要复杂得多,并且使用的技术远远超出了早期人工智能程序所使用的统计技术。
这里列出了当时用于开发人工智能应用程序且仍在实践中的一些统计技术示例 -
- 回归
- 分类
- 聚类
- 概率论
- 决策树
在这里,我们只列出了一些足以让您开始使用 AI 的主要技术,而不会吓到 AI 所需的庞大内容。如果您正在基于有限的数据开发人工智能应用程序,您将使用这些统计技术。
然而,今天的数据非常丰富。我们拥有的统计技术来分析这种海量数据并没有多大帮助,因为它们有其自身的局限性。因此,开发了深度学习等更先进的方法来解决许多复杂的问题。
随着本教程的继续,我们将了解什么是机器学习以及它如何用于开发此类复杂的人工智能应用程序。
机器学习 - 什么是机器学习?
考虑下图,该图显示了房价与其面积(平方英尺)的关系图。
在 XY 图上绘制各种数据点后,我们绘制一条最佳拟合线,对任何其他给定大小的房屋进行预测。您将向机器提供已知数据并要求它找到最佳拟合线。一旦机器找到最佳拟合线,您将通过输入已知的房屋尺寸(即上述曲线中的 Y 值)来测试其适用性。机器现在将返回估计的 X 值,即房屋的预期价格。可以根据该图推断出 3000 平方英尺甚至更大的房屋的价格。这在统计学中称为回归。特别是,这种回归称为线性回归,因为 X 和 Y 数据点之间的关系是线性的。
很多情况下,X&Y数据点之间的关系可能不是直线,而可能是带有复杂方程的曲线。您现在的任务是找出最佳拟合曲线,可以推断该曲线来预测未来值。下图显示了这样一个应用图。
来源:
https://upload.wikimedia.org/wikipedia/commons/c/c9/
您将在此处使用统计优化技术找出最佳拟合曲线的方程。这正是机器学习的意义所在。您可以使用已知的优化技术来找到问题的最佳解决方案。
接下来,让我们看看机器学习的不同类别。
机器学习 - 类别
机器学习大致分为以下几类:
机器学习从左到右演化,如上图所示。
最初,研究人员从监督学习开始。这就是前面讨论的房价预测的情况。
接下来是无监督学习,即机器在没有任何监督的情况下自行学习。
科学家进一步发现,当机器按预期方式完成工作时给予奖励可能是个好主意,于是强化学习应运而生。
很快,现在可用的数据变得如此巨大,以至于迄今为止开发的传统技术无法分析大数据并为我们提供预测。
因此,深度学习应运而生,在二进制计算机中创建的人工神经网络 (ANN) 中模拟人脑。
该机器现在利用当今可用的高计算能力和巨大的内存资源进行自主学习。
现在观察到深度学习已经解决了许多以前无法解决的问题。
现在,通过奖励深度学习网络作为奖励,该技术得到了进一步发展,最终出现了深度强化学习。
现在让我们更详细地研究每个类别。
监督学习
监督学习类似于训练孩子走路。你会握住孩子的手,教他如何把脚向前迈,自己走路示范等等,直到孩子学会自己走路。
回归
类似地,在监督学习的情况下,您向计算机提供具体的已知示例。您可以说,对于给定的特征值 x1,输出是 y1,对于 x2,输出是 y2,对于 x3,输出是 y3,依此类推。根据这些数据,您可以让计算机计算出 x 和 y 之间的经验关系。
一旦机器用足够数量的数据点以这种方式进行训练,现在您可以要求机器预测给定 X 的 Y。假设您知道给定 X 的 Y 的实际值,您将能够推断出机器的预测是否正确。
因此,您将使用已知的测试数据来测试机器是否已经学习。一旦您对机器能够以所需的准确度(例如 80 到 90%)进行预测感到满意,您就可以停止进一步训练机器。
现在,您可以安全地使用机器对未知数据点进行预测,或者要求机器针对给定 X 预测 Y,而您不知道 Y 的实际值。此训练属于我们讨论的回归早些时候。
分类
您还可以使用机器学习技术来解决分类问题。在分类问题中,您将具有相似性质的对象分类为一组。例如,假设有 100 名学生,您可能希望根据身高将他们分为三组 - 矮组、中组和长组。测量每个学生的身高,您将把他们分成适当的组。
现在,当一名新学生进来时,您将通过测量他的身高将他分为适当的组。通过遵循回归训练的原则,您将训练机器根据学生的特征(身高)对学生进行分类。当机器学习如何形成小组时,它将能够对任何未知的新学生正确分类。在将开发的模型投入生产之前,您将再次使用测试数据来验证机器是否已学习您的分类技术。
监督学习是人工智能真正开始其旅程的地方。该技术在多个案例中得到了成功应用。您在机器上进行手写识别时使用过该模型。已经开发了几种用于监督学习的算法。您将在接下来的章节中了解它们。
无监督学习
在无监督学习中,我们不向机器指定目标变量,而是询问机器“关于 X,你能告诉我什么?”。更具体地说,我们可能会问这样的问题:给定一个巨大的数据集 X,“我们可以从 X 中得出哪五个最好的组?” 或“X 中哪些特征最常同时出现?”。要找到此类问题的答案,您可以理解,机器推断策略所需的数据点数量将非常大。在监督学习的情况下,甚至可以使用大约数千个数据点来训练机器。然而,在无监督学习的情况下,学习中合理接受的数据点数量从几百万开始。如今,数据通常非常丰富。理想情况下,数据需要整理。然而,社交网络中不断流动的数据量,在大多数情况下数据管理是一项不可能完成的任务。
下图显示了由无监督机器学习确定的黄点和红点之间的边界。您可以清楚地看到,机器能够以相当好的精度确定每个黑点的类别。
来源:
https://chrisjmccormick.files.wordpress.com/2013/08/approx_decision_boun dary.png
无监督学习在许多现代人工智能应用中取得了巨大成功,例如人脸检测、物体检测等。
强化学习
考虑训练一只宠物狗,我们训练我们的宠物给我们带来一个球。我们把球扔到一定的距离,然后让狗把球捡回来给我们。每当狗做对了,我们就会奖励它。慢慢地,狗知道正确地完成工作会给它带来奖励,然后狗以后每次都会开始以正确的方式完成工作。确切地说,这个概念应用于“强化”类型的学习。该技术最初是为玩游戏的机器而开发的。机器有一个算法来分析游戏每个阶段所有可能的动作。机器可以随机选择其中一项动作。如果动作正确,机器就会受到奖励,否则可能会受到惩罚。慢慢地,机器将开始区分正确和错误的动作,经过几次迭代后,机器将学会以更好的精度解决游戏难题。随着机器玩的游戏越来越多,赢得游戏的准确性将会提高。
整个过程如下图所示 -
这种机器学习技术与监督学习的不同之处在于,您不需要提供标记的输入/输出对。重点是在探索新解决方案与利用学到的解决方案之间找到平衡。
深度学习
深度学习是基于人工神经网络(ANN),更具体地说是卷积神经网络(CNN)的模型。深度学习中使用了多种架构,例如深度神经网络、深度置信网络、循环神经网络和卷积神经网络。
这些网络已成功应用于解决计算机视觉、语音识别、自然语言处理、生物信息学、药物设计、医学图像分析和游戏等问题。还有其他几个领域也积极应用深度学习。深度学习需要巨大的处理能力和海量数据,而这些现在通常很容易获得。
我们将在接下来的章节中更详细地讨论深度学习。
深度强化学习
深度强化学习(DRL)结合了深度学习和强化学习的技术。Q-learning 等强化学习算法现在与深度学习相结合,创建了强大的 DRL 模型。该技术在机器人、视频游戏、金融和医疗保健领域取得了巨大成功。许多以前无法解决的问题现在可以通过创建 DRL 模型来解决。该领域正在进行大量研究,业界也非常积极地进行研究。
到目前为止,您已经对各种机器学习模型进行了简要介绍,现在让我们更深入地探讨这些模型下可用的各种算法。
机器学习 - 监督
监督学习是训练机器所涉及的重要学习模型之一。本章详细讨论了相同的内容。
监督学习算法
有多种算法可用于监督学习。一些广泛使用的监督学习算法如下所示 -
- k-最近邻
- 决策树
- 朴素贝叶斯
- 逻辑回归
- 支持向量机
当我们继续本章的内容时,让我们详细讨论每种算法。
k-最近邻
k 最近邻,简称 kNN,是一种统计技术,可用于解决分类和回归问题。让我们讨论使用 kNN 对未知对象进行分类的情况。考虑对象的分布,如下图所示 -
来源:
https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm
该图显示了三种类型的对象,以红色、蓝色和绿色标记。当您在上述数据集上运行 kNN 分类器时,每种类型的对象的边界将被标记为如下所示 -
来源:
https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm
现在,考虑一个新的未知物体,您想要将其分类为红色、绿色或蓝色。如下图所示。
正如您所看到的,未知数据点属于一类蓝色对象。从数学上讲,这可以通过测量该未知点与数据集中所有其他点的距离来得出。当您这样做时,您会知道它的大部分邻居都是蓝色的。到红色和绿色物体的平均距离肯定大于到蓝色物体的平均距离。因此,这个未知物体可以被归类为属于蓝色类。
kNN 算法也可用于回归问题。kNN 算法可在大多数 ML 库中随时使用。
决策树
流程图格式的简单决策树如下所示 -
您将编写一段代码来根据此流程图对输入数据进行分类。该流程图是不言自明且简单的。在这种情况下,您尝试对传入电子邮件进行分类以确定何时阅读它。
实际上,决策树可能很大而且很复杂。有多种算法可用于创建和遍历这些树。作为机器学习爱好者,您需要了解并掌握这些创建和遍历决策树的技术。
朴素贝叶斯
朴素贝叶斯用于创建分类器。假设您想从水果篮中挑选(分类)不同种类的水果。您可以使用水果的颜色、大小和形状等特征,例如,任何颜色为红色、形状为圆形、直径约为 10 厘米的水果都可以被视为苹果。因此,为了训练模型,您将使用这些特征并测试给定特征与所需约束匹配的概率。然后将不同特征的概率组合起来,得出给定水果是苹果的概率。朴素贝叶斯通常需要少量的训练数据来进行分类。
逻辑回归
看下图。它显示了数据点在 XY 平面上的分布。
从图中,我们可以直观地检查红点和绿点的分离情况。您可以画一条边界线来分隔这些点。现在,要对新数据点进行分类,您只需确定该点位于线的哪一侧。
支持向量机
看下面的数据分布。这里三类数据不能线性分离。边界曲线是非线性的。在这种情况下,找到曲线方程就变成了一项复杂的工作。
来源: http: //uc-r.github.io/svm
在这种情况下,支持向量机 (SVM) 可以方便地确定分离边界。
机器学习 - Scikit-learn 算法
幸运的是,大多数时候您不必编写上一课中提到的算法的代码。有许多标准库提供了这些算法的即用型实现。scikit-learn 是一种广泛使用的工具包。下图说明了该库中可供您使用的算法类型。
来源:https://scikit-learn.org/stable/tutorial/machine_learning_map/index.html
这些算法的使用非常简单,并且由于这些算法经过了良好的现场测试,因此您可以在 AI 应用程序中安全地使用它们。大多数这些库都可以免费使用,甚至可以用于商业目的。
机器学习 - 无监督
到目前为止,您所看到的是让机器学习找出我们目标的解决方案。在回归中,我们训练机器来预测未来值。在分类中,我们训练机器将未知对象分类为我们定义的类别之一。简而言之,我们一直在训练机器,以便它可以根据我们的数据 X 预测 Y。给定一个巨大的数据集并且不估计类别,我们很难使用监督学习来训练机器。如果机器可以查找和分析数千兆字节和兆兆字节的大数据,并告诉我们这些数据包含如此多不同的类别,该怎么办?
例如,考虑选民的数据。通过考虑每个选民的一些输入(这些在人工智能术语中称为特征),让机器预测有多少选民会投票给 X 政党,有多少选民会投票给 Y,等等。因此,一般来说,我们在给定大量数据点 X 的情况下询问机器,“你能告诉我关于 X 的什么信息?”。或者可能是这样的问题:“我们可以从 X 中组成哪五个最好的组?”。或者甚至可以是“X 中哪三个特征最常一起出现?”。
这正是无监督学习的全部内容。
无监督学习算法
现在让我们讨论无监督机器学习中广泛使用的分类算法之一。
k-均值聚类
2000 年和 2004 年美国总统选举的比分非常接近。候选人获得的普选票最多为50.7%,最低为47.9%。如果一定比例的选民改变立场,选举结果将会有所不同。有一小群选民,如果受到适当的呼吁,就会改变立场。这些团体可能规模不大,但由于竞选如此接近,它们可能大到足以改变选举结果。您如何找到这些人群?如何在预算有限的情况下吸引他们?答案是聚类。
让我们了解它是如何完成的。
首先,您在经过或未经同意的情况下收集有关人们的信息:任何可能提供一些线索的信息,这些信息对他们来说很重要,以及什么会影响他们的投票方式。
然后将这些信息放入某种聚类算法中。
接下来,对于每个集群(首先选择最大的集群是明智之举),您需要制作一条能够吸引这些选民的消息。
最后,您交付营销活动并进行衡量以查看其是否有效。
聚类是一种无监督学习,可以自动形成相似事物的聚类。就像自动分类一样。您几乎可以对任何东西进行聚类,并且聚类中的项目越相似,聚类就越好。在本章中,我们将研究一种称为 k-means 的聚类算法。它被称为 k 均值,因为它找到“k”个独特的簇,并且每个簇的中心是该簇中值的平均值。
簇识别
簇识别告诉算法:“这是一些数据。现在将类似的事物分组在一起并告诉我有关这些组的信息。” 与分类的主要区别在于,在分类中你知道你在寻找什么。但在聚类中情况并非如此。
聚类有时称为无监督分类,因为它产生与分类相同的结果,但没有预定义的类。
现在,我们对监督学习和无监督学习都很满意。要了解机器学习类别的其余部分,我们必须首先了解人工神经网络(ANN),我们将在下一章中学习它。
机器学习 - 人工神经网络
人工神经网络的想法源自人脑中的神经网络。人脑确实很复杂。通过仔细研究大脑,科学家和工程师提出了一种适合我们的二进制计算机数字世界的架构。下图显示了一种这样的典型架构 -
有一个输入层,有许多传感器从外界收集数据。在右侧,我们有一个输出层,它为我们提供网络预测的结果。在这两者之间,隐藏着几层。每个附加层都会进一步增加网络训练的复杂性,但在大多数情况下会提供更好的结果。我们现在将讨论几种设计的架构类型。
人工神经网络架构
下图显示了一段时间内开发并目前已投入实践的几种人工神经网络架构。
来源:
https://towardsdatascience.com/the-mostly-complete-chart-of-neural-networks-explained-3fb6f2367464
每种架构都是针对特定类型的应用程序开发的。因此,当您将神经网络用于机器学习应用程序时,您将必须使用现有架构之一或设计自己的架构。您最终决定的应用程序类型取决于您的应用程序需求。没有单一的指南告诉您使用特定的网络架构。
机器学习 - 深度学习
深度学习使用 ANN。首先,我们将了解一些深度学习应用程序,让您了解其强大功能。
应用领域
深度学习在机器学习应用的多个领域取得了巨大的成功。
自动驾驶汽车- 自动驾驶汽车使用深度学习技术。他们通常会适应不断变化的交通状况,并在一段时间内驾驶得越来越好。
语音识别- 深度学习的另一个有趣的应用是语音识别。如今,我们所有人都使用多种能够识别我们语音的移动应用程序。苹果的 Siri、亚马逊的 Alexa、微软的 Cortena 和谷歌的 Assistant——所有这些都使用了深度学习技术。
移动应用程序- 我们使用多种基于网络和移动应用程序来组织我们的照片。人脸检测、人脸 ID、人脸标记、识别图像中的对象——所有这些都使用深度学习。
深度学习尚未开发的机会
在看到深度学习应用在许多领域取得的巨大成功后,人们开始探索机器学习尚未应用的其他领域。深度学习技术在多个领域得到了成功应用,还有许多其他领域可以利用。这里讨论其中一些。
农业就是这样一个行业,人们可以应用深度学习技术来提高农作物产量。
消费金融是机器学习可以极大地帮助早期发现欺诈和分析客户支付能力的另一个领域。
深度学习技术也应用于医学领域,以创造新药并为患者提供个性化处方。
可能性是无穷无尽的,人们必须不断关注新想法和新发展的不断出现。
使用深度学习实现更多目标需要什么
要使用深度学习,超级计算能力是强制性要求。您需要内存和 CPU 来开发深度学习模型。幸运的是,今天我们可以轻松获得 HPC(高性能计算)。因此,我们上面提到的深度学习应用程序的开发在今天成为了现实,并且在未来我们也可以看到我们之前讨论的那些尚未开发的领域的应用程序。
现在,我们将了解在机器学习应用程序中使用深度学习之前必须考虑的一些局限性。
深度学习的缺点
下面列出了使用深度学习之前需要考虑的一些重要事项 -
- 黑盒方法
- 开发时间
- 数据量
- 计算成本高昂
我们现在将详细研究这些限制中的每一项。
黑盒方法
人工神经网络就像一个黑匣子。你给它一定的输入,它就会为你提供特定的输出。下图显示了一个这样的应用程序,您将动物图像输入神经网络,它会告诉您该图像是一只狗。
为什么这被称为黑盒方法是因为你不知道为什么网络会得出某种结果。不知道网络上你是怎么断定它是狗的?现在考虑一个银行应用程序,银行希望确定客户的信用度。这个问题网络一定会给你答案。但是,您能向客户证明这一点吗?银行需要向客户解释为什么贷款不被批准?
开发时间
训练神经网络的过程如下图所示 -
您首先定义要解决的问题,为其创建规范,决定输入特征,设计网络,部署网络并测试输出。如果输出不符合预期,请将其作为反馈来重组您的网络。这是一个迭代过程,可能需要多次迭代,直到网络经过充分训练以产生所需的输出。
数据量
深度学习网络通常需要大量数据进行训练,而传统的机器学习算法即使只有几千个数据点也能取得巨大成功。幸运的是,数据丰富度以每年 40% 的速度增长,CPU 处理能力以每年 20% 的速度增长,如下图所示 -
计算成本高昂
训练神经网络需要比运行传统算法多几倍的计算能力。深度神经网络的成功训练可能需要几周的训练时间。
与此相反,传统的机器学习算法只需几分钟/小时即可训练。此外,训练深度神经网络所需的计算能力在很大程度上取决于数据的大小以及网络的深度和复杂程度?
在概述了机器学习是什么、它的功能、局限性和应用之后,现在让我们深入学习“机器学习”。
机器学习 - 技能
机器学习的宽度非常大,需要跨多个领域的技能。下面列出了成为机器学习专家所需掌握的技能 -
- 统计数据
- 概率论
- 结石
- 优化技术
- 可视化
机器学习各种技能的必要性
为了让您简要了解需要获得哪些技能,让我们讨论一些例子 -
数学符号
大多数机器学习算法都很大程度上基于数学。您需要了解的数学水平可能只是初级水平。重要的是您应该能够阅读数学家在方程中使用的符号。例如,如果您能够阅读符号并理解其含义,那么您就已经准备好学习机器学习了。如果没有,您可能需要温习数学知识。
$$f_{AN}(net-\theta)=\begin{cases}\gamma & if\:net-\theta \geq \epsilon\\net-\theta & if - \epsilon< net-\theta <\ epsilon\\ -\gamma & if\:net-\theta\leq- \epsilon\end{情况}$$
$$\displaystyle\\\max\limits_{\alpha}\begin{bmatrix}\displaystyle\sum\limits_{i=1}^m \alpha-\frac{1}{2}\displaystyle\sum\limits_{ i,j=1}^m 标签^\left(\begin{array}{c}i\\ \end{array}\right)\cdot\:label^\left(\begin{array}{c}j \\ \end{array}\right)\cdot\:a_{i}\cdot\:a_{j}\langle x^\left(\begin{array}{c}i\\ \end{array}\右),x^\left(\begin{array}{c}j\\ \end{array}\right)\rangle \end{bmatrix}$$
$$f_{AN}(net-\theta)=\left(\frac{e^{\lambda(net-\theta)}-e^{-\lambda(net-\theta)}}{e^{ \lambda(net-\theta)}+e^{-\lambda(net-\theta)}}\right)\;$$
概率论
这是一个测试您当前概率论知识的示例:用条件概率进行分类。
$$p(c_{i}|x,y)\;=\frac{p(x,y|c_{i})\;p(c_{i})\;}{p(x,y)\ ;}$$
通过这些定义,我们可以定义贝叶斯分类规则 -
- 如果 P(c1|x, y) > P(c2|x, y) ,则类别为 c1 。
- 如果 P(c1|x, y) < P(c2|x, y) ,则类别为 c2 。
最优化问题
这是一个优化函数
$$\displaystyle\\\max\limits_{\alpha}\begin{bmatrix}\displaystyle\sum\limits_{i=1}^m \alpha-\frac{1}{2}\displaystyle\sum\limits_{ i,j=1}^m 标签^\left(\begin{array}{c}i\\ \end{array}\right)\cdot\:label^\left(\begin{array}{c}j \\ \end{array}\right)\cdot\:a_{i}\cdot\:a_{j}\langle x^\left(\begin{array}{c}i\\ \end{array}\右),x^\left(\begin{array}{c}j\\ \end{array}\right)\rangle \end{bmatrix}$$
受以下限制 -
$$\alpha\geq0,and\:\displaystyle\sum\limits_{i-1}^m \alpha_{i}\cdot\:label^\left(\begin{array}{c}i\\ \end {数组}\右)=0$$
如果您能够阅读并理解以上内容,那么您就已经准备好了。
可视化
在许多情况下,您需要了解各种类型的可视化图,以了解数据分布并解释算法输出的结果。
除了上述机器学习的理论方面之外,您还需要良好的编程技能来编写这些算法。
那么实施机器学习需要什么?让我们在下一章中探讨这一点。
机器学习 - 实施
要开发 ML 应用程序,您必须决定平台、IDE 和开发语言。有多种选择。其中大多数都可以轻松满足您的要求,因为它们都提供了迄今为止讨论的人工智能算法的实现。
如果您自己开发机器学习算法,则需要仔细理解以下方面 -
您选择的语言 - 这本质上是您对 ML 开发支持的语言之一的熟练程度。
您使用的 IDE - 这取决于您对现有 IDE 的熟悉程度以及您的舒适程度。
开发平台- 有多个平台可用于开发和部署。其中大部分都是免费使用的。在某些情况下,超过一定的使用量您可能需要支付许可费。以下是语言、IDE 和平台选择的简短列表,供您参考。
语言选择
以下是支持机器学习开发的语言列表 -
- Python
- 右
- MATLAB
- 八度
- 朱莉娅
- C++
- C
该列表本质上并不全面;然而,它涵盖了机器学习开发中使用的许多流行语言。根据您的舒适程度,选择开发语言、开发模型并进行测试。
IDE
以下是支持 ML 开发的 IDE 列表 -
- R工作室
- 皮查姆
- iPython/Jupyter 笔记本
- 朱莉娅
- 蜘蛛侠
- 蟒蛇
- 牛仔竞技表演
- 谷歌-Colab
上面的列表本质上并不全面。每个人都有自己的优点和缺点。我们鼓励读者先尝试这些不同的 IDE,然后再缩小范围到单一的 IDE。
平台
以下是可以部署机器学习应用程序的平台列表 -
- 国际商业机器公司
- 微软Azure
- 谷歌云
- 亚马逊
- 流动性
再次强调,这个列表并不详尽。我们鼓励读者注册并亲自尝试上述服务。
机器学习 - 结论
本教程向您介绍了机器学习。现在,您知道机器学习是一种训练机器执行人脑可以执行的活动的技术,尽管比普通人更快、更好。今天,我们看到机器可以在国际象棋、AlphaGO 等被认为非常复杂的游戏中击败人类冠军。您已经看到,机器可以经过训练在多个领域执行人类活动,并可以帮助人类过上更好的生活。
机器学习可以是有监督的或无监督的。如果您的训练数据量较少且标记清晰的数据,请选择监督学习。对于大型数据集,无监督学习通常会提供更好的性能和结果。如果您有大量可用的数据集,请选择深度学习技术。您还学习了强化学习和深度强化学习。您现在知道什么是神经网络、它们的应用和局限性。
最后,在开发自己的机器学习模型时,您考虑了各种开发语言、IDE 和平台的选择。接下来您需要做的就是开始学习和练习每种机器学习技术。学科广阔,意味着有宽度,但如果考虑深度,每个主题几个小时就可以学会。每个主题都是相互独立的。您需要一次考虑一个主题,学习它,练习它,并使用您选择的语言实现其中的算法。这是开始学习机器学习的最佳方式。一次练习一个主题,很快您就会获得机器学习专家最终所需的宽度。
祝你好运!