AWS的机器学习提供了什么利器?
AWS 机器学习是当今发展最快的技术之一了,如果我们有相应的机器学习能力,将会是现在就业市场里面“最靓的仔”,很抢手。这篇文章,让我们来看一看机器学习的基础,以及亚马逊云计算提供的机器学习服务SageMaker吧!
首先,让我们先来看看什么是机器学习,它到底能帮助我们做什么?
什么是机器学习?
机器学习是研究计算机系统在没有任何明确指令的情况下执行某些任务的各种算法和模型。
监督机器学习
在监督方法中,输入和输出的变量是给定的,我们通过分析输入和输出的关系来找到规律,并且以后就能通过一个给定的输入,输出一个估计的输出了。换句话说,我们是很明确知道我们的输入和输出的,我们是知道我们要的结果是怎么样的。
举个例子,如果我们收集了一组数据X,里面包含了房子的面积X1,房子的楼龄X2,房子的周边人口基数X3,以及对应的Y(房价)。我们可以通过很多组X和Y的数据作为训练数据,然后通过监督学习的算法,计算出X和Y的对应关系。这样,如果我们要预测一个房子的房价,我们只需要输入X的数据就可以了。
监督机器学习又有分类和线性回归等方法,像刚才举例的预测房价的问题就是一种线性回归的方法。而分类的方法也很直观,比如我还是通过同样一组数据X(房子的面积,楼龄,周边人口基数),来预测房价是否高于4W/平方,这个就是一个二分类的方法。
无监督学习
无监督学习中,我们只有输入的数据,没有输出的数据,算法通过输入的数据来学习并且产生结果。换句话说,就是我们有一堆现有数据,但是我们并不知道这组数据的规律,我们也不知道应该选择什么参数作为X(或者能作为X的参数太多太复杂了)。
两种主流的无监督学习方法是聚类和降维,在这里稍微解释一下(因为这个文章不是机器学习101,所以不做太深度讲解了)。聚类的例子是我们常见的电商推荐系统,我们可以对很多用户的行为和购买习惯来作为无监督学习的输入,来对不同用户进行分类,推荐给客户最有可能喜欢的商品。降维看上去很像压缩。这是为了在尽可能保存相关的结构的同时降低数据的复杂度。
更多机器学习的101知识,建议去学习免费的吴恩达教授的AI for Everyone。
什么是AWS SageMaker
Amazon SageMaker是一种机器学习服务,它帮助开发人员和数据科学家构建和训练机器学习模型,然后直接将它们部署到生产环境中。AWS SageMaker提供了一个集成的Jupyter创作笔记本实例,用于访问您的数据源进行探索和分析。AWS SageMaker还提供了优化的算法,以便在分布式环境中有效地运行大数据。
AWS SageMaker 提供了以下功能:
Amazon SageMaker Ground Truth
在AWS SageMaker中,您可以使用SageMaker托管服务部署模型。准备合适的数据集是建立机器学习模型的第一个挑战。这些数据集通常来自不同的来源,可以是不同的格式。由于算法无法处理原始数据,因此在数据准备过程中常常需要手工标记。除了训练模型外,数据预处理是工程师们花费最多的时间。
SageMaker Ground Truth使用预先训练的机器学习模型来自动标记原始数据,极大地减少了创建标记数据集所需的时间和精力。随着时间的推移,通过学习手工方法创建的标签,Ground Truth也逐渐变得更好。
SageMaker Studio
SageMaker Studio是一个功能丰富的机器学习集成开发环境(IDE)。您可以使用一个集成的接口来编写、调试和可视化您的模型。SageMaker Studio还提供逐级跟踪,您可以使用它来暂停、重放和复制步骤。这使得在机器学习工作流中来回分析和迭代各个步骤变得很容易。
SageMaker studio包含以下同步工作的工具,可以帮助您轻松构建复杂的机器学习体系结构。
SageMaker AutoPilot
AutoPilot是SageMaker中最有用的工具之一,在设计ML模型时,找到正确的算法是另一个主要的挑战。考虑到可以用来解决机器学习问题的各种算法,找到最有效的算法需要数小时的训练和测试。
Autopilot通过使用预训练的ML模型来帮助您找到正确的数据算法,从而解决了这个问题。通过提供要预测的目标列,Autopilot将探索不同的解决方案,以找到适合您的数据集的最佳模型。通过Autopilot找到正确的模型之后,您还可以选择使用自定义配置扩展模型。
简单来说,就是当你不知道什么算法和模型适合你的场景和数据集的适合,就用AutoPilot来自动帮你选择吧!
SageMaker Notebooks
如果你熟悉Jupyter Notebook的话,其实 SageMaker Notebook 也提供了类似的功能,另外你可以与他人分享你的Notebook。您可以与您的团队协作,并使用SageMaker Notebook实时构建ML模型。
SageMaker Notebook也可以从初始配置中“分离”出来,这意味着您可以使用不同的硬件配置来测试ML模型。在创建新的SageMaker笔记本时,您还可以选择不同的预构建模板。
SageMaker Experiments
为了训练一个模型,您必须在模型中多次迭代,直到获得最大的精度。这包括尝试不同的算法、微调参数、调整特性等。
SageMaker实验允许您将这些优化存储为“实验”,并使用可视化界面浏览它们。SageMaker实验捕获每次迭代的输入参数、配置、结果等,并允许您浏览和检查它们的性能。
SageMaker Debugger
机器学习模型的准确性只有在训练完成后才能确定。但是,训练一个模型是一个耗时的过程,需要几分钟到几个小时的时间。如果你不得不改变参数,你将不得不重新训练模型来计算它的准确性。
SageMaker Debugger在训练过程中捕获实时指标。它捕获诸如验证、混淆矩阵和学习梯度等信息,这些信息可以帮助您分析整个训练过程,并优化它以获得更好的准确性,而不是重新训练整个模型。调试器还对常见问题发出警告,并提供最佳实践建议。浏览和审查它们的性能。
SageMaker Model Monitor
一旦您的机器学习模型投入生产,就很难自动监控模型的性能。当您的模型从用户交互中接收到新的数据时,可能会出现数据漂移,从而改变基本值,如平均值、方差、平均值等。如果没有适当的统计分析,就很难用传统方法推断出这些问题。
SageMaker Model Monitor监视生产中的机器学习模型,并在模型执行不符合预期时向您发出警报。可以将Model Monitor配置为生成包含一般统计信息和性能指标的报告,并可以定期存储在S3 bucket中。
SageMaker Neo
像自动驾驶汽车这样的复杂机器学习解决方案是使用一组单独的模型构建的。这些模型必须实时做出快速、低延迟、高度准确的预测。像这样的模型需要多年的训练、测试和部署。一旦部署,就很难更新模型,除非有一个可靠的强化学习体系结构。
这就是SageMaker Neo的用武之地。Neo对模型进行了优化,使其运行速度提高了一倍,占用的内存不足十分之一,并且没有任何精度损失。Neo将您的机器学习模型编译成可执行文件,并将其部署到云或Lambda @edge上。Neo还支持AWS Greengrass对边缘位置的OTA更新。
SageMaker Augmented AI
即使是高度精确的机器学习模型也可以从一定程度的人工干预中获益,以检查数据的质量和准确性。亚马逊增强人工智能(A2I)使得构建工作流变得很容易,需要人工审阅人员来审阅预测。
这在处理低质量的数据格式(如扫描文档和自然语言文本)时特别有用。可以使用A2I对低可信度的预测进行人工检查,或者对正在进行的预测进行审计。
AWS Marketplace
AWS Marketplace是一个数字目录,提供来自独立软件供应商的数千个预配置软件服务。AWS Marketplace提供从操作系统到数据分析的广泛解决方案。
AWS Marketplace还提供使用AWS平台构建、训练和测试的各种机器学习解决方案。您可以选择市场中可用的现有模型,并将其直接部署到生产环境中。Marketplace解决方案也是可扩展的,它允许开发人员在向客户部署这些模型之前添加额外的配置层。
AWS SageMaker是如何工作的?
产生数据
要为任何业务问题设计解决方案,我们都需要数据,而数据的类型取决于具体问题。为了对数据进行预处理,我们需要做以下工作:
- 获取数据(将数据集拉入单个存储库)
- 数据清理(检查数据并且做必要的清理)
- 准备/转换数据(将不同属性做合并以提升性能)
在AWS SageMaker中,您可以在Jupyter Notebook实例中对数据进行预处理。
训练模型
要训练一个模型,你需要使用一个算法。您可以使用Amazon SageMaker提供的算法,或者你可以用你的算法来训练一个模型。
评估模型
评估模型以确定推论的准确性是否可以接受。您可以使用AWS的Python SDK (BOTO)或AWS SageMaker提供的高级Python库来发送一个请求到model进行推理。在AWS SageMaker中,您可以使用Jupyter notebook实例来训练和评估模型。
部署模型
在AWS SageMaker中,您可以使用SageMaker托管服务部署模型。
总结
如果您是一名需要构建完整ML工作流的机器学习工程师,您将会感激Sagemaker为您节省的大量时间和配置。SageMaker还提供使用AWS竞价实例运行您的训练作业的方式,这可以让您在训练大型数据集时能节省大量计算成本。
Sagemaker还可以很好地与Tensorflow和Keras等语言配合使用,它们能够提供一个GPU集群来并行计算。无可否认,SageMaker是机器学习工程师的强大工具。
参考文档: