人工智能 · 2024年1月10日 0

深入评估亚马逊、微软、谷歌、IBM等6家机器学习云平台

微软、Databricks、谷歌、惠普企业和 IBM 都为解决许多机器学习问题提供了工具。本文将简要分析这6种商业机器学习解决方案的特点。

AWS:替你选择模型

亚马逊试图让机器学习能够为普通人所利用。亚马逊希望的是,分析师只需要理解那些被解决的问题本身,而不需要理解数据科学和机器学习算法。

总的来说,要使用亚马逊机器学习,你首先要把你的数据整理为 CSV 格式、上传到亚马逊的 S3 服务;然后你创造、训练和评估你的机器学习模型;最终,你能用它进行批量或实时的预测。每个步骤都是迭代性的,整个过程亦然。机器学习并不是一件简单静态的事,尽管我们可以把算法选择的部分留给亚马逊来做。

亚马逊机器学习支持3类模型——二元分类、多类别分类和回归——每个类型都有一个对应的算法。在优化方面,亚马逊机器学习使用随机梯度下降(SGD),这种方法能在训练数据中建造多序列通路(multiple sequential passes),更新每个小批量样本的特征权重,从而将损失函数最小化。损失函数是指现实值和预测值之间的差异。梯度下降优化法只在连续、可微的损失函数的情况下工作良好。

对二元分类,亚马逊机器学习使用了 logistic 回归(logistic 损失函数加上随机梯度下降)。对多类别分类,亚马逊机器学习使用了多元 logistic 回归(多元 logistic 损失函数加上随机梯度下降)。对回归,亚马逊机器学习使用了线性回归(平方损失函数加上随机梯度下降)。

 

在亚马逊机器学习服务中训练和评估了一个二元分类模型之后,你可以选择你自己的分数阈限,以获得你所想要的误差率。此处,我们把阈限值从默认的 0.5 提高了,这样我们就可以为市场和销售提供更强的指导。

 

亚马逊机器学习通过目标数据的类型来决定所要解决的机器学习任务的类型。例如,具有数字目标变量的预测问题意味着回归。而对那些具有非数字目标变量的预测问题,如果目标状态是两个,那就对应二元分类模型;如果目标状态是多个,就对应多类别分类模型。

 

亚马逊机器学习服务中的特征选项保存在清单中。当对数据源的描述性统计被计算好之后,亚马逊就会创造出一个默认的清单。在你将应用于数据的机器学习模型中,你既可使用这个清单,也不用它。一旦你拥有了一个能达到你的评估要求的模型,你就可以用它来建立一个实时网络服务,或批量地产生预测。但请记住,与物理常量不同的是,人的行为随着时间而改变。你需要定期检查你的模型所产生的预测准确度标准,并在需要时重新训练它。

Azure:有了经验你再来

与亚马逊不同,微软试图为有经验的数据科学家提供一整套算法和工具。因此,Azure 机器学习是更广泛的微软 Cortana 分析套装中的一部分。微软 Azure 机器学习也拥有拖拽式的界面,以便于构造模型训练和评估来自模块的数据流。

Azure 机器学习工具包括导入数据集、训练和发布实验性模型、在 Jupyter Notebooks 中处理数据和保存已训练的模型等功能。该机器学习工具中包含数十个样本数据集,五个数据格式转换方式,多个读取和写入数据的方式,数十种数据转换和三个用来选择特征的选项。在 Azure 机器学习服务中,你将为异常检测、分类、聚类和回归找到多种模型;此外还有四种为模型打分的方法、三种评估模型的策略和六种训练模型的过程。你也可以使用两个 OpenCV(开源计算机视觉)模块、统计学方程和文本分析工具。

上面这些已包含很多东西了,如果你理解你的生意、数据和模型,那么理论上它们足够用来以任何模型来处理任何数据了。当既有的 Azure 机器学习工具模块无法实现你想要的东西时,你也可以自己开发 Python 或 R 模块。

你可以用 Jupyter Notebooks 来开发和测试 Python 2 和 Python 3 语言模块。Jupyter Notebooks 已扩展了 Azure 机器学习服务的 Python 客户库,也扩展了 scikit-learn、matplotlib 和 NUmpy,从而能够处理你在 Azure 中存储的那些数据。Azure Jupyter Notebooks 将来也会支持 R 语言,目前,你可以在本地使用 Rstudio 以改变 Azure 的输入输出,或者在微软数据科学 VM 中安装 Rstudio。

 

当你在 Azure 机器学习服务中创造一个新实验时,你既可以从零开始,也可以从微软的 70 个样本开始,这些样本覆盖了大部分常用模型。

 

Databricks:中级玩家平台

Databricks 是一个基于 Apache Spark 的商业云服务。而 Apache Spark 是一个开源集群计算框架,它包括一个机器学习库、一个集群管理器、一个类似 Jupyter 的互动式笔记本、仪表盘和工作项目列表。Databricks 公司由 Spark 的发明者建立,因此通过 Databricks 服务你可以毫不费力地玩转那些 Spark 集群。

 

