译者 | reason_W
编辑 | Just
出品 | AI科技大本营(公众号ID:rgznai100)
对大多数企业来说,机器学习听起来就像航天技术一样,属于花费不菲又“高大上”的技术。如果你是想构建一个 Netflix 这种规模的推荐系统,机器学习确实是这样的。(注:Netflix是美国流媒体巨头、世界最大的收费视频网站,曾于 2017 年买下《白夜追凶》全球播放权。)但受万物皆服务(everything-as-a-service)这一趋势的影响,机器学习这一复杂的领域也正在变得越来越接地气。所以现在哪怕你只是一个数据科学领域的新手,并且只想实现一些很容易的目标,也可以立马开始一个不需要太多投资的机器学习项目。
机器学习领域有一个非常鼓舞人心的故事:有一个日本的农民,他父母的工作是拣选农场的黄瓜。为了帮助父母减轻劳动负担,他决心要用机器实现黄瓜自动拣选。然而这个农民既没有机器学习方面的专业知识,也没有很多的资金预算。但他却成功地借助 TensorFlow,利用深度学习知识实现了不同种类黄瓜的识别。
通过使用机器学习服务,你可以很轻松地开始你的第一个工作模型的构建工作。哪怕是一个开发能力不那么强的小团队,也有能力实现模型预测以获得有价值的见解。我们已经讨论过机器学习策略。现在让我们来了解一下市场上最流行的机器学习平台,并考虑一下怎么选择基础架构。
▌什么是机器学习即服务?
机器学习即服务(MLaaS)是自动化和半自动化云平台的统称,它涵盖了大多数基础架构,如数据预处理、模型训练和模型评估,以及进一步的预测。而预测结果则可以通过 REST API 与你的内部 IT 架构联系起来。
亚马逊的机器学习服务、微软 Azure 机器学习云服务和 Google Cloud AI 服务是目前最领先的三个机器学习服务平台。它们可以在几乎不需要任何数据科学专业知识的情况下,提供快速的模型训练和部署功能。如果你想从一个的软件工程师团队中挑人组建一个本地数据科学团队,那首先就应该考虑这种平台。你可以先了解一下数据科学团队结构的资料,熟悉一下它的的角色分配。
在本文中,我们将首先概述 Amazon、Google 和 Microsoft 这三个主要机器学习服务平台,然后比较这些供应商支持的机器学习 API。注意,这个概述并不是要讨论这些平台的详细使用说明,而是要讨论你在开始阅读它们的文档之前应该了解的东西。
▌用于定制化预测分析任务的机器学习服务
Azure MLstudio 拥有最全面的服务;但如果你的任务需要使用深度神经网络,我们也建议你了解一下 Amazon SageMaker 和 Google ML Engine
▌使用 Amazon ML 进行预测分析
亚马逊的机器学习服务有两种类型:使用 Amazon ML 进行预测分析,以及针对数据科学家的SageMaker 工具。
Amazon ML 针对预测分析提供的方案是市场上最具自动化的解决方案之一,也是截止期敏感操作的最佳解决方案。它的服务可以加载来自多个数据源的数据,包括 Amazon RDS,Amazon Redshift,CSV 文件等。所有数据预处理操作都会自动执行:它的服务会识别哪些字段是类别,哪些数据是数值,并且不需要用户进一步选择数据预处理的方法(降维及数据清洗)。
Amazon ML 的预测能力仅限于以下三种选择:二分类、多类分类和回归。也就是说,这个Amazon ML 服务不支持任何无监督学习方法,用户必须选择一个目标变量并将其标记为训练集。当然,用户也不需要知道任何机器学习方法,因为亚马逊会在查询用户提供的数据后自动选择算法。
对 Amazon ML 的使用而言,这种高度自动化操作水平有好有坏。如果你需要一个完全自动化但功能有限的解决方案,这个服务可以满足你的期望。如果不是,还可以考虑亚马逊的 SageMaker 工具。
Amazon SageMaker 和基于框架的服务
SageMaker 是一个机器学习环境,它可以提供快速模型构建和部署工具,并以此简化其他数据科学家的工作。例如,它提供了Jupyter(一种交互式笔记本,支持40多种编程语言)来简化数据探索和分析,而不需要登陆服务器(这样操作十分麻烦)。Amazon 还内置了针对大型数据集和分布式系统计算的算法,包括:
线性学习器,一种用于分类和回归的监督学习方法
为稀疏数据集分类和回归任务设计的分解机(Factorization Machines)
XGBoost,一种监督 boosted 树算法,它通过结合简单算法的预测结果来提高分类、回归和排序的预测精度
基于 ResNet 的图像分类,也可用于迁移学习
Seq2seq,一种用于序列预测的监督算法(例如翻译句子,将单词串转换成较短的单词作为摘要等)
K-means,一种用于聚类任务的无监督学习方法
PCA(Principal component analysis),用于降维
LDA(Latent Dirichlet Allocation),一种用于在文档中查找类别的非监督方法
神经话题模型(NTM),一种非监督的方法,用于探索文档,发现排名靠前的单词,并定义主题(用户不能预先定义主题,但可以设置预期数量)
内置的 SageMaker 方法与 Amazon 建议的机器学习 API 有很大程度的交叉,但在这里,它允许数据科学家自定义的方法,并使用他们自己的数据集。
如果你不想用这些内置模型,还可以添加自己的方法,并利用 SageMaker 的部署特性来运行模型。或者你可以将 SageMaker 与 TensorFlow 和深度学习库 MXNet 集成在一起。
一般来说,无论是那些有经验的数据科学家还是那些只需要做项目的人,亚马逊的机器学习服务都为他们提供了足够的自由,而不需要使用者再深入准备数据集和建模。对于已经在使用Amazon 环境并且不打算过渡到另一个云提供商的公司来说,这会是一个很靠谱的选择。
微软 Azure 机器学习 Studio
Azure 机器学习 的目的是为新手和有经验的数据科学家提供一个强大的试验平台。微软的 ML 产品列表与亚马逊的类似,但是 Azure 在开箱即用的算法方面看起来更加灵活。
Azure 的服务可以分为两大类:Azure 机器学习 Studio 和 Bot 服务。接下来我们会首先介绍 Azure ML Studio 的内容。然后针对 Bot 服务的特定 API 和工具部分进行专门介绍。
ML Studio 是 Azure 主要的机器学习服务包。几乎所有 Azure ML Studio 的操作都必须手动完成。这包括数据挖掘、预处理、方法选择以及建模结果验证。
使用 Azure 来进行机器学习会经历一个必要的学习阶段。但这也会让使用者对该领域所有的主要技术有一个更深层次的理解。另一方面,Azure ML 支持图形化界面,以可视化工作流中的每一个步骤。使用 Azure 的主要好处或许是我们可以在这个平台上使用各种算法。Azure Studio 支持大约 100 种方法,包括分类(二分类+多类)、异常检测、回归、推荐系统和文本分析。值得一提的是,该平台还支持一个聚类算法(K-means)。
Azure ML 的另一个重要部分是 Cortana Intelligence Gallery。这是一个机器学习解决方案的集合,由相关社区进行维护,其解决方案可供数据科学家进行开发和重用。对于那些刚刚上手机器学习的人来说,Azure 产品是一个强大的工具,并且非常适合将其介绍给新员工。
Google 预测 API
Google 提供了两种类型的人工智能服务:一个是为经验丰富的数据科学家提供的机器学习引擎,另一个是高度自动化的 Google 预测 API。不幸的是,Google 最近宣布将在 2018 年 4 月 30 日 Google 预测 API 。
和 Amazon ML 类似,其功能也是只解决两个主要问题:分类(二分类和多类)和回归。训练好的模型可以通过 REST API 接口进行部署。
Google 并没有透露其预测部分究竟用到了哪些算法,也不允许工程师自定义模型。但从另一个角度来说,Google 的环境最适合那些期限很紧张的使用者进行机器学习,并推出初始版的 ML 模型。但该产品似乎并没有 Google 所想的那样受欢迎。由于该功能的弃用,那些之前一直在使用预测 API 的人将不得不使用其他平台来“重建现有模型”。
所以,Google 预测 API 的接替者会是什么呢?
Google Cloud 机器学习引擎
预测 API 的高自动化牺牲了该功能的灵活性。而 Google ML 引擎则正好相反。它专门针对经验丰富的数据科学家进行了非常灵活的设计。Google ML 建议人们使用 Tensorflow 的云基础设施作为机器学习的驱动器。原则上 ML 引擎和 SageMaker 很相似。
TensorFlow 是 Google 的另一个产品,它是一个包含大量数据科学工具的开源机器学习库,而不是机器学习服务。它没有可视化的界面,并且相应的学习曲线也会非常陡峭。然而,这个开源库的目标用户也包括那些计划过渡到数据科学的软件工程师。TensorFlow 非常强大,但主要针对的是深度神经网络任务。
基本上,TensorFlow 和 Google Cloud 服务的结合,代表了三层云服务模式中的 IaaS 和 PaaS 解决方案结合。我们在数字化转型的白皮书中谈到了这个概念。
对比上面我们介绍到的 MLaaS 平台,目前在这一市场上似乎 Azure 拥有的工具集功能最多。它涵盖了大多数与机器学习相关的任务,为构建自定义模型提供了一个可视化界面,并且为那些不想单纯依靠内置功能的人提供了一套可靠的API。但是,它的自动化能力仍然不如亚马逊的机器学习平台。
▌亚马逊,微软和 Google 的机器学习 API 对比
除了成熟的平台之外,你还可以使用高级 API。这些服务的模型都是已经训练好的模型,输入数据就可以得到结果。使用 API 不需要机器学习的专业知识。目前,这三个供应商的 API 大致可分为下面三大类:
1)文本识别、翻译和文本分析。
2)图像+视频识别及相关分析。
3)具体的未分类服务。
微软的功能列表最丰富。当然,最关键的功能所有供应商都会提供。
语音和文本处理 API: Amazon
Amazon 提供了多个针对主流文本分析任务的 API。使用机器学习功能也非常自动化,只需要进行适当的集成即可。
亚马逊 Lex:Lex API 含有自动语音识别(ASR)和自然语言处理(NLP)功能,可以在你的应用程序中嵌入聊天机器人,这些都是基于深度学习模型实现的。API 可以识别文字和语音内容,而 Lex 接口允许将输入的识别结果与各种后端解决方案连接到一起。Amazon 也非常鼓励你使用其 Lambda 云环境。所以,在使用 Lex 之前,最好也要了解 Lambda。除了独立的应用程序,Lex 还支持在 Facebook Messenger、Slack 和 Twilio 等聊天软件上部署聊天机器人。
亚马逊 Transcribe(语音转文字):虽然 Lex 是一种复杂的聊天工具,但它仅用于识别语音文本。而 Transcribe 这个工具可以利用多个扬声器,并识别低质量的电话音频。这使得这个 API 成为音频文档分类的首选解决方案。并且这个 API 还可以对呼叫中心数据的进一步文本分析提供良好支持。
亚马逊 Polly:Polly 服务和 Lex 相反。它用于将文本转换成语音,这可以让你的聊天机器人直接用语音进行回复。这个过程没有生成文字,而只是让文字听起来更像人类。如果你之前用过 Alexa,你就明白了。目前,它支持 25 种语言的女性和男性的声音,主要是英语和西欧语言。有些语言有多种女性和男性的声音,所以有多种语音效果可供选择。和 Lex 一样,Polly 也被推荐和 Lambda 一起使用。
亚马逊 Comprehend:理解(Comprehend )是另一组自然语言处理的接口。与 Lex 和 Transcribe不同,Comprehend 主要针对不同的文本分析任务。目前,Comprehend 支持:
实体提取(识别名称、日期、组织等)
关键词检测
语言识别
情绪分析(文章立场属于正面、中性还是负面?)
主题建模(通过分析关键字来定义主要主题)
该服务可以帮助使用者分析社交媒体的反应、评论和其他不适合手动分析的文本数据。例如, Comprehend 和 Transcribe 的组合可以用来分析客户在使用电话客服时的情绪。
亚马逊 Translate :顾名思义,Translate 服务用于翻译文本。与基于规则的翻译方法相比,亚马逊声称该功能使用了神经网络,可以提供更好的翻译结果。不过目前该功能仅支持以英语为源语言或目标语言的六种语言的翻译,包括阿拉伯语、汉语、法语、德语、葡萄牙语和西班牙语。
语音和文本处理 API:微软 Azure 认知服务
和亚马逊一样,微软也建议用户将其认知服务 API 与用户的基础架构集成到一起,来执行那些不需要任何数据科学专业知识的任务。
语音:语音功能包含四个 API,分别应用不同类型的自然语言处理(NLP)技术进行自然语音识别和其他操作:
语音翻译 API
Bing 语音 API 将文本转换成语音和语音转换成文本
用于语音验证任务的语音识别 API
方便用户在自己的数据和模型上应用 Azure NLP 的语音定制服务
语言:语言功能 API 主要用于和亚马逊 Comprehend 类似的文本分析:
语言理解智能服务是一个用于分析含有命令意图的文本(如“运行 YouTube 应用程序”或“打开房间的灯”) 的 API
用于情绪分析和主题提取的文本分析 API
Bing 拼写检查
文本翻译 API
通过估计单词组合的概率,进行单词自动补全的 Web 语言模型 API
用于语句分离,词性标注,以及将文本划分为有标记的短语的语言分析 API
语音和文本处理 API:Google Cloud 服务
虽然 Google 的语音文本处理 API 与亚马逊和微软 Azure 的功能不同,但也有一些有趣且独特的东西值得关注。
Dialogflow:随着各种聊天机器人的势头越来越猛,Google 也想进来插一脚了。Dialogflow 的内核是自然语言处理技术,目的是在文本中提取意图,并解释一个人想要干什么。这个 API 可以通过 Java、Node.js 和 Python 来进行调整和自定义。
云自然语言 API:它的核心功能几乎跟亚马逊的 Comprehend 以及微软的语言服务完全相同。
定义文本中的实体
情绪识别
语法结构分析
主题分类(如食物、新闻、电子产品等)
云语音 API:这项服务可以识别自然语言。与类似的 API 相比,它的主要优点是 Google 支持大量的语言。目前,它使用的词汇涵盖超过 110 种全球语言及其变体。该服务还有一些附加功能:
单词提示可以对识别到的自定义上下文或单词进行语音播报(如可以帮助用户更好地理解本地或行业术语)
过滤不恰当的内容
处理噪声音频
云翻译 API:基本上,这个 API 就等于在你的产品中直接使用 Google 翻译。它可以完成包括超过 100 种语言在内的翻译和自动语言检测。
除了文本和语音,亚马逊、微软和 Google 还提供了相当多的用于图像和视频分析的 API。
目前在 Google Cloud 上可以使用的图像分析工具包最全
虽然图像分析与视频 API 密切相关,但许多用于视频分析的工具仍处在开发或测试版本中。例如,Google 为各种图像处理任务提供了很多支持,但是在微软和 Amazon 上已经没有视频分析功能了。
微软看起来功能最多,但由于亚马逊支持视频流处理,所以我们仍然认为它是效率最高的视频分析 API。这个特性有力地扩展了使用范围。
图像和视频处理 API:亚马逊 Rekognition
不要以为我们把单词拼错了,它确实是这么拼写的。Rekognition API 用于图像识别任务,最近还开始支持视频识别。其功能包括:
目标检测和分类(在图像中发现并检测不同的目标,然后定义它们是什么)
在视频中,它可以检测诸如“跳舞”之类的简单动作,也可以检测像“灭火”这样的复杂动作
人脸识别(用于人脸检测和匹配)和面部分析(这个功能非常有趣,因为它可以检测微笑、分析眼睛,甚至在视频中定义情感情绪)
检测不恰当的视频
在图片和视频中认出名人(无论目标是谁)
▌图像和视频处理 API:微软 Azure 认知服务
微软的视觉包结合了六个 API,专注于不同类型的图像、视频和文本分析。
计算机视觉,用于识别物体,动作(如行走),并定义图像中的主色彩
内容主持人,用于在图像、文本和视频中检测不适当的内容
Face API,用于检测人脸,对其进行分组,定义年龄、情绪、性别、姿势、微笑和面部毛发
情感 API,另一种用于描述面部表情的面部识别工具
定制视觉服务,支持使用用户数据构建自定义图像识别模型
视频索引器,一种可以在视频中进行人员查找,定义语音情绪,并标记关键字的工具
图像和视频处理 API:Google Cloud 服务
云视觉API:该工具是专门为图像识别任务构建的,对查找特定图像属性非常有用:
物体标识
面部表情检测和分析
地标查找和场景描述(如假期、婚礼等)
在图像中寻找文本并进行文字识别
主色彩
云视频智能:Google 的视频识别 API 是早期开发的,因此它的功能同亚马逊的 Rekognition 和微软认知服务提供的功能相比要少一些。目前,API 提供了以下工具集:
物体标记和行为定义。
识别明确的内容
演讲语音转文字
虽然 Google AI 服务在功能上要少一些,但是 Google API 的优势在于 Google 可以访问海量数据集
▌特定的 API 和工具
在这里,我们将讨论来自 Microsoft 和 Google 的特定 API 产品和工具。这里不包括 Amazon 的原因是,它们的 API 只涉及上文谈到的文本分析和图像+视频分析。当然,这些特定 API 的一些能力在 Amazon 产品中也有体现。
Azure Service Bot 框架:微软为其用户提供了灵活的 Bot 开发工具。该服务基本上包含了构建、测试和部署使用不同编程语言的 Bot 的成熟环境。
有趣的是,Bot 服务并不需要机器学习方法。微软为机器人提供了 5 个模板(basic, form, language understanding, active, and Q&A),只有语言理解类型需要高级 AI 技术。
现在你可以使用.NET 和 Node.js 技术在 Azure 上构建 Bot,并将它们部署到以下平台和服务中:
必应
Cortana
Skype
Web Chat
Office 365 邮件
GroupMe
Facebook Messenger
Slack
Kik
Telegram
Twilio
微软Bing搜索:微软提供了与 Bing 的核心搜索功能相连接的 7 个 API,包括自动提示、新闻、图片和视频搜索。
微软知识:这个 API 将文本分析和一系列独特的任务结合在一起:
推荐系统 API,用于建立支持个性化购买的推荐系统
知识探索服务,允许通过输入自然语言查询来进行数据库数据检索、数据可视化和自动完成查询。
实体链接智能 API,用于突出显示特定实体的名称和短语(例如,年龄),并确保消除歧义。
学术知识 API,用于单词自动补全,在单词和概念中找到相似的文档,并在文档中进行图模式搜索。
QnA Maker API,可用于大量问答及变体的匹配,构建客服聊天机器人和应用程序。
自定义决策服务,一种增强学习工具,根据用户的喜好对不同类型的内容(如链接、广告等)进行个性化定制和排序
Google Cloud 职位发现:这个 API 还处于早期开发阶段,但它可能很快就会重新定义我们今天的职位搜索能力。与传统的依靠精确的关键字匹配的搜索引擎不同,Google 使用机器学习来寻找高度变化的职位描述之间的关联,从而避免模棱两可的关键字。例如,它努力减少不相关的或太宽泛的反馈,比如把所有关键词带有“assistant”的工作作为“销售助理”的查询结果。这个 API 的主要功能是什么呢?
修正职位查询中的拼写错误
匹配期望的资历水平
在不同的表达和行业术语中找到相关的工作(例如:在查询“服务人员”时,返回“咖啡师”而不是“网络专家”;或在查询“商业拓展”时返回“运营专员”)
处理首字母缩略词(例如查询“HR”时,返回“人力资源助理”的查询结果)
匹配多样化的职位描述
▌IBM Watson 和其他平台
我们上面描述的三个平台都提供了相当详细的文档来帮助用户开始机器学习实验,并在公司基础架构中部署经过训练的模型。还有一些来自初创公司的机器学习服务解决方案,如 PredicSis 和 BigML,也受到了数据科学家的推崇。
那么 IBM Watson Analytics 怎么样呢?
就商业预测的目的来说,IBM Watson Analytics 还不是一个完善的机器学习平台。目前,Watson 的优势是可视化数据并描述不同的数值如何相互作用。它还提供跟 Google 类似的视觉识别服务和一组其他认知服务(API)。
Watson 目前的问题是,这个系统目前只能执行一些对非专业人员来说都很容易操作的狭窄而相对简单的任务。当涉及到自定义机器学习或预测任务时,IBM Watson 就差远了。
▌数据存储
如果你的数据科学家还能操作流行的存储解决方案,那么为了收集数据和进一步处理机器学习去寻找合适的存储就容易多了。
在大多数情况下,机器学习需要 SQL 和 NoSQL 数据库方案,这些方案由许多已经建立且可信的解决方案提供支持,如 Hadoop 分布式文件系统(HDFS)、Cassandra、Amazon S3 和 Redshift。对于那些在开始机器学习之前使用强大存储系统的组织来说,这不是多么困难的事。如果你计划使用一些机器学习服务系统,最直接的方法就是让存储服务提供商和机器学习服务提供商保持一致,因为这会减少很多配置数据源的时间。
但是,也有一些平台可以很容易地与其他存储平台集成。例如,Azure ML 主要集成了其他Microsoft 产品(Azure SQL、Azure 表、Azure Blob),但也支持 Hadoop 和其他一些数据源选项。这包括从桌面或服务器直接上传数据。如果你的机器学习工作流是多样化的,并且数据来源很多,那么在这些平台上使用机器学习服务可能就会面临很多挑战。
▌建模和计算
我们已经讨论的机器学习服务解决方案都提供了计算能力。但如果学习流程是在内部执行的,那么迟早会面临计算挑战,机器学习在大多数情况下都需要大量的计算能力。无论大数据时代有没有到来,数据采样(采集一个有组织的子集)都是一个与之相关的实践。虽然模型原型可以在笔记本电脑上完成,但使用大型数据集训练复杂的模型需要投入更强大的硬件。
这同样适用于数据预处理,在普通的办公设备上这甚至可能花费数天时间。在一个截止期敏感的环境中——有时需要修改模型,每周或每天都要重新训练——这根本不可行。为了保证高性能计算,可以考虑下面三种可行的处理方法:
硬件加速。如果你做的是相对简单的任务,并且不会将模型应用到大数据上,可以使用固态硬盘(ssd)来完成数据准备或使用分析软件等任务。计算密集型操作可以通过一个或多个图形处理单元(GPU)来处理。许多软件库都支持使用 GPU 运行用 Python 等高级语言编写的模型。
考虑分布式计算。分布式计算意味着将任务划分到多台机器上,但这种方法并不适用于所有的机器学习技术。
使用云计算处理数据大规模扩展。如果你的模型要处理的客户相关数据有密集的高峰时段,可以通过云计算服务来处理这种快速的数据规模扩展。而对于只需要在内部部署数据的公司而言,私有云架构也非常值得考虑。
▌未来展望
这么多解决方案很容易让人看花了眼。它们在算法上有不同,在需要的技能上也有所不同,最终在任务上有所不同。这种情况在这个新兴市场很常见,甚至于我们上文讨论的三个主要解决方案之间都还没有形成完全的竞争关系。不仅如此,这个市场变化的速度也令人印象深刻。很有可能在你坚持一个供应商的时候,另一个供应商就突然推出了一些符合你业务需求的服务。
正确的做法是尽可能早地确立你计划通过机器学习实现的目标,但这并不容易。如果你缺乏数据科学或者其他领域的专业知识,那么要打通数据科学和商业价值之间的桥梁就非常棘手。在与客户讨论机器学习应用程序时,我们经常会遇到这个问题。处理这个问题的方法通常是将一般问题简化为单个属性的问题,不管是预测价格还是其它数值(对象的类别或将对象分成多个组),一旦找到该属性,决定供应商并选择服务内容就会很简单。
DCVC 创始合伙人 Bradford Cross 认为,MLaaS 不是一种可行的商业模式。根据他的说法,在将要使用开源产品的数据科学家和将要购买工具解决任务的高管两种角色之间有着相当大的差距。然而,目前业界似乎正在克服这个“痼疾”。为了在拥有多功能数据工具的同时避免昂贵的人才投入,未来将有更多的公司转向机器学习服务。
题图来自 oresdatascience
原文链接:
https://www.altexsoft.com/blog/datascience/comparing-machine-learning-as-a-service-amazon-microsoft-azure-google-cloud-ai/
小问卷
AI科技大本营 公众号ID:rgznai100
☟☟☟点击 | 阅读原文 | 查看更多精彩内容