机器学习和ML.NET简介-第1部分

 

介绍

如今,机器学习正变得越来越流行,并且已在广泛的行业以及我们的日常生活中使用。在本文中,我们将学习如何使用Microsoft ML.NET(机器学习.NET)开发机器学习应用程序。如果我们具有机器学习,机器学习类型和算法的基础知识,那么对于我们来说选择合适的机器学习任务和模型来开发机器学习应用程序将变得更加容易。在本章中,我们将从以下内容开始:

  1. 机器学习简介
  2. 机器学习类型和算法简介
  3. 为什么机器学习越来越受欢迎
  4. Microsoft ML.NET简介
  5. ML.NET的特征

机器学习简介

机器学习是应用程序,它是人工智能(AI)的一部分,机器学习使用算法和统计技术自行训练系统,而无需使用任何明确的程序。机器学习用于自动训练系统并向我们提供系统预测结果。在用于训练和预测结果的机器学习中,我们需要提供大量数据。在机器学习2中,最常用的魔术词是ref

  • 训练
  • 数据

为了了解训练和数据,让我们看一下我们的现实例子,当一个新生婴儿出生时,父母,老师和邻居将通过展示对象开始教孩子,我们可以说父母是第一次教婴儿通过展示一个苹果,他们会反复告诉婴儿这是一个苹果,并且苹果将变成红色,苹果的形状将像这样,这里的苹果是为孩子准备的数据,孩子的大脑被训练为苹果将​​变成红色,苹果将看起来像这样,苹果将提供不同种类的形状和颜色。一旦用该物体训练了婴儿的大脑,每当婴儿看到苹果物体时,他/她会立即告诉我们这是苹果。

机器学习和ML.NET简介-第1部分_第1张图片

就像第一次通过展示对象来训练婴儿一样,我们也会使用大量数据来训练机器以为我们预测并返回结果。为了训练机器,我们需要大量数据。通过向机器提供大量相关数据,机器将得到良好的培训,并且可以很好地为我们预测准确的结果。我们可以看到下面的图像作为数据示例,例如,在这里,让我们考虑我们训练机器来预测数量并显示结果。在这里,我们将数据用作图像,我们可以看到使用不同的字体创建了不同种类的数字2,并且这些数字也被手绘使用。所有这些数字2将通过数据提供给机器,并训练机器以预测结果。

机器学习和ML.NET简介-第1部分_第2张图片

再次,你们都会想知道训练以及我们如何训练机器,为此,在机器学习中,我们拥有机器学习任务和算法,正如我们对机器学习所了解的那样,我们无需显式编写任何程序,因为我们将使用机器学习算法来预测结果。现在,我们将了解几种机器学习类型和算法。

机器学习过程

在下图中,我们可以看到机器学习过程已得到解释,因为我们首先将数据提供给系统,然后选择适当的机器学习模型来训练系统。培训结束后,机器即可预测结果并将输出显示给外界。

机器学习和ML.NET简介-第1部分_第3张图片

机器学习类型和算法简介

在机器学习中,类型和算法非常重要,如果我们要开发机器学习应用程序,那么我们应该了解什么是机器学习类型,以及应该为我们的应用程序选择哪种类型和算法来训练和预测结果。本文主要针对将机器学习用于监督学习类型和无监督学习,我们将详细介绍以下两种主要的机器学习类型:

  • 监督学习
  • 无监督学习

我们将看到带有示例的有监督和无监督机器学习类型和算法。

机器学习和ML.NET简介-第1部分_第4张图片

从上图中,我们可以看到带有示例的少数机器学习类型和算法,比如每种机器学习类型和算法可以在哪种应用中使用。在本文中,我们将使用带回归和分类模型的监督学习以及带聚类模型的无监督类型。现在,让我们详细了解每种机器学习类型和算法。

监督学习

在监督学习中,计算机将获得标记的输入和所需的输出。首先,我们将看到一个为每个城市的房价使用的回归模型预测的示例,为此,我们将提供特定城市的所有房屋详细信息,包括城市名称,区域名称,房屋类型,楼层详细信息,房间和房屋租金。

机器学习和ML.NET简介-第1部分_第5张图片

