摘要:在本文中,我们将分别对亚马逊、微软、谷歌、Databricks、HPE和IBM各大公司的机器学习工具套件的运行从广度、深度和易用性等方面进行深入的测评分析。
我们所谓的机器学习可以有多种形式。而最纯净的形式则为分析人员们提供了一组数据探索工具、一个ML模型选择、强大的解决方案算法和一种使用解决方案来进行预测的方法。亚马逊、微软、Databricks、谷歌和IBM的云服务产品都提供了预测API,使得分析人员有了不同量的控制。而HPE的云大数据分析平台解决方案Haven OnDemand则为二元分类问题提供了有限的预测API。
然而,并不是每一个机器学习的问题都必须从零开始解决。某些问题可以通过对足够大的样本进行培训,进而得到更广泛的适用。例如,语音到文本、文本到语音、文本分析和人脸识别往往是“罐装”的解决方案需要解决的问题。故而,大量机器学习云服务提供商们通过API提供这类功能,允许开发人员将其纳入他们的应用程序也就不足为怪了。
这类服务将能够识别美式英语的发音(以及其他一些语言)并抄写下来。但是,一款既定的服务对于某一名既定的说话人的具体工作状况将取决于说话人是否夹杂方言、说话人的口音、以及该解决方案此前对于类似的方言和口音的训练情况。微软的Azure、IBM、谷歌和Haven OnDemand均提供了语音到文本的服务。
有许多类型的机器学习的问题。例如,回归问题试图通过其他观察来预测一个连续变量(如销售);以及分类问题试图预测一组既定观测的类别是否会下降(例如,垃圾邮件的数量)。亚马逊、微软、Databricks、谷歌、HPE和IBM均提供了相应的工具以解决一系列的机器学习方面的问题,当然,某些工具包套件是比别的更加完整。
在这篇文章中,我将简要地与广大读者共同讨论这六款商用的机器学习解决方案,其中有内容会链接到五篇已经发表的之前由我所撰写的完整版的测评文章。不幸的是,谷歌于今年三月份宣布的基于云的机器学习工具和应用程序远远在谷歌云机器学习的公共可用性之前。
亚马逊的机器学习
亚马逊试图让机器学习能够更容易的让一般平凡的普通用户所能够接触得到。其旨在为那些了解正在被解决的业务问题的分析人员服务,不管这些分析人员是否真正理解数据科学和机器学习算法。
通常,在一般情况下,当您采用亚马逊机器学习时,首先需要整理数据,并以CSV格式将您的数据上传到S3;然后创建、培训和评估一款ML模型;最后通过创建批量处理或进行实时预测。在整个过程中,每一步都是迭代的。机器学习并不是一副简单的、静态的灵丹妙药,即使是对于亚马逊的算法的选择。
亚马逊机器学习支持3种模型:二元分类、多类分类和回归分析,其中每种类型都有一种算法。为了进一步的优化,亚马逊机器学习采用随机梯度下降(Stochastic gradient descent,SGD),这使得多连续性越过了对每个样品小批量训练数据和更新功能的权重,以最小化损失函数(loss function)。损失函数反映了实际值和预测值之间的差距。梯度下降优化工作只能在连续的、可区分的损失函数中很好地运作,如逻辑函数和平方损失函数。
对于二元分类,亚马逊机器学习采用逻辑回归(逻辑损失函数加SGD)。
而对于多类分类,亚马逊机器学习则使用多项逻辑回归(多项逻辑损失加SGD)。
对于回归分析,亚马逊机器学习采用线性回归(平方损失函数加上SGD)。
在亚马逊机器学习中培训和评估一个二元分类模型之后,您可以选择自己的分数阈值,以达到您所期望的错误率。在上图中,我们已经将默认阈值增加了0.5,这样我们就可以产生一组更强的销售线索以实现市场营销和销售目的。
亚马逊机器学习从目标数据的类型决定机器学习所解决的任务的类型。例如,借助数值目标变量预测问题便意味着回归分析;借助非数值目标变量预测问题时,如果只有两个目标状态其便是二元分类;如果有两个以上的目标状态便是多类分类。
在亚马逊机器学习中对于功能的选择有诀窍。一旦对数据源进行了描述性统计,亚马逊将创建一个默认的方法,该方法使得您可以在您的机器学习模型中使用或重写覆盖该数据。
一旦您有了一个符合您的评价要求的模型,您可以用它来建立一个实时的网络服务,或者生成一个批处理的预测。然而,务必要记住的是,不同于物理常数,人们的行为往往会随时间而变化。您将需要定期检查来自于您的模型的预测的精度指标,并根据需要重新培训。
Azure机器学习
相比之下,较之亚马逊的机器学习,微软公司则试图为有经验的数据科学家们提供一种全品种的算法和工具。因此,Azure机器学习是更大的微软Cortana分析套件产品的一部分。Azure机器学习还具有一个拖曳界面,用于构建模型训练和从模块评估数据流。
Azure机器学习工作室包含导入数据集、培训和出版的实验模型、Jupyter Notebook处理数据、以及保存培训模式的设施。机器学习工作室包含几十个样本数据集,五种数据格式转换,几种用来读取和写入数据的方式,几十种数据转换,以及三种功能选项。在Azure机器学习中,您会发现用于异常检测、分类、聚类和回归分析的多种模式;分数模型的四种方法;评估模型的三种策略;和培训模型的六道工序。您也可以用一对OpenCV(开源计算机视觉)模块、统计功能及文本分析。
这是一个很大的东西,理论上足以以任何模型处理任何一种类型的数据,只要您了解业务,数据和模型。当罐装Azure的机器学习工作室模块无法满足您的需求时,您可以开发Python或R模块。
您可以使用Jupyter Notebook开发并测试Python 2和Python 3语言模块,扩展Azure的机器学习Python客户端库(以便与存储在Azure的数据工作)、Scikit-Learn库、matplotlib和NumPy。Azure的Jupyter Notebook最终也将支持R。现在,您可以在本地使用RStudio,并能够在将来根据需要改变Azure的输入和输出,或在微软数据科学VM安装RStudio。
当您在Azure的机器学习工作室创建一个新的实验时,您可以从头开始或者选择从约70个微软样本开始,其覆盖了大部分常见的模式。而在Cortana Gallery有一个额外的社区内容。
Azure的机器学习工作室可以快速工作为发布一款训练有素的模型生成一个Web服务。这个简单的模型来自Azure机器学习的五个步骤的互动介绍。
该Cortana分析过程(CAP)从一些规划和设置步骤开始,这是相当关键的,除非您是一名训练有素的数据科学家,已经对于业务的问题、数据和Azure机器学习有着充分的熟悉,并且已经为项目创造了必要的CAP环境。CAP环境可能包括Azure存储帐户、一台微软数据科学虚拟机、一个HDInsight(Hadoop)集群和一处具备了Azure机器学习工作室的机器学习工作空间。如果相关的选择使您感到迷惑,微软文档会为您解释为什么您需要每一项选择。CAP继续五个处理步骤:摄取数据、探索性数据分析和预处理、特征的创建、模型的创建和模型的部署和消费。
微软最近发布了一系列的认知服务,包括了从Project Oxford到Azure preview。这些都是语音、文本分析、人脸识别、表情识别和类似功能的预培训,他们为您可以通过培训自己的模型所实现的功能进行了补充。
Databricks
Databricks是一款基于Apache Spark的商用云服务,是一款开源的集群计算框架,包括了机器学习库、集群管理、类似于Jupyter的互动notebook、仪表板和计划任务。Databricks公司是由创造了Spark的人所创办的,故而这款Databricks服务几乎可以说是可以毫不费力的运行和规模化扩展Spark集群。
其library、MLlib,包括了一个范围广泛的机器学习和统计算法,都是专为基于Spark架构的分布式内存而设计的。除了执行MLlib之外,还包括执行汇总统计、相关性、抽样、假设检验、回归与分类、协同过滤、聚类分析、降维、特征提取和转换功能,以及优化算法。换句话说,其是为有经验的数据科学家们所提供的一款相当完整的工具包。
上图这个现实的Databricks notebook,以Python代码编写,演示了分析一初知名公共自行车租赁数据集的一种方式。在notebook的这一部分,我们正在使用交叉验证以运行多个梯度增强型树回归训练管道。
针对那些已经了解数据统计并能至少有一点编程背景的人员,Databricks被设计为一个可扩展的、相对易于使用的数据科学平台。而为了能够有效地使用它,您应该知道一些SQL的知识,要么具备Scala、R或Python的相关知识。而如果您精通您所选择的编程语言的话,那将是极好的,所以您可以在使用Databricks notebook的样本在免费的Databricks社区版本群集上运行时,专心学习Spark。
谷歌云机器学习
谷歌最近发布了一系列的机器学习相关的产品。其中最有趣的产品是云机器学习和云语音API,都是有限的测试预览版。谷歌翻译API可以执行超过80种语言和变体的语言识别和翻译,而Cloud Vision API可以从图像中识别各种功能。
而谷歌Prediction API则能够培训、评估和预测回归分析和分类问题,没有使用算法的选项。其是从2013年开始推出的。
目前,谷歌的机器学习技术、云机器学习平台使用谷歌的开源TensorFlow库用于培训和评估。TensorFlow是由谷歌的Brain团队开发的使用数据流图进行数值计算的通用库。其与谷歌云数据流、谷歌的BigQuery、谷歌云Dataproc、谷歌云存储和云计算谷歌Datalab进行了充分的集成。
我已从其GitHub库中查看了TensorFlow代码;查看了一些C,C ++和Python代码;并研究了TensorFlow.org网站和TensorFlow白皮书。TensorFlow允许您在一台桌面台式机、服务器或移动设备上部署一个或多个CPU或GPU计算,其有各种各样的培训和内置的网络算法。在极客的采用规模方面,比率大概是十分之九。其不仅远远超出了业务分析的功能,甚至对许多数据科学家也可能是很难的。
谷歌翻译API、Cloud Vision API和新的谷歌云语音API 是预培训的ML模型。据谷歌介绍,其云语音API使用的是与支持谷歌的应用程序中的语音搜索和谷歌键盘的语音输入相同的神经网络技术。
HPE Haven OnDemand
Haven OnDemand是惠普企业公司(HPE)进军云计算机器学习的初试牛刀之作。Haven OnDemand的企业搜索和格式转换是其最强的服务。由于该服务是基于IDOL,HPE的私人搜索引擎的,这也就不足为怪了。不过,Haven OnDemand更有趣的功能还不完全成熟。
目前,Haven OnDemand已有音频视频分析、连接器、格式转换、图形分析、惠普实验室的沙盒(实验性API)、图像分析、策略、预测、查询档案、操纵、搜索、文本分析和非结构化文本索引的API分类。我已经随机尝试了一组,并探索了这些API的调用和使用方式。
Haven语音识别只支持六种语言及其变种。对对我的高品质的美式英语测试文件的识别准确率还行,但并不完美。
Haven OnDemand的连接器,允许您从外部系统获取信息,并通过Haven OnDemand API进行更新,已经相当成熟,主要是因为他们是IDOL连接器。文本提取API使用HPE KeyView从您提供的一份文件提取元数据和文本内容;API可以处理超过500种不同的文件格式,在成熟的KeyView绘图。
图表分析,是一套预览服务,仅适用于英文维基百科上的经过培训的索引。您不能培训您自己的数据。
对于图像分析组,我测试了条码识别,其工作得很好。而对于脸部识别,其在HPE的样本上要比在我的测试图像上执行得更好。目前,图像识别仅限于固定选择的企业标志,具有有限的效用。
Haven OnDemand的条形码识别API可以将条码隔离在一个图像文件中(参见上图红色框),并将其转换为数字,即使条形码是在弯曲的表面上,能够支持的一定角度至多约20度。该API不执行条形码号码的仰视识别和识别产品。
我很失望地发现,HPE的预测分析只能用于解决二元分类问题:不支持多重分类,也不支持回归分析,更没有无指导的学习。这严重限制了其适用性。
另一方面,谷歌Prediction API能够自动验证、探索、分裂,并准备CSV或JSON数据,然后训练决策树、逻辑回归、朴素贝叶斯方法(Naive Bayes)和支持向量机(SVM)多参数二元分类模型。然后,其测试分类,对评估的数据进行分割,并发布最好的模型即服务。
Haven OnDemand搜索使用IDOL引擎来执行高级搜索,而不是公共和私有的文本索引。文本分析API的范围从简单的自动完成和长期扩展到语言识别、概念提取和情感分析。
IBM沃森和预测分析
IBM提供的机器学习服务是基于其“Jeopardy”——沃森技术和IBM SPSS Modeler。其实际上拥有三种不同的受众人员的机器云学习服务:开发人员,数据科学家和商业用户。
SPSS Modeler是一款Windows应用程序,也于近日在云中提供。Modeler的个人版包括数据访问和导出;自动数据准备,数据整理(Data wrangling)和ETL;30多种基于机器学习的算法和自动模型;R可扩展性和Python脚本。售价更昂贵的版本能够通过Hadoop/Spark的IBM SPSS分析服务器、冠军/挑战者功能、A/B测试、文本和实体分析、社会网络分析访问大数据。
在SPSS Modeler的机器学习算法可以与Azure机器学习及Databricks的Spark.ml相媲美,具备功能特征的选择和支持的格式选择。甚至可以和自动模型(对一堆模型进行培训和评分,然后选择最好的)相媲美,但如何在SPSS Modeler中使用要比在别的产品中使用更明显。
IBM BlueMix托管预测分析Web服务,应用SPSS模型来揭示您可以从您的应用程序调用API的分数。除了Web服务,预测分析支持批处理作业到再培训和重新评估额外的数据模型。
在沃森中列出了18项Bluemix服务,独立于预测分析。AlchemyAPI提供了一组的三种服务(AlchemyLanguage, AlchemyVision和AlchemyData),使企业用户和开发者得以能够建立认知应用程序,理解文本和图像的内容和上下文。
概念扩展分析文本,并根据上下文学习类似的单词或短语。概念的洞察见解链接文件,您可以基于维基百科主题提供了一个预先存在的概念图表。
对话服务使您可以通过一个对话界面设计一款应用程序与用户进行交互,使用自然语言和用户配置文件信息。文档转换服务将一份单一的HTML、PDF或Microsoft Word文档转换为标准的HTML文件,纯文本,或一组JSON格式的答案单位,可以与其他沃森服务相结合。
我用沃森分析了上述例子中提供的自行车租赁服务的数据集。沃森得出了一个拥有48%的预测强度的决策树模型。该工作表还没有将工作日和非工作日的自行车租客分开。
语言翻译能够在几种知识域和语言对中工作。在新闻和会话领域,包括了从英语到巴西葡萄牙语,法语,现代标准阿拉伯语,或西班牙语的互译。在专利中,互译的语言包括英语和巴西葡萄牙语,中文,韩语,或西班牙语。翻译服务可以识别62种语言的纯文本。
自然语言分类服务应用认知计算技术,在培训您的分类和短语之后,返回最佳匹配分类的句子、问题或短语。个性化的见解提取来自交易和社交媒体的数据(至少需要一个单一的个体所写的1000个单词)来识别心理特质,以JSON格式返回一个特征树。关系通过语境分析提取句子的成分,解析检测句子组件之间的关系(语音和部分功能)。
额外的BlueMix服务提高搜索结果的相关性、以六种语言进行文本语音的相互转换,从文本识别情感,并分析视觉场景和对象。
沃森分析使用IBM自己的自然语言处理,使业务分析师和其他非数据科学家业务角色能够更容易地使用机器学习。
机器学习曲线
您应该评估的机器学习服务的集合取决于您企业团队和您自己的技能。对于数据科学家及其团队,他们的选择是开放的。对于那些擅长编程的数据科学家可以做的选择会更多:选择谷歌、Azure、以及Databricks需要比亚马逊和SPSS Modeler掌握更多的编程知识,但他们会更灵活。
运行在Bluemix的沃森服务为开发人员的云应用程序提供了额外的与培训的能力。Azure的几款服务、三款谷歌的云API,以及一些基于文档内容的Haven OnDemand API也能够提供这类服务。
新的谷歌TensorFlow库更适合那些精通Python、C ++或C语言的高端机器学习程序员。而谷歌云机器学习平台似乎更适合那些熟悉Python和云数据管道的高端数据科学家。
虽然亚马逊机器学习和沃森分析声称是针对业务分析师或者“任何企业业务角色”而服务的,我很怀疑他们是否能够很好满足这些要求。如果您企业需要开发机器学习应用程序,但却只有很少或没有统计学、数学或编程方面的知识背景,我会建议您企业真的需 要先行组建一支具备这方面知识的团队。
本文作者马丁·海勒是InfoWorld网站的特约编辑和审稿人。此前曾是一名Web和Windows程序设计顾问,他于1986年到2010年,曾经在位于马萨诸塞州安杜佛的办公室负责开发过数据库,软件和网站。最近,他曾担任过Alpha Software公司的技术和教育的副总裁,以及Tubifi的董事长兼CEO。
本文转自d1net(转载)