返回 登录
0

不可错过的精彩回顾:6种云机器学习服务

原文链接:Review: 6 machine learning clouds
作者:Martin Heller
译者:郭芮,关注大数据领域,寻求报道或投稿请发邮件guorui@csdn.net。

Amazon,Microsoft,Databricks,Google,HPE和IBM的机器学习工具在广度、深度及易用性上都具备优势。

图片描述

图源:Shutterstock

机器学习具有多种形式,其中最纯粹的一种可以为分析师提供一组数据探索工具、ML模型选择、稳健的解决方案以及将此方案用于预测的使用方法。

AmazonMicrosoftDatabricks,Google和IBM的云服务都提供预测API,来进行多重管控。HPE Haven OnDemand还提供了一个有限的预测API,用于解决二元分类问题。

然而,并不是所有的机器学习问题都必须从头开始解决。有些问题可以用在一个足够大的样本中,通过训练使其广泛适用。例如,“canned”方案就能够有效解决语音识别、语音合成、文本分析及人脸识别中存在的问题。不用惊奇,许多云机器学习提供商都会利用一个API,让开发者在应用程序内能实现这些功能。

这些功能可以识别美式英语口语(和其他一些语言)并将其转录。但对于给定的说话者而言,给定的服务能否奏效将取决于他的方言和口音,以及该服务在类似方言和口音上的受训程度。Microsoft Azure,IBM,Google和Haven On Demand都启动了语音识别服务。

机器学习也存在多种问题。例如,回归问题试图从观察结果中预测一个连续变量(例如销售情况),分类问题试图通过一组给定的观测值预测种类(例如垃圾邮件)。但是仍然有一些相对完整的工具包,像Amazon,Microsoft,Databricks,Google,HPE和IBM所提供的工具,就可以用来解决一系列的机器学习问题。

本文将简要地介绍六个商业机器学习方案,还会贴出五个完整实验结果。不幸的是,Google三月份所宣布的——基于云计算的机器学习工具和应用程序,还没能使Google Cloud Machine Learning达到公共可用的程度。

Amazon Machine Learning

Amazon一直致力于研究大众化的机器学习平台,用来服务那些熟悉业务问题的分析人员,无论他们是否理解数据科学或机器学习算法。

一般来说,要使用Amazon Machine Learning需要经过三个步骤:首先,在S3中清理和上传CSV格式数据;然后,创建、训练和评估ML模型;最后,创建批处理或实时预测。每一步都是迭代的,在整个过程中也同样如此。所以机器学习并不是一个简单、静态的万能药,即使Amazon已经实现了算法优选。

Amazon Machine Learning支持三种模型:二元分类、多级分类和回归——一个算法适用一种类型。为了优化,Amazon Machine Learning使用SGD(Stochastic Gradient Descent),将多个连续的训练数据进行传递,并更新功能权重使之成为小批量格式,让损失函数最小化。损失函数反映了实际值和预测值之间的区别,而且梯度下降优化方法只适用于连续、可微的损失函数,例如物流损失函数和平方损失函数。

  • Amazon Machine Learning将逻辑回归(物流损失函数+SGD)用于二元分类。

  • Amazon Machine Learning将多项逻辑回归(多项物流损失函数+SGD)用于多级分类。

  • Amazon Machine Learning将线性回归(平方损失函数+SGD)用于回归。

图片描述

在使用Amazon Machine Learning训练和评估二元分类模型后,可以选择分数阈值来实现想要的错误率。这里在默认0.5的阈值上有所增加,就可以生成一套更强的引线,有利于更快达到营销和销售目的。

Amazon Machine Learning决定了机器学习是任务解决型而不是目标数据型。例如,预测数值目标变量的问题,意味着回归;预测非数字目标变量的问题时,如果只有两个目标就是二元分类,如果有两个以上则是多级分类。

Amazon Machine Learning的选择功能通过食谱来进行。一旦描述性统计被计算成为数据源,Amazon就会创建一个默认的食谱,用户可以选择继续使用也可以利用机器学习模型覆盖相关数据。

一旦有了满足评估要求的模型,就可以用它来建立实时Web服务或是生成一系列预测。但要记住,和物理常数不同的是,人们的行为会随着时间推移而发生变化。这就要求用户定期检查模型的预测精度指标,并根据需要重新训练。