在上图中,我们可以了解三种不同类型房屋的房屋信息,包括单人房、别墅类型和公寓类型以及房间数量,这并不是特定城市房屋的确切价格,而是全部示例住房类型和价格,以方便理解这些概念。从上图可以很容易地了解该城市特定区域的当前房价。该城市中所有房屋的城市名称、地区名称、房屋类型、楼层详细信息、房间数量和房屋租金信息的所有这些信息都将作为机器的输入,以预测房屋租金以供用户搜索。搜索房屋时,我们将输入以下信息:城市名称、区域名称、所需房间数,我们希望选择哪种类型的房屋,以及我们要寻找的房屋预算是多少?在这里,预算是我们搜索的关键关键字,而我们将在搜索中寻找的输出将是搜索结果的房屋租金。在这里,对于机器学习监督类型和回归模型,我们将把房租作为标记输入。我们使用所有输入和带标签的输入来训练机器。训练后,机器将使用回归算法预测结果,并为我们生成预测结果作为房租。

如果用户搜索Maura市和Annanagar地区3套公寓房的房屋租金,并将所有数据提供给机器,机器将预测结果并显示大约15000作为输出。在机器学习中,我们需要提供大量数据。

在监督学习中,将使用另一种模型作为分类模型。分类模型将用于邮件垃圾邮件检测和情绪预测。

无监督学习

在无监督学习中,计算机将获得输入而没有所需的输出。该模型的主要目的是在输入中找到结构。

在无监督学习中,我们有聚类模型。聚类模型可用于找到我们产品的客户细分的集群,我们可以说一个例子作为我们产品销售的客户细分。假设我们将“ABC”“XYZ”“123”作为三种不同的产品,并且我们在德里、孟买、加尔各答和钦奈这四个主要城市销售产品。我们将四个城市的三种产品的所有销售历史分组,并希望在这种情况下找到我们的产品集群,我们可以使用基于聚类模型的无监督学习。

为什么机器学习越来越受欢迎?

如今,机器学习已广泛应用于我们的日常生活,许多行业,研究领域,科学等领域。机器学习还用于使系统示例自动化,例如可以说邮件的垃圾邮件检测和欺诈检测。在当今的机器学习中,我们可以说以Facebook新闻提要为例,我们可以在Facebook墙上看到,因为我们将看到与经常访问或最近访问的朋友帖子相关的所有新闻提要。Facebook正在将机器学习概念用于新闻提要。如今,机器学习还被广泛用于制造业,医疗保健,金融服务,旅游,零售等行业。机器学习还被用于制造无人驾驶汽车(即自动驾驶汽车)。在自动驾驶汽车中传感器用于识别将要在四个方向上靠得更近的物体,具体取决于将控制车速的物体,并且还使用导航将自动驾驶汽车驶向目的地。在导航中,所有信息都将存储为交通地点和当前交通信号灯。对于自动驾驶汽车,将使用机器学习概念强化学习类型。机器学习现在也广泛用于研究和医学领域,例如,预测艾滋病病毒衰竭,帕金森病进展预测,智能农业,药物开发生物技术,药物治疗,用于宇宙地图上等。

未来,机器学习将在所有领域中得到广泛应用,并且它将比今天更加流行。

我们已经了解了如今机器学习越来越流行的方式和原因,微软还在20183月的Build2018中引入了一个名为ML.NET的新框架。ML.NET代表Machine Learning.Net,该机器学习使用.NET开发机器学习应用程序——我们将在接下来的章节中看到有关ML.NET的更多详细信息。

Microsoft ML.NET简介

MicrosoftBuild 20183月)期间引入了ML.NETMachine Learning.NET)。ML.NET的当前版本是ML.NET预览版1.4,该版本于20199发布。Machine Learning.Net是一个跨平台的开源框架。是的,现在很容易开发自己的机器学习应用程序或使用机器学习框架开发自定义模块。对于所有.NET爱好者来说,这是个好消息,因为我们可以使用C#或F#代码通过ML.NET开发机器学习。ML.NET是开源的,可以在WindowsLinuxmacOS上开发和运行。我们可以使用ML.NET为控制台,台式机,Web,移动设备,游戏以及IOT开发自定义机器学习模型。ML.NET还支持扩展和使用TensorFlowAccord.NETCNTK.ML。最新版本的.NET还支持从关系数据库(如SQL ServerOracleMySQL等)加载和训练数据。最新版本的ML.NET也是为了使用AutoML开发轻松的自定义ML而建立的。

