亚马逊、微软、谷歌机器学习服务平台比较
2018-01-27 20:05 作者:FintechProbe编译 收藏(0) 阅读(2088) 评论(0)


IFTNEWS.CN前沿AI科技报道,微信号fintechprobe】对于大多数企业来说,机器学习似乎与火箭科学接近,昂贵且对人才的要求颇高。如果你想建立一个Netflix的推荐系统,它确实是。但让一切都成为服务的趋势影响了这个复杂的领域。如果你是数据科学的新手只想抓住一个小小的成果,你就可以启动一个没有多少投资的ML计划,这将是正确的选择。

其中一个最鼓舞人心的故事是关于一个日本农民的故事,他决定决定自动分拣黄瓜来帮助他的父母。不像那些关于大型企业的故事,这个人既没有机器学习方面的专业知识,也没有庞大的预算。但他确实设法熟悉了TensorFlow,并深入学习认识不同类别的黄瓜。

通过使用机器学习云服务,您可以开始构建您的第一个工作模型,从相对较小团队的预测中获得有价值的见解。我们已经讨论过机器学习策略。现在让我们来看看市场上最好的机器学习平台,并考虑一些基础设施的决定。

机器学习作为一种服务是什么?

机器学习即服务(MLaaS)是涵盖大多数基础设施问题(如数据预处理,模型培训和模型评估)以及进一步预测的自动化和半自动化云平台的总体定义。通过REST api,可以将预测结果与内部IT基础结构联系起来。

亚马逊机器学习服务、Azure机器学习和Google Cloud AI是三种领先的云MLaaS服务,允许在很少或没有数据科学专业知识的情况下进行快速模型培训和部署。如果用可用的软件工程师组建一个本土数据科学团队,应首先考虑这些问题。看看我们的数据科学团队结构故事,以更好地了解角色分布。

在本文中,我们将首先概述亚马逊、谷歌和微软主要的机器学习即服务平台,并将通过比较这些供应商支持的机器学习API来跟踪它。请注意,这个概述并不是要提供何时和如何使用这些平台的详尽说明,而是在开始阅读文档之前要查找的内容。

用于自定义预测分析任务的机器学习服务


Amazon ML的预测分析

亚马逊机器学习服务有两个层面:Amazon ML的预测分析和数据科学家的SageMaker工具。

亚马逊机器学习预测分析是市场上最自动化的解决方案之一,最适合截止日期敏感的操作。该服务可以加载来自多个来源的数据,包括Amazon RDSAmazon RedshiftCSV文件等。所有数据预处理操作都是自动执行的:该服务标识哪些字段是分类的,哪些是数字的,并且不要求用户选择进一步数据预处理的方法(降维和白化)。

Amazon ML的预测能力限于三种选择:二元分类,多类分类和回归。也就是说,这个Amazon ML服务不支持任何无监督的学习方法,用户必须选择一个目标变量在训练集中标记它。而且,用户不需要知道任何机器学习方法,因为Amazon在查看提供的数据后自动选择它们。

这个高度自动化的水平既是亚马逊ML使用的优势也是劣势。如果您需要一个完全自动化但有限的解决方案,该服务可以符合您的期望。如果没有,那就是SageMaker

亚马逊SageMaker和基于框架的服务

SageMaker是一个机器学习环境,通过提供快速建模和部署工具来简化数据科学家的工作。例如,它提供了Jupyter,一个创作笔记本,可以简化数据浏览和分析,而无需服务器管理麻烦。亚马逊也有内置算法,针对分布式系统中的大型数据集和计算进行了优化。这些包括:

  1. 线性学习者,一种有监督的分类和回归方法
  2. 用于分类和回归的因子分解机器,用于稀疏数据集
  3. XGBoost是一个有监督的增强树算法,通过结合简单算法的预测来提高分类,回归和排序的预测精度
  4. 基于ResNet的图像分类,也可以应用于转移学习
  5. Seq2seq是用于预测序列的监督算法(例如,翻译句子,将字符串转换为更短的词汇等)
  6. K-means是一种用于聚类任务的无监督学习方法
  7. 用于降维的主成分分析。
  8. 潜在的Dirichlet分配是一种非监督方法,用于在文档中查找类别。
  9. 神经话题模型(NTM)是一种无监督的方法,它探索文档,揭示排名靠前的词语,并定义话题(用户不能预先定义话题,但可以设置话题的预期数量)

内置的SageMaker方法与Amazon建议的ML API很大程度上相交,但是在这里它允许数据科学家使用它们并使用自己的数据集。