它的库 MLlib 包含范围广泛的机器学习和统计算法,这些算法都针对基于内存的分布式 Spark 架构方面进行了调整。MLlib中包含总结性统计、相关、取样、假设检验、分类和回归、协同过滤、聚类分析、降维、特征提取和转换函数、优化算法等等。换句话说,对有经验的数据科学家来说,它是一个相当完整的工具包。

 

Databricks 被设计为可规模化的、相对易用的数据科学平台,其目标使用者是那些已了解统计学并能做一点编程的人。要有效地使用它,你需要知道一些 SQL,也需要从 Scala、R 或 Python 中了解其中之一。如果你精通你所选择的语言,那就更好了,因为这样你就可以集中精力学习 Spark了。你可以通过在免费的 Databricks 社区版集群上运行 Databricks 笔记本的样本来尝试进行最初的使用。

 

谷歌机器学习云:高手请进

谷歌最近宣布了多个机器学习相关的产品。其中最有趣的是云学习和云语音 API,这二者目前都限于预览。谷歌的翻译 API 和云视觉 API 已经可供使用,其中谷歌翻译可以识别语言并在 80 多种语言和方言之间进行翻译,而云视觉可以从图像中识别多种特征。从谷歌发布的试用版看,它们表现得不错。

谷歌预测(Google Prediction ) API 能够训练、评估和预测回归和分类问题,但用户无法选择采用什么算法。我在 TensorFlow 的 Github 存放目录中检查了它的代码。我读了它的一些 C、C++ 和 Python 代码。我也研读了 TensorFlow 网站和白皮书。TensorFlow 让你能够从电脑桌面、服务器或手机上对单个或多个 CPU 或 GPU 部署计算。它拥有内置的各种训练算法和神经网络算法。从挑战难度的极客角度看,如果难度总分 10 分那么它能得9分。它的难度不仅超出了商业分析师的能力,也会令许多数据科学家感到困难。

谷歌翻译 API、云视觉 API 和新的谷歌云语音 API 都是预训练的机器学习模型。根据谷歌的说法,它的云语音 API 使用神经网络技术与支撑 Google app 语音搜索和支撑 Google Keyboard 语音打字的技术是同一种。

 

Haven OnDemand,还差那么一点点

Haven OnDemand 目前拥有音频-视频分析、连接器、格式转换、图形分析、惠普实验室沙盒、图像分析、政策、预测、查询概览与操作、搜索、文本分析和非结构化文本索引等 API。我用一个随机集做试验,探索了这些 API 是如何被调用和使用的。

IBM Watson 预测分析服务

IBM 提供了基于 Watson 的机器学习服务和 IBM SPSS Modeler。IBM 实际上为开发者、数据科学家和商业用户这3类用户准备了不同的机器学习服务。

SPSS Modeler 是一个 Windows 应用,最近也可以在云上使用它了。Modeler 的个人版包括数据导入和导出、数据自动准备、整理和抽取转换装载(ETL)等功能。它拥有 30 多种基本的机器学习算法和自动建模方法,具有 R 语言可扩展性,可使用 Python 脚本。更昂贵的版本则能通过 IBM SPSS 分析服务器来使用大数据,使用 Hadoop/Spark、冠军-挑战者功能、 A/B 测试,文本与实体分析以及社交网络分析。

 

IBM 的 Bluemix 云容纳了预测性分析网络(Predictive Analytics Web)服务,该服务可以应用 SPSS 模型,向你提供评价性 API,而你可以在你的 apps 里调用它。除了网络服务外,预测性分析也支持批量工作,以对额外数据进行重新训练和重新评估。

Watson 名下除了预测性分析之外,还有 18 种 Bluemix 服务。其中 Alchemy API 向用户提供三种服务(Alchemy 语言、Alchemy 视觉和 Alchemy 数据),它能够让商业公司和研发者建立认知性应用,从而理解文本和图像中的内容和语境。

哪家平台最适合你?

你应该基于你自己和你的团队的技能来衡量上面这些企业提供的机器学习服务。

对数据科学家和那些拥有数据科学家的团队来说,选择面很宽。擅长编程的数据科学家还可以做更多的事:Google、Azure、Databricks 比 Amazon、SPSS Modeler 需要更多的编程技能,不过前3个也因此变得更具灵活性。

在 Bluemix 上运行的 Watson 服务在云应用方面为开发者提供了额外的预训练能力。若干 Azure 服务、3 个谷歌云 API 和若干 Haven OnDemand API 也在文档内容方面提供了预训练能力。

谷歌 TensorFlow 库适用于那些能流利使用 Python,C++ 或 C 的高端机器学习编程者。谷歌的云机器学习平台似乎适用于了解 Python 和云数据管道的高端数据科学家。

尽管亚马逊机器学习和 Watson 分析服务宣称它们的目标用户是商业分析师或“任何商业职位”,我很怀疑他们这一说法能否实现。如果你需要开发机器学习应用,但却缺乏统计数学或编程背景,我认为你应该在你的团队中引入懂这些的人。

 

各家机器学习云大比拼

亚马逊机器学习

优点:

  • 它替你选择模型,从而简化了模型选择过程
  • 它根据模型提供实时和批量预测
  • 当你需要时,它可以为模型提供恰当的图表和诊断
  • 能够处理来自 S3, RDS MySQL 和 Redshift 的训练数据
  • 能自