Azure Machine Learning

与Amazon相比,Microsoft致力于服务那些有经验的数据科学家们,为他们提供一套完整多样化的算法和工具。因此,Azure Machine Learning是Microsoft Cortana Analytics Suite提供的主要内容。另外,Azure Machine Learning还具有拖放界面功能,用于构造、训练模型及从模块中评估数据流。

Azure Machine Learning Studio设备齐全,可以用于导入数据集、训练和发布实验模型、以Jupyter Notebooks处理数据及存储受训模型。同时,它还包含了很多样本数据集、五种可转换的数据格式、多种读写数据的方式、多个数据转换和三个选择特性。Azure Machine Learning提供了多种模型,能够用于异常检测、分类、聚类和回归,而且还列举了四种获取模型的方法、三种评估模型的策略和六种训练模型的流程。另外,利用几个OpenCV(Open Source Computer Vision)模块还可以进行功能统计和文本分析。

Azure Machine Learning提供了很多东西,只要熟知业务、数据和模型,理论上就足以支持用户在所有的模型中处理任意类型数据。当然,如果一般的Azure Machine Learning Studio模块达不到使用要求,用户也可以开发Python或者R模块。

用户可以使用Jupyter Notebooks来开发测试Python 2、Python 3 模块,还可以借助Azure Machine Learning Python客户端库(使用Azure中的数据)、scikit-learn、matplotlib及NumPy进行扩展。Azure Jupyter Notebooks未来还将支持R语言。那么现在,就可以使用本地RStudio,之后如果有需要的话还能够改变Azure的输入输出,或是在Microsoft Data Science VM中安装RStudio。

如果要在Azure Machine Learning Studio中着手新的实验,可以从头开始也可以从涵盖了最常见模型的70个Microsoft样本中进行选择。另外,在Cortana Gallery中还有额外的社区内容可供参考。

图片描述

Azure Machine Learning Studio能快速生成Web服务,用来发布训练有素的工作模型。这个简单的模型来自Azure Machine Learning五个互动步骤说明。

CAP(Cortana Analytics Process)要从步骤计划及设置开始,这一点至关重要,除非用户是一个数据训练科学家,熟知业务问题、数据和Azure Machine Learning的同时,还能够创建出用于项目的必要CAP环境。合理的CAP环境包括有:一个Azure存储账户,一个Microsoft Data Science VM,一个HDInsight(Hadoop)集群,以及一个使用Azure Machine Learning Studio的机器学习工作区。如果无法做出抉择,也没有必要选择所有的Microsoft文档。CAP的运行需要五个处理步骤:摄入、探索性数据分析和预处理、特征创建、模型建立和模型部署及消费。

Microsoft最近发布了一组从Project Oxford中“毕业”的认知服务,该服务能够提供Azure预览。所以所做的这些预先训练,都是为了服务于演讲、文本分析、人脸识别、情感识别及其他类似功能,另外补充一点,用户还可以通过训练自己的模型达到想要的要求。

Databricks

Databricks是一个基于Apache Spark的商业性云服务平台。Spark,是一个开源集群计算框架,包括机器学习库、集群管理器、类Jupyter的互动笔记本、仪表板和作业预定。Databricks(作公司)是由创建Spark的人所成立的,有了Databricks(作服务)后,Spark发展显著加快且Spark集群不断向外扩展。

MLlib库包括更广泛的机器学习和统计算法,为基于内存的分布式Spark体系结构特别设计。MLlib主要实现的功能有:汇总统计、相关性、抽样、假设检验、分类和回归、协同过滤、聚类分析、降维、特征提取和函数转换,以及算法优化。换句话说,对于有经验的数据科学家们而言这是一个相当完整的工具包。

图片描述

这是使用Python代码的Databricks笔记,展示了一种分析公共自行车租赁数据集的方法。这部分的笔记是用交叉验证器训练管道,并运行多个Gradient-Boosted Tree回归。

Databricks被设计成一个可伸缩、相对简单易用的数据科学平台,服务于那些了解统计学和会做一点编程的人。想要有效使用它,需要知道一些SQL和Scala,R,或Python知识。如果能熟练使用所选择的编程语言就更好了,一旦在免费的Databricks Community Edition集群上开始运行Databricks笔记样本,就可以集中精力学习Spark。