如果您不想使用这些功能,您可以添加自己的方法,并通过SageMaker利用其部署功能运行模型。或者,您可以将SageMakerTensorFlowMXNet集成深度学习库。

一般来说,亚马逊机器学习服务为经验丰富的数据科学家和那些只需要完成工作而不深入数据集准备和建模的人员提供了足够的自由。对于那些已经在使用亚马逊环境并且不打算转移到其他云供应商的公司来说,这将是一个坚实的选择。

微软 Azure机器学习工作室

Azure机器学习的目的是为新手和有经验的数据科学家建立一个强大的游乐场。微软的ML产品名单与亚马逊的产品相似,但就现在而言,Azure在现成算法方面似乎更为灵活。

Azure提供的服务可以分为两大类:Azure机器学习工作室和Bot服务。让我们来看看Azure ML Studio的内幕。我们将在专用于特定API和工具的部分返回到Bot Service

ML Studio是主要的MLaaS包。几乎所有Azure ML Studio中的操作都必须手动完成。这包括数据探索,预处理,选择方法和验证建模结果。

使用Azure接近机器学习需要一些学习曲线。但最终导致对该领域所有主要技术的更深入的了解。另一方面,Azure ML支持图形界面以可视化工作流中的每个步骤。也许使用Azure的主要好处是可以使用各种算法。 Studio支持大约100种处理分类(二元+多分类)、异常检测、回归、推荐和文本分析的方法。值得一提的是,该平台有一个聚类算法(K-means)。

Azure ML的另一大部分是Cortana Intelligence Gallery。它是由社区提供的机器学习解决方案的集合,供数据科学家探索和重用。 Azure产品是从机器学习入手并将其功能引入新员工的强大工具。

Google预测API

Google在两个层面上提供AI服务:精明的数据科学家的机器学习引擎和高度自动化的Google预测API。不幸的是,谷歌预测API最近已被弃用,谷歌将在2018430日停止使用。

这个失败的Predicion API类似于Amazon ML,其简约的方法缩小了两个主要问题:分类(二进制和多类)和回归。经过训练的模型可以通过REST API接口进行部署。

Google并没有公开哪些算法被用于绘制预测,也没有让工程师自定义模型。另一方面,Google的环境是在紧迫的期限内进行机器学习的最佳时机,也是最早启动ML计划的环境。但似乎这款产品并没有Google的预期那么受欢迎。使用Prediction API的用户将不得不使用其他平台来“重新创建现有模型”,,就像“生命的尽头”常见问题所暗示的那样。

所以,会发生什么呢?

谷歌云机器学习引擎

预测API的高度自动化是以灵活性为代价的。 Google ML Engine正好相反。它迎合了经验丰富的数据科学家,非常灵活,并建议使用TensorFlow的云基础设施作为机器学习驱动程序。所以,ML Engine原则上和SageMaker非常相似。

TensorFlow是另一个Google产品,它是一个开源的机器学习库,包含各种数据科学工具,而不是ML-as-a-service。它没有可视化界面,TensorFlow的学习曲线会非常陡峭。但是,图书馆也面向计划向数据科学过渡的软件工程师。 TensorFlow非常强大,但主要针对深度神经网络任务。

基本上,TensorFlowGoogle云服务的结合,意味着根据三层云服务模式,基础架构即服务和平台即服务解决方案。

为了结束机器学习的服务平台,似乎Azure目前在MLaaS市场上拥有功能最多的工具集。它涵盖了大多数与ML相关的任务,为构建自定义模型提供了一个可视化界面,并且为那些不想单纯依靠数据科学的人提供了一套可靠的API。但是,它仍然缺乏亚马逊的自动化能力。

来自亚马逊、微软和Google的机器学习API比较

除了成熟的平台之外,您还可以使用高级API。这些都是在训练有素的模型下的服务,您可以将数据提供给您并获取结果。 API不需要机器学习专业知识。目前,这三家厂商的API大致可分为三大类:

  1. 文本识别、翻译和文本分析
  2. 图像+视频识别和相关分析
  3. 其他,包括特定的未分类服务


语音和文本处理API:亚马逊

亚马逊提供了多个针对文本分析中常见任务的API。这些在机器学习方面也是高度自动化的,只是需要适当的整合才能工作。