当前,Microsoft已发布ML.NET的预览版,并且Microsoft一直在向ML.NET框架添加更多功能,而ML.NET的当前版本是ML.NET 1.4

在开始使用ML.NET之前,让我们了解ML.NET的基本概念,该基本概念需要用于开发我们的机器学习应用程序。

  • 加载数据:为了完美预测结果,我们需要提供大量数据来训练模型。在ML.Net中,我们可以通过的文本数据(CSV / TSV,关系数据库(现在支持SQL ServerOracleMySQL等)), BinaryIEnumerable等来提供训练和测试的数据。
  • 训练:我们需要根据需要选择正确的算法来训练模型,我们需要选择正确的算法来训练和预测结果。
  • 评估:为我们的模型训练和预测选择机器学习类型。如果需要使用细分,则可以选择聚类模型,如果需要找到股票预测的价格,则可以选择回归,如果需要找到情感分析,则可以选择分类模型。
  • 预测结果:基于训练模型的训练和测试数据,将使用ML.NET应用程序显示最终预测。经过训练的模型将被保存为二进制格式,其也可以与我们的其他.NET应用程序集成。

机器学习和ML.NET简介-第1部分_第6张图片

上图说明了使用ML.NET开发机器学习应用程序的流程。接下来,我们将详细了解ML.NET组件。

ML.NET的特征

现在,让我们看看Microsoft ML.NET的一些用途和特征。

  • 所有的DotNet爱好者都可以使用ML.NET编写用于机器学习的代码。
  • 您可以使用C#或F#与ML.NET进行编码。
  • ML.NET是跨平台的开放源代码框架。
  • ML.NET可以在WindowsLinuxmacOS上开发和运行。
  • Microsoft WindowsBingAzure中广泛使用,还可以扩展到TensorFlowCNTKAccord.NET等其他框架。
  • ML.NET支持开发用于Web,移动,桌面,游戏和IOT的机器学习应用程序。
  • ML.NET将训练后的模型保存为二进制文件,并且可以将其集成到任何其他DotNet应用程序中。
  • ML.NET现在处于预览版本,Microsoft经常添加许多新功能,并且还计划使用TensorFlowCNTK添加深度学习。
  • ML.NET预览版0.2引入了新的机器学习群集任务。
  • ML.NET预览版0.5添加了TensorFlow模型评分转换。
  • ML.NET预览版0.6添加了对预先训练的ONNX模型进行评分的功能。
  • 现在从ML.NET 0.7版本开始,它同时支持x86x64ML.NET现在处于预览版本,Microsoft经常通过向ML.NET添加更多功能来更新该版本。以前的ML.NET 0.7版本仅支持为x64开发,而从新的ML.NET 0.7版本开始支持为x86x64开发。
  • ML.NET预览版0.7在称为NimbusMLML.NET实验Python绑定中提供支持。
  • ML.NET预览版0.7启用了异常检测方案。
  • ML.NET预览版0.9添加了ML.NET API的一些改进。
  • ML.NET 1.0已添加到自动机器学习(AutoML)中,并引入了更多新工具,例如ML.NET CLIML.NET Model Builder
  • ML.NET 1.1已发布,具有对IDataView中内存中图像类型的改进支持,还添加了新算法异常检测算法。
  • ML.NET 1.2已发布,支持通过Microsoft.Extensions.ML集成程序包将ML.NET模型集成到Web或无服务器应用程序中
  • ML.NET预览版1.4数据库加载程序使使用关系数据库的培训变得容易。

参考链接

  • https://docs.microsoft.com/zh-CN/dotnet/machine-learning/
  • https://dotnet.microsoft.com/apps/machinelearning-ai/ml-dotnet

你可能感兴趣的:(人工智能,机器学习,ML.NET)