编者按:本文来自微信公众号“量子位”(ID:QbitAI),林鳞 编译自 KDnuggets,36氪经授权发布。
什么是机器学习即服务?
云技术“三巨头”亚马逊、微软Azure和谷歌云的机器学习即服务各自有哪些特点?
这是一次公正客观的对比。不吹不黑,读完即知。
对于大多数公司来说,机器学习是一项复杂而伤神的工作,花销大、对人才要求高。
机器学习即服务针对这个痛点应运而生。
机器学习即服务(Machine learning as a service,MLaaS)是一类自动化和半自动化云平台的统称,用来解决数据预处理、模型训练、模型评估、未来预测等一系列基础设施问题。
亚马逊机器学习服务、微软Azure机器学习和谷歌云AI是目前云机器学习即服务的领导者,可以帮助没有数据科学经验的用户快速训练并部署模型。
在这篇文章中,我们首先概览这三个主要的机器学习即服务平台的性能,之后对比这些供应商支持的机器学习API。
准备好了嘛,来次够!
亚马逊机器学习服务:包含进行预测性分析的Amazon ML,和数据科学家专属的整套加速机器学习流程的托管服务SageMaker工具。
用Amazon ML进行预测性分析是目前市场上自动解决方案之一,特别适合时间紧的操作。这项服务可以从众多来源中加载数据,包括Amazon RDS、Amazon Redshift、CSV文件等。
所有数据预处理操作都是自动执行的:它能帮你识别哪些字段是分类的、哪些是数值的,并且不要求用户选择方法或进一步的数据预处理。
Amazon ML的预测能力限制在以下三个类别之中:二值分类、多值分类和回归。也就是说,这种Amazon ML服务不支持任何无监督学习方法,用户必须选择一个目标变量在训练集中进行标记。
此外,用户无需了解任何机器学习的方法,因为亚马逊在查看提供的数据后会自动选择。
这种高度自动化的操作对Amazon ML来说是优势也是劣势。如果你需要全自动但限制性强的解决方案,这项服务应该正中你下怀。如果不是,你可以选择SageMaker。
SageMaker是一个机器学习环境,它提供快速构建和部署模型的工具,为数据科学家简化工作。
比如通过提供的程序编写笔记本Jupyter,简化数据探索和分析过程,并且避免了管理服务器这等麻烦事。
亚马逊还内置了为大数据集和分布式系统计算而优化的算法。这包括:
Linear learner,一种用于分类和回归的监督学习方法
为稀疏数据集设计的分类和回归的Factorization machines
XGBoost,一种监督式增强树算法,它通过结合简单算法的预测来提高分类、回归和排序的预测精度
基于ResNet的图像分类,也可用于迁移学习
Seq2seq,一种预测序列的监督学习算法,可以用于语句翻译、把字符串转化成简短的句子等
K-means,一种无监督学习方法,可用于聚类任务
主成分分析(PCA),可用于降维
隐式狄利克雷分布(LDA),一种用于返现文件类别的无监督学习法
神经网络机器翻译(NTM),也是一种无监督学习法,可以用来探索文件、定义主题。用户无需预定义主题,但是它们可以设置期望的数量
内置的SageMaker方法与亚马逊推荐的ML API关联较大,但是SageMaker允许数据科学家用自己的数据集进行操作。
如果你不知道如何使用,你可以利用SageMaker的部署特征添加自己的方法后运行模型,也可以将SageMaker和TensorFlow和MXNet等深度学习库结合起来。
无论是对有经验的数据科学家和新手来说,亚马逊机器学习服务的自由度很高。对于已经使用亚马逊环境的公司来说这是一个可靠的选择,无需考虑转到其他云提供商了。
微软Azure旨在为新手和有经验的数据科学家提供施展的场地,和亚马逊的服务相比,Azure在到手即用的算法上更灵活。
Azure的服务主要有两大类:Azure Machine Learning Studio和Bot Service。我们接下来主要分析ML Studio,一会儿再说Bot Service。
几乎所有Azure ML Studio的操作都需手动完成,包括数据挖掘、预处理、选择方法和验证建模结果。
用Azure做机器学习要经历一个学习曲线,但最终会帮助用户更深入理解这个领域中的主要技巧。换个角度说,Azure ML支持的图形界面可以将整个工作流的每一步可视化。此外,使用Azure的优势还在于其中可用的多样算法,它支持100多种方法,涉及分类、异常检测、回归、推荐和文本分析等方法。值得一提的是,这个平台还支持一个聚类算法(K-means)。
Azure ML中另一个主要部分是Cortana Intelligence Gallery。这是一个由社区提供的机器学习解决方案的集合,数据科学家探索和复用。
谷歌提供两种级别的AI服务:一种是为老练的数据科学家提供的机器学习引擎,另一种是高度自动化的谷歌预测API(Google Prediction API)。不幸的是,Google Prediction API将在2018年4月30日停止服务。
Google Prediction API有点像Amazon ML,它的能将解两类问题:分类和回归。训练过的模型可通过REST API部署。
谷歌没有公布具体哪些算法可用于绘制预测,也不允许工程师定制模型。不过,它非常适合用来在时间紧迫的时候构建初步的机器学习应用。但是该产品似乎不像谷歌预计的那样受欢迎,因为使用预测API的用户还需要用其他的平台重建现有的模型。
预测API的高自动化是以灵活性为代价的,机器学习引擎(Google Cloud Machine Learning Engine)与之不同。
它非常适合有经验的数据科学家,非常灵活,建议用云端的基础设施,搭配TensorFlow来驱动机器学习。所以,ML Engine大体上和SageMaker相像。
纵览三家,似乎Azure是目前MLaaS市场上最通用的工具集。它涵盖了大多数与机器学习相关的任务,为构建自定义模型提供了可视化界面,并且为那些不想自己动手掌握数据科学的人提供了一套API。同时,它也缺乏自动化能力。
除了成熟的平台之外,你还可以选择高级API。这些服务都提供训练好的模型,输入数据就可以获得结果。使用这些API不需要机器学习专业知识。目前,这三家公司的API可以大致分为三组:
1)文本识别、翻译和文本分析
2)图像+视频识别和相关分析
3)其他,包括特定的未分类服务
亚马逊提供了多个针对文本分析中流行任务的API,它们在机器学习方面也是高度自动化的,并且只需适当的集成便可使用。
Amazon Lex:Lex API是在应用程序中嵌入的聊天机器人,基于深度学习模型,它具备自动语音识别(ASR)和自然语言处理(NLP)的能力。
这些API可以识别书面和口头文本,Lex接口将识别的输入与各种后端解决方案挂钩。除了独立的应用程序,Lex还支持为Facebook Messenger、Slack和Twilio部署聊天机器人。
Amazon Transcribe:Lex仅能用于识别语音文本,但Transcribe工具可以在低质量的电话音频中识别多个讲话人。它是编辑音频文档的首选解决方案。
Amazon Polly:Polly服务和Lex刚好相反,它能够将文本转换成语音,让聊天机器人能说话。
Amazon Comprehend: Comprehend是另一组NLP的API。和Lex和Transcribe不同,它专注于不同的文本分析任务。这项服务将帮助用户分析社交媒体的反应、评论和其他不适合手动分析的文本数据。
Amazon Translate:亚马逊声称它使用神经网络来做机器翻译,比与基于规则的翻译质量更好。目前的版本支持六种语言的互译,包括阿拉伯语、汉语、法语、德语、葡萄牙语和西班牙语。
和亚马逊一样,微软提供的高级API Cognitive Services,可以与基础设施结合,不需要任何数据科学专业知识就能完成任务。
语音:语音部分包括四种API:用于翻译的语音API、用于Bing搜索的、识别说话人的API、在自己的数据和模型上使用Azure NLP能力的定制化Custom Speech Service。
语言:和亚马逊的Comprehend的文本分析类似:
语言理解智能服务,分析文本意图,识别出命令的API
用于情感分析和定义主题的文本分析API
Bing拼写检查
翻译文本API
网页语言模型API,预测单词组合的概率,并且支持单词自动完成
语言分析API,用于句子的分离、词性标注、标记语言,将文本划分为带标记的短语
这组API基本上和亚马逊、微软Azure的那些是重叠的,但有一些有趣且独特的东西值得关注。
对话流:聊天机器人的对话流由NLP技术驱动,目的是在文本中定义意图,并解释一个人想要什么。我们可以通过Java、Node.js和Python来调整和定制API。
云自然语言API:它的核心功能几乎与亚马逊理解功能和微软的语言功能完全相同。
定义文本中的实体
识别情感
分析语法结构
话题分类
云语音API:这个功能可以识别自然语言,而与类似API相比,最大优势在于是谷歌支持的丰富的语言,全球110种全球语言和它们的变体都能驾驭。此外,它还具备:
能够对特定的上下文和可以使用的单词进行自定义识别的单词提示
过滤不合适的内容
处理噪声音频
云翻译API:大多数情况下,你可以用这个API在产品中使用谷歌翻译,支持100多种语言和自动语言检测。除了文本和语音,亚马逊、微软和谷歌提供了相当多的用于图像和视频分析的API。
虽然图像分析与视频API密切相关,但许多用于视频分析的工具仍在开发或测试中。例如,谷歌为各种图像处理任务提供了较多支持,但是比亚马逊和微软的同类产品少了很多视频分析功能。
不,单词没有拼错。Rekognition API是用来分析图像的,最近还增加了视频识别功能。它能处理的任务有:
物体检测和分类
在视频中检测行为,比如跳舞、灭火等
人脸识别
检测不当视频
识别图片和视频中的名人
微软的视觉程序包结合了六个API,专注于不同类型的图像、视频和文本分析:
识别物体和动作的计算机视觉,还可以找出图像的主色调
检测图像、文本和视频中的不当内容
Face API,检测人脸并分组,同时检测年龄、性别、肢体动作、表情和发色等
Emotion API,另一个面部识别工具,来识别面部表情
定制视觉服务(Custom Vision Service),支持用你自己的数据构建图像识别模型
Video indexer,可以在视频中找到人,定义语言的感情,并标记关键字
Cloud vision API:这个工具是为图像识别任务构建的,对查找特定的图像属性非常有用。它包括:
标识对象
检测面部并分析情感
寻找标记并描述场景
寻找图像中的文本并定义语言
主色调
Cloud Video Intelligence:谷歌的视频识别API仍在开发早期,所以和亚马逊Rekognition、微软识别服务相比,缺少很多功能。
目前,这个API提供下列工具:
标记对象并定义动作
鉴定具体内容
语音转录
虽然在功能列表上谷歌的人工智能服务可能缺乏一些功能,但是谷歌API的强大之处在于可以访问的大量数据集。
除了上述文本和视觉相关的产品外,微软和谷歌还提供一些特殊的API和工具。因为亚马逊的API几乎都能归于文本和视觉分析上,这里就不再单独提它了。
Azure服务机器人框架:微软努力为用户提供灵活的机器人开发工具集。大体来说,这项服务包括构建、测试和部署机器人所需的成熟环境,并且是用不同编程语言完成的。
有趣的是,这项机器人服务并不完全需要机器学习的方法。因为微软提供了机器人的五种模式(基础、形态、语言理解、能动性和Q&A),只有语言理解模式需要先进的AI技术。
你可以借助.Net和Node.js技术用Azure构建机器人并用以下平台和服务部署它们:
必应
Cortana
Skype
Web Chat
Office 365 email
GroupMe
Facebook Messenger
Slack
Kik
Telegram
Twilio
微软的必应搜索:提供了链接到必应搜索核心特征的7种API,包括自动建议、新闻、图像和视频搜索。
微软Knowledge API:这个API群组涉及了很多文本分析的特殊任务:
你可以用推荐API构建个性化购买推荐系统
也可以用Knowledge Exploration Service用自然语言查询指令从数据库中检索数据、将数据可视化,并且可以自动完成查询
Entity Linking Intelligence API是为强调名字和语句设计的,为了表示合适的entity并且确保消除了模棱两可的情况
Academic Knowledge API负责词语的自动完成、寻找文档中相似的词语和概念以及图表模式
QnA Maker API可以用来匹配各种问题及其答案,方便构建客服机器人等应用
Custom Decision Service是一个强化学习工具,可用于基于用户参考的个性化设置和排列不同类型的内容(如链接、广告等)
谷歌云工作搜索:目前,这个API依然处于早期构建阶段,但很快它可能重新定义今天我们用到的工作搜索。和依赖精确关键词匹配的传统工作搜索引擎不同,谷歌采用机器学习方法寻找变化多样的职位描述之间的关系。例如,它尝试减少不相关或太宽泛的反馈,搜索关键词“助理”不会出现“销售助理”这样的职位。
这个API的主要特征是什么呢?
在工作搜索查询中修正拼写错误
匹配期望的资历水平
寻找职位描述和包含业界术语的相关工作
处理首字母缩写词语
匹配多种地点描述
上面我们已经详细介绍了三种主要机器学习平台功能的详尽对比情况,除了微软、亚马逊和谷歌,还有一些其他公司提供的机器学习即服务的解决方案,受到很多数据科学家的青睐,比如PredicSis和BigML,还有IBM的大数据分析工具Watson Analytics。
IBM Watson Analytics目前还不是一个商业预测的成熟平台。它的优势在于可视化数据,并描述其相互作用的不同效果。
它还拥有谷歌提供的视觉识别服务,以及一套其他的认知服务API。目前,Watson的系统执行的任务相对简单,对非专业人员来说很容易操作。
对于机器学习和数据科学从业者来说,了解机器学习云技术提供商放出的工具,是缓解部署机器学习解决方案之痛的“特效药”。至于最终选择哪家,还得对症下药。
毕竟机器学习即服务这事,没有最好的,只有最适合当前任务的。