亚马逊Lex。由于Lex API包含自动语音识别(ASR)和自然语言处理(NLP)能力,因此创建Lex API以将聊天机器人嵌入到您的应用程序中。这些基于深度学习模式。 API可识别书面和口头文本,Lex界面允许您将识别的输入连接到各种后端解决方案。很显然,亚马逊鼓励使用其Lambda云环境。所以,在订阅Lex之前,也要熟悉Lambda。除了独立的应用程序,Lex目前支持为Facebook MessengerSlackTwilio部署chatbots

亚马逊转录。虽然Lex是一个复杂的chatbot为导向的工具,转录是专为识别口头文本创建。该工具可以识别多个扬声器,并使用低质量的电话音频工作。这使得API成为音频归档编目的一种解决方案,或者为进一步的呼叫中心数据文本分析提供良好的支持。

亚马逊Polly Polly服务与Lex相反。它将文本转换为语音,这将使您的聊天机器人以语音回应。虽然不会构成文本,只是使文本接近人类。如果你曾经尝试Alexa,你有想法。目前,它支持25种语言的女性和男性声音,大部分是英语和西欧语言。一些语言有多个女性和男性的声音,所以甚至有多种选择。像Lex一样,Polly推荐使用Lambda

亚马逊了解。理解是另一个NLP API集,不同于LexTranscribe,针对不同的文本分析任务。目前,Comprehend支持:

  1. 实体提取(识别名称,日期,组织等)
  2. 关键词检测
  3. 语言识别
  4. 情绪分析(正面,中立或负面的文本是如何)
  5. 主题建模(通过分析关键字定义主要主题)

此服务将帮助您分析社交媒体的回复,评论以及不适合手动分析的其他大型文本数据,例如ComprehendTranscribe的组合将有助于分析您的电话驱动的客户服务的情绪。

亚马逊翻译。正如名字所述,翻译服务翻译文本。亚马逊声称,它使用神经网络 - 与基于规则的翻译方法相比 - 提供更好的翻译质量。不幸的是,目前的版本只支持六种语言翻译成英文,而英文翻译成六种语言。语言是阿拉伯文、中文、法文、德文、葡萄牙文和西班牙文。

语音和文本处理APIMicrosoft Azure认知服务

就像亚马逊一样,微软也提出高级API(认知服务),可以将其与基础设施集成,并执行任务,而不需要任何数据科学专业知识。

语音。语音集包含四个API,它们将不同类型的自然语言处理(NLP)技术应用于自然语音识别和其他操作:

翻译语音API

  1. Bing Speech API将文本转换为文字和语音
  2. 说话人识别API用于语音验证任务
  3. 自定义语音服务使用自己的数据和模型来应用Azure NLP容量

语言。 API的语言组侧重于类似于Amazon Comprehend的文本分析:

语言理解智能服务是一种分析文本意图被识别为命令(例如“运行YouTube应用程序”或“打开客厅灯”)的API

  1. 用于情感分析和定义主题的文本分析API
  2. 用于情感分析和定义主题的文本分析API
  3. 必应拼写检查
  4. 翻译器文本API
  5. Web语言模型API,用于估计单词组合的概率并支持单词自动完成
  6. 语言分析API用于分句,标注词类,并将文本分成标注的短语


语音和文本处理APIGoogle云服务

虽然这套API主要与亚马逊和微软Azure建议的相关,但它有一些有趣和独特的东西需要考虑。

Dialogflow。随着各种聊天机器人超过了今天的趋势,谷歌也有东西提供。 Dialogflow采用NLP技术,旨在定义文本的意图,解释人们的需求。可以使用JavaNode.jsPythonAPI调整和定制所需的意图。

云自然语言API。这个版本的核心功能几乎与微软的亚马逊和语言完全相同。

  1. 在文本中定义实体
  2. 认识到情绪
  3. 分析语法结构
  4. 分类主题(例如食物,新闻,电子等)

云语音API。这项服务能够识别自然语言,与类似的API相比,它的主要优势在于Google支持的语言丰富。目前,它的词汇与超过110种全球语言及其变体一起使用。它也有一些额外的功能:

单词提示允许对特定的上下文和可以说出的单词进行自定义识别(例如,为了更好地理解本地或行业术语)

过滤不适当的内容

处理嘈杂的音频

云翻译API。基本上,您可以使用此API在您的产品中使用Google翻译。这包括超过一百种语言和自动语言检测。

除了文字和演讲外,亚马逊、微软和谷歌还提供用于图像和视频分析的相当通用的API

尽管图像分析与视频API密切相关,但许多视频分析工具仍在开发或测试版本中。例如,Google建议对各种图像处理任务提供丰富的支持,但绝对缺乏微软和亚马逊公司已有的视频分析功能。