图片描述

Google Cloud Machine Learning

Google最近公布了许多机器学习相关产品,其中最有趣的应该是Cloud Machine Learning和Cloud Speech API,目前都处于有限预览阶段。Google Translate API可以执行语言识别,翻译超过80种语言及其变体,Cloud Vision API可以识别多种图像特征,并且这两者都是可供使用的——基于Google演示的它们看起来都不错。

Google Prediction API能够训练、评估、预测回归和分类问题,但是在算法使用上没有选择性,这可以追溯到2013年。

目前Google的机器学习技术——Cloud Machine Learning Platform,使用Google开源TensorFlow库进行训练和评估。TensorFlow由Google Brain团队开发,是一个利用数据流图为数值计算提供服务的通用库,整合了Google Cloud Dataflow、Google BigQuery、Google Cloud Dataproc、Google Cloud Storage及Google Cloud Storage多种资源。

使用前,需要从GitHub库中检索TensorFlow并读取部分C,C++和Python代码,然后仔细研究TensorFlow.org网站和TensorFlow白皮书。在桌面、服务器或是移动设备中,TensorFlow都可以将计算指令部署到CPUs 或GPUs里,无论是一个还是多个。同时,它还在其中建立了各种各样的训练和神经网络算法。在总分10分的情况下,它的使用难度可以高达9分。因为它不仅超出了业务分析师的能力,对于许多数据科学家而言可能也很难。

Google Translate API,Cloud Vision API和新型的Google Cloud Speech API都是预先训练的ML模型。据Google表示,Cloud Speech API使用相同的神经网络技术,支持Google应用中的语音搜索和Google Keyboard中的语音输入。

HPE Haven OnDemand

Haven OnDemand是HPE进入云机器学习领域的冒险之举,主要提供企业搜索和格式转换服务。所以毫无意外的,在这个基于IDOL的服务创建之后立马成为了HPE的私人搜索引擎,然而Haven OnDemand更有趣的功能还没有完全成熟。

Haven OnDemand目前拥有的API类别包括:Audio-Video Analytics,Connectors,Format Conversion,Graph Analysis,HP Labs Sandbox (实验性API),Image Analysis,Policy, Prediction,Query Profile and Manipulation,Search,Text Analysis,以及Unstructured Text Indexing。在实验中利用了一个随机集来探索如何调用和使用API。

Haven OnDemand的语音识别只能支持六种语言及其语言变体。在实验中,高质量U.S. English的文件识别精度还是OK的,但并不完美。

Haven OnDemand Connectors允许用户从外部系统检索信息和通过Haven OnDemand APIs进行更新,因为是IDOL连接器的原因目前已相当成熟。另外,Text Extraction API可以使用HPE KeyView从用户提供的文件中提取元数据和文本内容,API还能利用构建成熟的KeyView处理500多种不同的文件格式。

Graph Analysis是一组预览服务,只适用于索引English Wikipedia,不能在其他数据上进行训练。

下面的例子中利用Image Analysis群组试验了条形码识别,结果显示良好,但在脸部识别上还是HPE的样品测验效果更好。目前,图像识别还是被限制在固定企业标识上,效用有限。

图片描述

Haven OnDemand条形码识别API可以从图像文件中隔离条形码(见红框中内容),并将其转换为一个数字,即使条形码在约20度的曲面上或是模糊不清的,另外API并不会执行查找条形码编号或标识产品这些额外的步骤。

令人失望的是,HPE预测分析只处理二元分类问题:多级分类和回归问题都不适用,更不用说无引导的学习,这也严重限制了其适用性。

从好的方面来看,Train Prediction API能够自动验证、探索、分裂、准备CSV或JSON格式数据,然后训练Decision Tree,Logistic Regression,Naive Bayes,SVM(support vector machine)多参数的二元分类模型。同时,还能测试分类器对评估数据的分类情况,并将其中的最佳模型作为服务发布出去。

Haven OnDemand Search使用IDOL引擎,对公共和私人文本索引都执行高级搜索。Text Analysis APIs的使用范围既包括简单的自动完成和术语扩展,也包括相对复杂的语言识别、概念提取和情感分析。

IBM Watson 和 Predictive Analytics

IBM提供的机器学习服务是基于“Jeopardy”-winning Watson技术和IBM SPSS Modeler所创建的,主要服务对象有三类:开发人员、数据科学家和业务用户。