图像和视频处理APIAmazon Rekognition

不,我们没有拼错这个词。 Rekognition API用于图像以及最近的视频识别任务。他们包括:

对象检测和分类(查找和检测图像中的不同对象并定义它们是什么)

在视频中,可以检测“跳舞”等活动或“扑灭火”等复杂动作,

人脸识别(用于检测人脸和找到匹配的人脸)和面部分析(这个方法非常有趣,因为它可以检测到笑脸,分析眼睛,甚至在视频中定义情感情绪)

检测不适当的视频

认识图片和视频中的名人(无论目标是什么)


图像和视频处理APIMicrosoft Azure认知服务

来自MicrosoftVision软件包结合了六个API,专注于不同类型的图像,视频和文本分析。

计算机视觉识别物体、运作(如行走),并定义图像中的主导色彩。

内容主持人在图片,文字和视频中检测到不适当的内容

脸部API检测脸部,将其分组,定义年龄、情绪、性别、姿势、笑容和面部毛发

Emotion API是描述面部表情的另一种面部识别工具

Custom Vision Service支持使用您自己的数据构建自定义图像识别模型

视频索引器是一种在视频中查找人物的工具,定义语音情感并标记关键字

图像和视频处理APIGoogle云服务

云视觉API。该工具是为图像识别任务而建立的,对于查找特定图像属性非常有用:

  1. 标记对象
  2. 检测人脸并分析表情
  3. 寻找地标和描述现场(例如假期、婚礼等)
  4. 在图像和识别语言中寻找文本。
  5. 主色调

云视频智能。 Google的视频识别API在开发初期就缺乏Amazon RekognitionMicrosoft Cognitive Services提供的许多功能。目前,API提供了以下工具集:

  1. 标记对象并定义动作
  2. 识别明确的内容
  3. 转录语音

在功能列表级别上,Google AI服务可能缺乏一些功能,但Google API所具有的强大功能就在Google可以访问的大量数据集中。

特定的API和工具

在这里,我们将讨论来自MicrosoftGoogle的特定API产品和工具。我们在这里没有包括Amazon,因为它们的API集合仅仅匹配上面提到的文本分析和图像+视频分析类别。但是,这些特定的API的一些能力也存在于Amazon产品中。

Azure服务机器人框架。微软为其用户提供了灵活的机器人开发工具。基本上,该服务包含了构建、测试和部署使用不同编程语言的机器人的成熟环境。

有趣的是,Bot服务并不一定需要机器学习方法。由于微软为僵尸工具(基本,形式,语言理解,主动和问答)提供了五个模板,只有语言理解类型。

目前,您可以使用.NETNode.js技术在Azure上构建机器人,并将其部署到以下平台和服务上:

  1. 必应
  2. Cortana
  3. Skype
  4. 网上聊天
  5. Office 365电子邮件
  6. GroupMe
  7. Facebook Messenger
  8. Slack
  9. Kik
  10. Telegram
  11. Twilio

从微软Bing搜索。微软提出了七个与核心Bing搜索功能连接的API,包括自动建议、新闻、图片和视频搜索。

来自微软的知识。这个API组将文本分析与广泛的独特任务相结合:

建议API允许构建购买个性化的推荐系统

Knowledge Exploration Service允许您输入自然查询以从数据库检索数据,可视化数据和自动完成查询

实体链接智能API旨在突出表示适当实体(例如探索时代)的名称和短语,并确保消除歧义。

学术知识API会自动完成词汇,在文档和概念中找到文档中的相似性,并在文档中搜索图形模式。

QnA Maker API可用于将问题的变体与答案进行匹配,以构建客户关怀聊天机器人和应用程序。

定制决策服务是一种强化学习工具,可根据用户的喜好对不同类型的内容(例如链接,广告等)进行个性化和排名

Google云工作发现。 API仍处于早期发展阶段,但很快就可能重新定义我们今天的求职能力。与依赖精确关键字匹配的传统求职引擎不同,Google采用机器学习来找出高度不同的职位描述之间的相关联系,并避免模棱两可。例如,它努力减少不相关或太广泛的回报,例如将所有关键字“assistant”的作业返回给“销售助理”查询。API的主要特点是什么?

  1. 修复求职查询中的拼写错误
  2. 匹配所需的资历水平
  3. 查找可能具有不同表现形式和行业术语的相关工作(例如,将“服务器”查询返回为“咖啡师”而不是“网络专家”;或者“业务人员”查询)
  4. 处理首字母缩略词(例如,为“HR”查询返回“人力资源助理”)
  5. 匹配不同的位置描述
  6. IBM Watson

之前描述的所有三个平台提供了相当详尽的文档,以启动机器学习实验,并在公司基础架构中部署经过训练的模型。还有一些其他ML-as-a-service解决方案来自初创公司,并受到PredicSisBigML等数据科学家的推崇。

IBM Watson Analytics呢?

IBM Watson Analytics还不是一个完整的机器学习平台,用于商业预测。目前,Watson的优势是可视化数据并描述不同的数值如何相互作用。它也具有类似于Google提供的视觉识别服务以及一系列其他认知服务(API)。沃森目前的问题是,该系统执行的是非专业人员易于操作的狭窄和相对简单的任务。当谈到定制机器学习或预测职责时,考虑IBM Watson的发展还为时尚早。

数据存储

如果您的数据科学家有足够的知识来操作流行的存储解决方案,那么寻找合适的存储来收集数据并使用机器学习进一步处理数据不再是一个很大的挑战。

在大多数情况下,机器学习需要SQLNoSQL数据库方案,这些方案受到Hadoop分布式文件系统(HDFS),CassandraAmazon S3Redshift等许多已建立和可信的解决方案的支持。对于在开始机器学习之前使用强大存储系统的组织,这不会成为障碍。如果您打算使用一个ML-as-a-service系统,最直接的方法是选择同一个提供者用于存储和机器学习,因为这将减少配置数据源的时间。

但是,其中一些平台可以轻松与其他存储集成。例如,Azure ML主要与其他Microsoft产品(Azure SQLAzure TableAzure Blob)集成,但也支持Hadoop和其他一些数据源选项。这些包括从桌面或内部服务器直接上传数据。如果您的机器学习工作流程多样化并且数据来自多个来源,则可能会出现这些挑战。

建模和计算

我们已经讨论了主要提供计算能力的ML-as-a-service解决方案。但是如果学习工作流程是在内部执行的,计算挑战迟早会出现。机器学习在大多数情况下需要很多计算能力。不管大数据时代到来,数据抽样(制作子集)仍然是一个相关的实践。虽然模型原型可以在笔记本电脑上完成,但使用大型数据集来训练复杂模型需要投入更强大的硬件。数据预处理也是如此,在常规的办公机器上可能需要几天的时间。在截止日期敏感的环境中 - 有时模型应该每周或每天进行改动和再培训 - 这根本就不是一种选择。有三种可行的方法来处理处理,同时保持高性能:

加速硬件。如果您执行相对简单的任务,并且不将模型应用于大数据,请使用固态驱动器(SSD)执行数据准备或使用分析软件等任务。可以用一个或多个图形处理单元(GPU)来解决计算密集型操作。许多图书馆可以让GPU处理用Python等高级语言编写的模型。

考虑分布式计算。分布式计算意味着多台机器的任务分离。但是,这种方法不适用于所有的机器学习技术。

使用云计算实现可扩展性。如果您的模型处理具有密集高峰时刻的客户相关数据,云计算服务将允许快速的可扩展性。对于只需要内部部署数据的公司而言,值得考虑私有云基础架构。

下一步

在各种可用解决方案中很容易迷失方向。它们在算法上有所不同,它们在所需技能方面有所不同,最终在任务上有所不同。这种情况对于这个年轻的市场是相当普遍的,因为即使我们谈到的三个领先的解决方案也不是完全相互竞争。更重要的是,变化的速度令人印象深刻。很有可能你会坚持一个供应商,而另一个供应商会突然推出一些符合你的业务需求的事情。

正确的做法是尽可能早地阐明你打算用机器学习来实现什么。这并不容易。如果您缺乏数据科学或领域专业知识,那么在数据科学和业务价值之间搭建桥梁就非常棘手。在与客户讨论机器学习应用程序时,AltexSoft经常遇到这个问题。这通常是将一般问题简化为单一属性的问题。无论是价格预测还是其他数值,对象的类别或将对象分成多个组,一旦找到该属性,决定供应商并选择提议的内容将会更简单。

DCVC创始合伙人Bradford Cross认为ML-as-a-services不是一个可行的商业模式。据他介绍,它落在了将要使用开源产品的数据科学家和将要在上级购买工具解决任务的高管之间的差距。然而,目前业界似乎正在克服其长期存在的问题,最终我们会看到更多的公司转向ML-as-a-Service,以避免昂贵的人才收购,并且仍然拥有多功能的数据工具。

来源:kdnuggets

作者:Altexsoft.

 编译:ifintechnews.com