SPSS Modeler是一个Windows应用程序,最近还能在云端使用。Modeler Personal Edition的内容包括有:数据访问和导出,自动化数据准备、处理和ETL,30多种机器学习基础算法和自动建模,可扩展R语言,以及Python脚本。在价格更高的版本中,通过用于Hadoop/Spark的一个IBM SPSS Analytic Server、支持/激发功能、A / B测试、文本和实体分析,以及社会网络分析这些工具,它还可以获取大数据。

与Azure Machine Learning和Databricks的Spark.ml相比,SPSS Modeler中的机器学习算法同样支持特征选择和格式选取,甚至在自动建模(训练和评估多个模型并从其中挑选最好的)功能上也是类似的,当然比起其他的来说,SPSS Modeler表现更为突出。

IBM Bluemix提供Predictive Analytics Web服务,即应用SPSS模型形成一个评分API,方便用户从应用程序中调用。除了Web服务外,Predictive Analytics还支持批处理作业,利用额外数据重新训练和评估模型。

Watson列出了18个从Predictive Analytics中分离出来的Bluemix服务。AlchemyAPI提供了一组三个服务(AlchemyLanguage,AlchemyVision,AlchemyData),来帮助企业和开发人员创建可以结合文本图像理解上下文内容的认知型应用程序。

Concept Expansion可以基于上下文,来分析文本并学习类似的词或短语。Concept Insights则会将文档连接起来,并在Wikipedia话题基础上提出了预存图的概念。

Dialog Service允许用户利用自然语言和简要用户信息来设计应用程序,并且支持其通过会话界面与用户交互。Document Conversion服务可以将单一的HTML,PDF,HTML或Microsoft Word文档转换成标准化的HTML、纯文本、或者一组JSON-formatted Answer元件,这些还可以与Watson的其他服务结合使用。

图片描述

图中用Watson分析了类似的自行车租赁数据集,这只是提供的例子之一。Watson提出了一个决策树模型,其预测力达48%,但是该工作表并没有区分工作日和非工作日。

Language Translation在多个知识领域和语言互译中都发挥着作用。在新闻和对话领域,能够提供英语与巴西葡萄牙语、法语、现代标准阿拉伯语、西班牙语间的互译。在专利领域,则可以提供英语与巴西葡萄牙语、汉语、韩语、西班牙语间的互译。如果纯文本是用的62种语言之一书写的,Translation服务还可以进行识别。

Natural Language Classifier服务在组类、短语中经过训练后,可以将其认知计算技术用来生成匹配句子、问题或短语的最佳类别。同时,Personality Insights会从交易及社会媒体数据中提取观点(一个人至少1000字)并识别心理特征,并以JSON格式输出特征树。Relationship Extraction再通过上下文分析,解析句子内容和检测内容之间的关系(词类和功能)。

Bluemix的其他服务提高了搜索结果的相关性,并提供文本与语音相互转换的六种语言,同时,还能从文本中识别情感、分析视觉场景及对象。

对于业务分析师和其他非数据科学家的业务人员而言,Watson Analytics使用的IBM自然语言处理使机器学习变得更易使用。

机器学习曲线

机器学习服务的选择取决于用户对自身及其团队的技能评估。对数据科学家和包括数据科学家在内的团队来说,选择面很广,因为擅长编程的数据科学家们可以做的更多:比起Amazon和SPSS Modeler这两者,Google,Azure和Databricks需要更多的编程经验,但同时也更加灵活。

Watson Services在Bluemix上运行,能够给开发者提供更多用于云应用程序的预训练功能,例如进行多个Azure服务、三个Google云APIs、及一些用于文档内容的Haven OnDemand APIs。

最新的Google TensorFlow库是为那些能够流利使用Python,C++,或C的高端机器学习程序员提供的;Google Cloud Machine Learning Platform则似乎是为那些了解Python及云数据管道的高端数据科学家们准备的。

然而Amazon Machine Learning和Watson Analytics却自称是服务于业务分析师或“任何业务角色”(不管那是什么意思)的,很怀疑他们能否满足这些要求。所以,如果在不了解统计、数学或编程的背景下想要开发机器学习应用程序,最好有个精通此物的人来合作完成。

评论